新手想學,遇到問題,請問一下......更新第四次2016/7/6_PM8:40
本帖最後由 orz12214314917 於 2016-7-6 20:41 編輯新手剛學數據沒多久,遇到問題,請問一下......
遇到難題了
這次是烈焰大火球攻擊無延遲,圖片中紅色框框的位置是怎麼更新的?
我打了8B 0D ?? ?? ?? ?? 8D ?? ?? 50 E8 ?? ?? ?? ?? 8B ?? ?? 8D ?? ?? E8 ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 6A ?? 33 ?? 50 50 50 89 ?? ?? 8D ?? ?? 50 68 ?? ?? ?? ?? 53 E8 ?? ?? ?? ?? 8B ?? ?? 89 ?? ?? 85 ?? 0F 84 ?? ?? ?? ??
一長串結果還找到29X多個結果............. 該不會要一直多增加AOB? 我剛剛看了一下
189.1 190.1
8b 4d ?? 64 89 0d ?? ?? ?? ?? 59 5f 5e 5b 83 c5 ?? c9 c2 ?? ?? 55 83 ec ?? 6a ?? b8 ?? ?? ?? ?? e8 ?? ?? ?? ?? 8b
都是倒數第8個結果
不知道這樣可不可以 XD 基本上遇到函數尾部(Ret 002C)後就不建議繼續打AOB去搜尋!
首先 你在上面已經更新出了 011DD4D7
從 011DD4D7 往上找第一個CALL
跟進去 再往下找CALL
(這邊要注意 中間有幾個CALL 因為在 jne中間 不一定會執行到 所以我們跳過它 至於是否要使用jne等等跳躍指令中間的CALL要視情況而定)
這邊採用 "call 0134A509" 跟進去
緊接著就是下一個CALL 再跟
再跟進去
Call dword ptr 就是我們的終點 你看到你要找的ADD了嗎 :D
乂Boyue乂 發表於 2016-7-4 23:39 static/image/common/back.gif
首先 你在上面已經更新出了 011DD4D7
從 011DD4D7 往上找第一個CALL
原來190.1從011DD4D7是用這方法才能找到 dword ptr015EF1D0
然後我用189來練習,用同樣的方法可以從01143660找到dword ptr015281B4
有兩個問題請教
1:dword ptr 和那個 ine 是甚麼意思?
應該說,我沒學過程式語言,裡面有一堆ie pop 那些的我看不懂,雖然我知道call是呼叫指令,push 那些直接用英文翻譯大概可以知道意思,有哪個網站有教這些指令的,想學一下會比較好
2:為什ㄇ更新那個位置比較特殊,不能像大部分更新時一樣,直接搜尋AOB就好,是因為上一行有call? orz12214314917 發表於 2016-7-5 00:21 static/image/common/back.gif
原來190.1從011DD4D7是用這方法才能找到 dword ptr015EF1D0
然後我用189來練習,用同樣的方法可以從01143 ...
1.
dword ptr的意思有點像是表達什麼型態的用意
假設 = 1234567812345678
MOV BYTE PTR ,00 //會變成 1234567812345600
MOV DWORD PTR ,00 //會變成 1234567800000000
MOV QWORD PTR ,00 //會變成 0000000000000000
當然你想得知更正確的知識請自行上網查詢!
還有應該是JNE吧?? JNE是跳躍指令的一種, 其跳躍的條件可以上網查看
簡單的記法就是當比較的兩者不同時就跳躍, 但當然不是這麼簡單,會牽扯到標誌!
2. 沒有比較特殊, 他教你的方法只是最原始找到Hook點的方法, 當然也可以用別的更新方式! 大火球無延遲 你說的那個地方 應該是不需要AOB就可以更新
(189.1數據)
從你上面更新的 0079FB07 進去 觀察一下我相信你會看得懂
[*]SetDelayTime:
[*] mov ,eax
[*] mov eax,
[*] mov ecx,
[*] sub ecx,eax
[*] cmp ecx,
[*] jl 0079FD5C
[*] jmp 0079FB21
乂Boyue乂 發表於 2016-7-6 20:54 static/image/common/back.gif
大火球無延遲 你說的那個地方 應該是不需要AOB就可以更新
可是我看不懂那些 mov sub cmp jl jmp eax ecx ebp 那些意思
我後邊看邊想,想了30分鐘後我發現
是不是從圖片↓中紅色和綠色框框來找出藍色框框的值?
190.1 190.2 可以這樣找到,是這樣意思麼?
可是mov sub cmp jl jmp eax ecx ebp 那些意思我還是看不懂,於是所以我又再花了1h上網惡補查了一下
是不是這樣?? ↓↓↓
SetDelayTime:
mov ,eax ←將暫存器eax拷貝至變數
mov eax,←將變數拷貝至暫存器eax
mov ecx, ←將變數 拷貝至暫存器eax
sub ecx,eax ←sub減法,將ecx減去eax
cmp ecx, ←cmp比較指令,比較ecx和這兩個值
jl 0079FD5C ←上一行比較結果,如果ecx比"小"則跳躍至0079FD5C
jmp 0079FB21 ←無條件跳躍到0079FB21
我用查到的意思,翻議了一下,不知對不對
又再過了30分鐘後我才想通了,原來關鍵是用0079FB07找0079FB21 @@ 上面翻譯應該沒錯
非常建議先閱讀 Doem 部落格的文章,不太懂可以再發問
組語的世界非常奇妙。
頁:
[1]