遊戲反彙編 武林走路call

2021-05-04 08:04:44 字數 2983 閱讀 9835

0046627d  |.  d81d 98098800 fcomp dword ptr ds:[880998]

00466283  |.  dfe0          fstsw ax

00466285  |.  f6c4 41       test ah,41

00466288  |.  0f85 3c040000 jnz elementc.004666ca

0046628e  |.  8b8b 18090000 mov ecx,dword ptr ds:[ebx+918]

00466294  |.  6a 01         push 1

00466296  |.  e8 e56a0000   call elementc.0046cd80

0046629b  |.  8d4c24 50     lea ecx,dword ptr ss:[esp+50]

0046629f  |.  8bf0          mov esi,eax

004662a1  |.  33ff          xor edi,edi

004662a3  |.  51            push ecx                                 ; /arg2

004662a4  |.  57            push edi                                 ; |arg1 => 00000000

004662a5  |.  8bce          mov ecx,esi                              ; |

004662a7  |.  e8 64b20000   call elementc.00471510                   ; /elementc.00471510

004662ac  |.  8d9424 900000>lea edx,dword ptr ss:[esp+90]

004662b3  |.  8d8424 840000>lea eax,dword ptr ss:[esp+84]

004662ba  |.  52            push edx                                 ; /arg2

004662bb  |.  50            push eax                                 ; |arg1

004662bc  |.  8bce          mov ecx,esi                              ; |

004662be  |.  e8 7db30000   call elementc.00471640                   ; /elementc.00471640

004662c3  |.  8b8b 18090000 mov ecx,dword ptr ds:[ebx+918]

004662c9  |.  57            push edi

004662ca  |.  6a 01         push 1

004662cc  |.  56            push esi

004662cd  |.  6a 01         push 1

004662cf  |.  e8 1c6f0000   call elementc.0046d1f0

004662d4  |.  833d b04f9500>cmp dword ptr ds:[954fb0],1

004662db  |.  0f85 e9030000 jnz elementc.004666ca

目標x,y座標為浮點數!

function call_runto()

dim asm as new clsasm                                           '自動走路!

const w1_address = &h46cd80

const w2_address = &h471510

const w3_address = &h46d1f0

with asm

.pushad

.mov_eax_dword_ptr jizi

.mov_eax_dword_ptr_eax_add &h1c

.mov_ebx_dword_ptr_eax_add &h24

.mov_ecx_dword_ptr_ebx_add &h918

.push 1

.mov_eax w1_address

.call_eax

.lea_ecx_dword_ptr_esp_add &h50

.mov_esi_eax

.push_ecx

.push 0

.mov_ecx_esi

.mov_eax w2_address

.call_eax

.mov_ecx_dword_ptr_ebx_add &h918

.push 0

.push 1

.push_esi

.push 1

.mov_eax w3_address

.call_eax

.mov_eax_dword_ptr jizi

.mov_eax_dword_ptr_eax_add &h1c

.mov_eax_dword_ptr_eax_add &h24

.mov_eax_dword_ptr_eax_add &h918

.mov_eax_dword_ptr_eax_add &h30

.mov_ecx_dword_ptr_eax_add &h4

.mov_eax_ecx

.mov_dword_ptr_eax_add &h20, float2int(x)

.mov_dword_ptr_eax_add &h28, float2int(y)

.popad

.ret

end with

asm.run_asm pid

end function

C語言反彙編

這裡使用的是keil4軟體,將編寫的c語言程式彙編成組合語言。這裡只用最簡單的c語言做了一下參考,所舉的例子是最簡單的,只能用於了解一下彙編的表達方式。如圖所示,條件判斷語句的彙編語句表達是賦值後與進行異或比較,再判斷是否進行跳轉。將立即數03賦值給累加器a,然後將累加器a的值與立即數05進行異或 ...

C 反彙編 if語句分析

include void main std cout hello world 7?1 4 if b 1 std cout b equal 1 判斷語句有幾種 1.條件表示式 表示式1?表示式2 表示式3 2.if語句 3.switch語句 首先來分析if語句吧 debug版 0040117d 68 ...

C 類的反彙編

c 的類與c 的結構體本質上沒有什麼不同,唯一不同的可能即是在編譯期預設的成員訪問全鄉不同。當我們new 乙個類時,在heap中申請了一塊記憶體區域,用於儲存類的實體,並且呼叫了類的建構函式。當我們呼叫delete時,呼叫了析構函式,並呼叫了heap記憶體塊釋放函式。今天隨便寫了乙個簡單的類,並對其...