iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
Security

逆向系列 第 11

逆向題目練習(三)

  • 分享至 

  • xImage
  •  

題目 - Ezasm3

題目

題目來源:https://class.nckuctf.org/challenges#Ez_asm0-48

asm3.png

asm3.txt :

<+0>:     endbr64 
<+4>:     push   rbp
<+5>:     mov    rbp,rsp
<+8>:     mov    DWORD PTR [rbp-0x14],edi
<+11>:    mov    QWORD PTR [rbp-0x20],rsi
<+15>:    mov    DWORD PTR [rbp-0x4],0x9fe1a
<+22>:    cmp    DWORD PTR [rbp-0x4],0x2710
<+29>:    jle    0x55555555514e <main+37>
<+31>:    sub    DWORD PTR [rbp-0x4],0x65
<+35>:    jmp    0x555555555152 <main+41>
<+37>:    add    DWORD PTR [rbp-0x4],0x65
<+41>:    mov    eax,DWORD PTR [rbp-0x4]
<+44>:    pop    rbp
<+45>:    ret

分析與解題

重點行數:
<+15>: mov DWORD PTR [rbp-0x4],0x9fe1a
<+22>: cmp DWORD PTR [rbp-0x4],0x2710
<+29>: jle 0x55555555514e <main+37>
<+31>: sub DWORD PTR [rbp-0x4],0x65
<+35>: jmp 0x555555555152 <main+41>
<+41>: mov eax,DWORD PTR [rbp-0x4]

<+15> 將 0x9fe1a 儲存到記憶體位址 [rbp-0x4]
<+22> 比較記憶體位址 [rbp-0x4] 中的值與 0x2710
<+29> 若比較結果為小於或等於(jle),則跳到 <+37>
<+31> 若沒有跳轉,則將記憶體位址 [rbp-0x4] 的值減去 0x65
<+35> 減完後直接跳到 <+41>
<+37> 若有跳轉到這裡,則將記憶體位址 [rbp-0x4] 的值加上 0x65
<+41> 將記憶體位址 [rbp-0x4] 中的值儲存到暫存器 eax

因此可得出:
eaz = 0x9fe1a - 0x65
654874 - 101 = 654773

依此可得出解答


上一篇
逆向題目練習(二)
下一篇
組合語言基礎筆記 - 暫存器是什麼?
系列文
逆向30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言