2015年1月24日 星期六

數據更新遇到 DB 碼怎麼辦?

作者:Onion
備註:如果作者不希望被轉帖到此處,請告知,小弟會馬上刪帖。
-------------------------------------------------------------------------------------

此文章部分術語非正統 ASM 用詞... 簡單教學黑黑請略過 <(_ _)>
本來沒打算寫這篇來著,可是有人不會更新只有 DB 的數據 030
DB 是什嗎?




DB - Define Byte. 8 bits
DW - Define Word. Generally 2 bytes on a typical x86 32-bit system
DD - Define double word. Generally 4 bytes on a typical x86 32-bit system

所以 DB 其實就是以 byte 寫入的意思,也就是 AoB..
這篇來舉例

Alloc(NoDelayICS, 64)

NoDelayICS:
DB 81 BC 24 C4 00 00 00 0A E6 C2 00 75 0B C7 84 24 0C 33 00 00 01 00 00 00 8B FF 55 8B EC A1 98 80 F9 00 83 C0 05 FF E0

KERNEL32.InterlockedIncrement:
Jmp NoDelayICS

注入數據後觀察記憶體,Opcode 即是你看得懂的組語...

cmp [esp+000000C4],00C2E60A
jne 45B50018
mov [esp+0000330C],00000001
mov edi,edi
push ebp
mov ebp,esp
mov eax,[00F98098]
add eax,05
jmp eax

怎麼看到這個?你可以從你 Hook 的地方跳過去,或者設定 RegisterSymbol 標記跳過去等等...

補張圖好理解點...


所以就 Go to 0A820000 看看這樣...

沒有留言:

張貼留言