iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0
Security

逆向系列 第 10

逆向題目練習(二)

  • 分享至 

  • xImage
  •  

題目 - Ez_asm1

題目

題目來源:https://class.nckuctf.org/challenges#Ez_asm0-46
asm1.png

asm1.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>:    mov    eax,DWORD PTR [rbp-0x4]
<+25>:    pop    rbp
<+26>:    ret

分析與解題

重點行數:
<+15>: mov DWORD PTR [rbp-0x4],0x9fe1a
<+22>: mov eax,DWORD PTR [rbp-0x4]

<+15> 將 0x9fe1a 儲存到記憶體位址 [rbp-0x4]
<+22> 將記憶體位址 [rbp-0x4] 中的值儲存到暫存器 eax

因此將 0x9fe1a 進行進制轉換,9fe1a(16進制) = 654874(10進制)

依此可得出解答

題目 - Ez_asm2

題目

題目來源:https://class.nckuctf.org/challenges#Ez_asm0-47
asm2.png

asm2.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-0xc],0x9fe1a
<+22>:    mov    DWORD PTR [rbp-0x8],0x4
<+29>:    mov    eax,DWORD PTR [rbp-0xc]
<+32>:    imul   eax,DWORD PTR [rbp-0x8]
<+36>:    add    eax,0x1f5
<+41>:    mov    DWORD PTR [rbp-0x4],eax
<+44>:    mov    eax,DWORD PTR [rbp-0x4]
<+47>:    pop    rbp
<+48>:    ret

分析與解題

重點行數:
<+15>: mov DWORD PTR [rbp-0xc],0x9fe1a
<+22>: mov DWORD PTR [rbp-0x8],0x4
<+29>: mov eax,DWORD PTR [rbp-0xc]
<+32>: imul eax,DWORD PTR [rbp-0x8]
<+36>: add eax,0x1f5

<+15> 將 0x9fe1a 儲存到記憶體位址 [rbp-0xc]
<+22> 將 0x4 儲存到記憶體位址 [rbp-0x8]
<+29> 將記憶體位址 [rbp-0xc] 中的值儲存到暫存器 eax
<+32> 將記憶體位址 [rbp-0x8] 中的值乘上暫存器 eax 的值,再存回暫存器 eax
<+36> 將 0x1f5 加上暫存器 eax 的值,再存回暫存器 eax

因此,
eax = 0x9fe1a * 0x4 + 0x1f5
654874 * 4 + 501 = 2619997

依此可得出解答


上一篇
逆向題目練習 - 組合語言
下一篇
逆向題目練習(三)
系列文
逆向30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言