AoB之變動規則(很小的一部分)
因為很多人問到那些AoB是會有變動變化的呢~?
你要對組合語言的各種語法有所了解,不然就是靠經驗才知道
這邊舉例一些常見的AoB規則,畢竟不可能一一列舉出來
話說~手打文章真的好累喔XDDD
雖然說AoB會"變動"但其實它有一定的規則
遠程跳躍
E9 XX XX XX XX (無條件跳躍)(Jmp)
E8 XX XX XX XX (呼叫副程式)(Call)
0F 85 XX XX XX XX (不等於跳躍)(Jne)
0F 84 XX XX XX XX (等於跳躍)(Je)
...
其中 XX XX XX XX = 目標位址 - Next行位址
相減= 0x12345678,Then XX XX XX XX = 78 56 34 12,以此推論
舉例:
- 0040136E - e9 de 00 00 00 - jmp 00401451
- 00401373 - 66 85 db - test bx,bx
00401451 - 00401373 = 000000DE,XX XX XX XX = DE 00 00 00 00
近程跳躍
E9 XX (無條件跳躍)(Jmp)
75 XX (不等於跳躍)(Jne)
74 XX (等於跳躍)(Je)
...
其中 XX = 目標位址 - Next行位址,相減 = 0x12,Then XX = 12,以此推論
舉例:
- 004013B3 - 74 48 - je 004013fd
- 004013B5 - 48 - dec eax
004013fd - 004013B5 = 48
還有很多語法有可能會有AoB的變動
通常是跟Address有關的才會變動
例如
- 004044D0 - c7 45 bc 80 ce b4 00 - mov [ebp-44],00b4ce80
你看其中的AoB, c7 45 bc 80 ce b4 00
其中後面那部分, 80 ce b4 00 = 00B4CE80
例如
- 004010C0 - ff 15 3c 61 d1 00 - call dword ptr [00d1613c]
你看其中的AoB, ff 15 3c 61 d1 00
其中後面那部分, 3c 61 d1 00 = 00D1613C
還有很多啦~
我半夜想到的只有這些囉~懶得再想了
去睡覺覺881~XD
KNowlet 手打發佈於 knowlet3389.blogspot.com
板大您好
回覆刪除我想請問您:
以下您發的此數據如何做更新到146.2
// TwMS v146.1 ICS 人物全圖吸物
// 原創: Cam1596
// 出處: w8baby (GMS V0.98.1 Item Vac Script)
// ICS : 冷羽楓痕
// 更新:ejo3y7
[Enable]
alloc(ItemVac,64)
label(SetItemXY)
00d3d76c:
DD ItemVac
ItemVac:
cmp [esp],004Db841
je SetItemXY
cmp [esp],004daae9
jne PtInRect
mov [esp],004daaed // "Add2+04" - 不斷線
jmp PtInRect
SetItemXY:
push eax
mov eax,[esp+0C] // [esp+0C]: 地上物品X
mov [ebx],eax // [edi+00]: 封包物品X (人物X)
mov eax,[esp+10] // [esp+10]: 地上物品Y
mov [ebx+04],eax // [edi+04]: 封包物品Y (人物Y)
pop eax
mov [esp],004Db85d // Add1+02 "jne 004DA678"- 可撿物
jmp PtInRect
[disable]
00d3d76c:
DD PtInRect
Dealloc(ItemVac)
004Db841、004daae9 可以用AoB更新
刪除00d3d76c --> 這個是呼叫PtInRect的位置(這樣說法對嗎?)把你上面更新的位置往上應該可以看到
其他部分數據上有備註了
00d3d76c --> 呼叫PtInRect的位置 ?
刪除甚麼意思 ?
004Db841、004daae9我更新好了
是否有錯誤可請大大指教嗎 ?
008db96a 008dac12
這幾天忽然想學更新數據...
回覆刪除我這菜鳥...
該從哪個位址開始做更新呢?!
K大方便教教我嗎...
先從CRC數據開始吧
刪除你可能要先去找CEM
然後比較舊版跟新版的AoB
你可以看影片教學:)
你看其中的AoB, ff 15 3c 61 d1 00
回覆刪除其中後面那部分, 3c 61 d1 00 = 00D161"2"C
'===================================================
你看其中的AoB, c7 45 bc 80 ce b4 00
其中後面那部分, "bc" 80 ce b4 00 = 00B4CE80
好像有不小心打錯 :D
很詳細喔~~~ 果然是高手阿!!! 佩服...
By - 微O戀 ((心血來潮透露一下身分 >O<
囧...真的打錯了
刪除感謝你那麼仔細有看到XD
半夜跑起來打文章近視眼昏花=))
好文章要多多閱讀學習阿 XD
刪除真辛苦阿!! 期待你日後的好文章 :D
請問一下 test bx,bx的 test 是什麼意思@@?
回覆刪除TEST指令: 兩運算元間每對相對應位元中and 運算,依其結果設定旗標
刪除簡單來說就是判別是否為零