綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 對於修改數值的位置

 關閉 [複製連結] 查看: 2391|回覆: 8|好評: 0
跳轉到指定樓層
樓主
allien2003a | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2016-8-22 00:28

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
小弟看到迎來版上有分享修改方法,於是自己去嘗試一下
但有幾個問題都問一下,希望有大神解答一下

我有使用WINHEX跟IDAPRO6.6,
1)2者有什麼分別?
2)WINHEX需要用到PRO版嗎?看到版上有回覆需要PRO版作修改
3)看到有人留言用IDAPRO找位置再用WINHEX修改,有這個需要嗎?
4)用IDAPRO修改也可以嗎?
5)怎樣知道我需要修改的字串在哪一位置-----我現在用版上的修改版跟原版對比(5.5.2版)發現有一組字串是不同的,但自己修改時怎知道會是那一組碼呢?
  如原版ADDDAMAGE 005B8E18 F0 41 2D E9 00 50 A0 E1 A4 00 9F E5 01 60 A0 E1
  修改版ADDDAMAGE 005B7370 1E FF 2F E1 00 50 A0 E1 A4 00 9F E5 01 60 A0 E1
想問藍字為何會不同?紅字想問怎知道是這一組碼
6)承上題,怎知道的需要修改的值呢?小弟對16進制不太了解
  1E FF 2F E1 看到版上好像每個版本都不一樣,是怎樣決定是這一個值呢


希望有人回覆或者PO一下相關的貼文,謝謝
要不私信一下小弟做個指點,感激不盡!
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏7 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
william8888 | 收聽TA | 只看該作者
發表於 2016-8-22 00:52
好, 我試試解答, 希望你能明白:

1. WINHEX - 只是修改檔案用(任何), 以十六進位顯示及修改
    IDA PRO - 一個與反編譯相似的工具, 他分析 dll, so 類似的程式庫, 以多種模式顯示出

2. 沒所謂, 只要能改便可, 小弟用 UltraEdit 作為修改工具, 只要能以十六進位顯示及修改便可

3. 要, 因為一定要用 IDA 尋找, 找出屬哪一個 function, 再繼而去找出哪一項要改.

4. 其實可以, 不過它重編譯可能會與原版有分別, 不建議用作修改.

5. 其實次序: 用 IDA 開啟 --> 於 "function" 上找尋相關的 "function" (例如 addDamage) --> 再用 IDA View (組合語言 Assembly) 分析而找出相對的位置 --> 再以 "Hex" 顯示對應的十六進碼

6. 一定要有基本 "Assembly" 組合語言知識, 然後再用 "Assembly" 轉 "Hex" 程式轉

(大致上是這樣的方式去找)

評分

參與人數 5碎鑽 +3 幫助 +5 收起 理由
111094 + 1 + 1 非常讃
chouwenyi + 1 偶像,看完你的內容,讓我找到了活著的意義.
samay + 1 + 1 讚一個!
vercusron + 1 + 1 非常讃
chilanyun + 1 聽說評分可以懷孕,你就讓我試試吧.

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
Cayenne-Li | 收聽TA | 只看該作者
發表於 2016-8-22 04:25
william8888 發表於 2016-8-22 00:52
好, 我試試解答, 希望你能明白:

1. WINHEX - 只是修改檔案用(任何), 以十六進位顯示及修改

大大真熱心,那小弟也有問題不知可否請大大解惑

現在是會找位址了,但是要怎知道要改成怎樣的數值呢??是用何種計算方式??
例如小弟現在會找SS第一段找到教學範本的位址替換過去成功了,那SS第二段位址找出以後呢??要如何得出該修改的數值??
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
william8888 | 收聽TA | 只看該作者
發表於 2016-8-22 09:30
Cayenne-Li 發表於 2016-8-22 04:25
大大真熱心,那小弟也有問題不知可否請大大解惑

現在是會找位址了,但是要怎知道要改成怎樣的數值呢??是用 ...

只著眼於 "數值" 便什麽都不會懂. 要這樣想: 這些 "數值" 是代表什麽的 "組合語言" 指令, 至少要有 "組合語言" 基礎和要熟用 IDA PRO. 對於網上修改 "數值" 小弟並不太讚成, 因為這樣修改已經將整個 "function" 結構破壞, 有可能會令遊戲閃退/當掉.

*組合語言 - Assembly, 要屬於 ARM 結構的組合語言

就以 adddamage 為例:

原版 : F0 41 2D E9, 它的組合語言機碼是 "STMFD           SP!, {R4-R8,LR}"
修改後 : 1E FF 2F E1, 它的組合語言機碼是 "BX              LR"

在 ARM Assembly 中, "BX LR" 指跳轉下個指令(不是下一行的指令), 而 "BX LR" 的十六進位便是 "1E FF 2F E1", 而如何可以轉換出來? 網上有網站可以幫你將 assembly 指令轉換出十六進位 - "http://armconverter.com/", 只要輸入 "BX LR", 它便會出現 "1EFF2FE1", 就是這樣出來的.








評分

參與人數 8碎鑽 +8 幫助 +8 收起 理由
111094 + 1 + 1 非常讃
CV5DEF + 1 + 1 非常讃
hsieh0927 + 1 + 1 非常讃
samay + 1 + 1 讚一個!
Cayenne-Li + 1 + 1 非常讃
chilanyun + 1 + 1 非常讃
kingkiu + 1 + 1 讚一個!
hsuwayne0411 + 1 + 1 非常讃

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
chilanyun | 收聽TA | 只看該作者
發表於 2016-8-22 13:17
william8888 大大 是真釣竿~! 讚一個!!
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
chilanyun | 收聽TA | 只看該作者
發表於 2016-8-22 14:34
問一下,改"BX LR" 指跳轉下個指令 意思是,遇到addDamage 不執行,直接跳下一步的意思嗎?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

7
 樓主| allien2003a | 收聽TA | 只看該作者
發表於 2016-8-23 14:12
william8888 發表於 2016-8-22 09:30
只著眼於 "數值" 便什麽都不會懂. 要這樣想: 這些 "數值" 是代表什麽的 "組合語言" 指令, 至少要有 "組合 ...

謝謝回覆 總算對修改有一上了解
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

8
ricky0529 | 收聽TA | 只看該作者
發表於 2016-8-24 02:46
這篇真是高技巧的文章
感謝版大開版跟william8888 大的解釋
受益良多,但還是只知其一 不知其二. 需要多練習了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

9
ckperic | 收聽TA | 只看該作者
發表於 2016-8-30 23:22
真是明燈,小弟受教了。謝謝
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則