Board logo

标题: 對於反匯編新手的一個疑問 [打印本页]

作者: dennis2669    时间: 2013-3-9 22:13     标题: 對於反匯編新手的一個疑問

事實上我對劇本data 做一個mod的所有東東都齊備了..
但是最重要的引擎..我到現在都無能為力
即使看完毅大的教程..我明白了反匯編的指令

我也看明白在其他教程中.為什麼要用這些指令.看明白有一段指令的用法

但是指令寫的位置.我現在都不明白..
假如沒有位置 就新增一個區段..跳出到那裡 繼續寫代碼..

但是如果想在舊引擎新增一個新特技..應該在那寫..還有就是為什麼在那寫..

還有就是為什麼要跳出..不可以直接在空白寫....
作者: WHITESHIP    时间: 2013-3-9 22:25

每一個區域的整塊代碼是負責一個功能,互相之間彼此調用。不是隨便哪個空白地址都有用的。
這個區域大小在OLLYDBG最左邊一般會有個框子框起來。

假如你要增加吸血攻擊,那麼就要找到負責計算攻擊后雙方HP、MP、EXP變化的代碼,增加特效的判斷,再計算HP恢復。
至于代碼位置怎麼找就很難了,沒有方法,如果很容易找,那曹操傳EXE早就被我們改得面目全非了。

[ 本帖最后由 WHITESHIP 于 2013-3-9 22:26 编辑 ]
作者: dennis2669    时间: 2013-3-9 22:30     标题: 回复 #2 WHITESHIP 的帖子

但是如果那段
「負責計算攻擊后雙方HP、MP、EXP變化的代碼,增加特效的判斷,再計算HP恢復。」
沒有位置了.那如何寫..
作者: 阿尔法孝直    时间: 2013-3-9 22:32     标题: 回复 #3 dennis2669 的帖子

给程序末尾增加一些字节,然后跳到这里写代码,再跳回去。
作者: WHITESHIP    时间: 2013-3-9 22:33     标题: 回复 #3 dennis2669 的帖子

可以CALL個新函數,但是母函數里的堆棧就不能用了。
也可以JMP出去。
或者改寫代碼來壓縮空間,不過比較難。
作者: godtype    时间: 2013-3-9 22:38

初学阶段就先用JMP跳去扩展后的区段写,写完跳回来。
经验积累得差不多就要压缩改写。




欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/) Powered by Discuz! 5.0.0