今天也來解Reverse的題目
asm2:
<+0>: push ebp
<+1>: mov ebp,esp
<+3>: sub esp,0x10
<+6>: mov eax,DWORD PTR [ebp+0xc]
<+9>: mov DWORD PTR [ebp-0x4],eax
<+12>: mov eax,DWORD PTR [ebp+0x8]
<+15>: mov DWORD PTR [ebp-0x8],eax
<+18>: jmp 0x50c <asm2+31>
<+20>: add DWORD PTR [ebp-0x4],0x1
<+24>: add DWORD PTR [ebp-0x8],0xd1
<+31>: cmp DWORD PTR [ebp-0x8],0x5fa1
<+38>: jle 0x501 <asm2+20>
<+40>: mov eax,DWORD PTR [ebp-0x4]
<+43>: leave
<+44>: ret
題目給了2個參數
參數會按照從右到左的順序依次進到stack中
參數二 0x2d 進到 [ebp-0x4]
參數一 0x4 進到 [ebp+0x8]
之後 0x4 <= 0x5fa1 的話
就 jump 到 <+20>
[ebp-0x4] += 0x1
[ebp+0x8] += 0xd1
重複這個loop
就像下面這樣
a = 45
b = 4
while b <= 24481:
a += 1
b += 209
print(a)
print(hex(a))