iT邦幫忙

0

求EXE檔案啟動預設值修改

exe

目標軟體為免費鼠鍵軟體AutoMouser v5.1,啟動時下方的cycles都是5,本來心想啟動預設值改為1應該不難吧,爬文找了ResourceHacker、ResEdit、cexescope、UltraEdit都搞不定,不對應該是說我不會用才對,不知道有沒有大大可以教教我,恩...還有這樣修改有算違法嗎?
https://ithelp.ithome.com.tw/upload/images/20200210/20124708fFwYpwqi0Y.jpg

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
fillano
iT邦超人 1 級 ‧ 2020-02-10 18:26:53
最佳解答

裝好VisualStudio後,打開「適用於VS201x的x86 Native Tools命令提示字元」

ildasm /all /text [執行檔名.exe] /out=[il檔名.il]
resgen [上一步產生的.resources] [上一步產生的.resx]

觀察一下il跟resx裡面的InitializeComponent、enumericUpDown_cycles,可以找到一些有趣的東西。不過我沒直接看到它怎麼把預設值設成5,所以你再研究一下吧。

fillano iT邦超人 1 級 ‧ 2020-02-11 10:13:42 檢舉

試了一下,發現...resx檔裡面似乎沒有預設值,所以可能是在InitializeComponent的時候設定的。這樣得去改il。

找了一下,在il的189515行,對numericUpDown_cycles執行了set_Value,這個值是Decimal型別,往上找可以找到它怎初始化這個Decimal,整段il大概是這樣:

https://pastebin.com/PNQt3UuM

IL_45d0這行可以發現:

    IL_45d0:  /* 1B   |                  */ ldc.i4.5

看起來就是在這裡把值設成5(因為是Decimal,所以前後一大段都是在初始化Deciaml),把這一行的ldc.i4.5改成ldc.i4.3,然後編譯看看:

ilasm [il檔名.il]

然後執行一下編譯出來的exe檔,就會看到預設值改成3。

說真的看到大神的回覆我真是跪了,看來不是我這領域能去達到的啊,雖然小弟沒能順利完成,但還是非常感謝您肯花時間幫小弟研究這問題~~~

0
小魚
iT邦大師 1 級 ‧ 2020-02-10 15:24:33

正常來說除非有提供修改的方式,
要不然不大可能能夠直接改預設值.
一般遊戲修改器改的也是記憶體,
有的是修改存檔資料,
不是EXE檔案.

但是你那個值修改了之後不能儲存嗎?

看更多先前的回應...收起先前的回應...
石頭 iT邦研究生 4 級 ‧ 2020-02-10 15:30:00 檢舉

好像不能,我有下載過測試了,下載下來是EXE檔,好像是綠色軟體。

小魚 iT邦大師 1 級 ‧ 2020-02-10 15:50:02 檢舉

值修改了不能儲存那應該是程式本身的問題,
除非你有辦法自己反編譯然後去改程式.

fillano iT邦超人 1 級 ‧ 2020-02-11 10:30:22 檢舉

結果把它反編譯然後改改看了XD

小魚 iT邦大師 1 級 ‧ 2020-02-11 11:39:52 檢舉

如果有這個水準我也認了,
我還沒有試過這樣子...
目前缺錢還是只處理比較有經濟效益的事情.

我要發表回答

立即登入回答