小屋創作

日誌2021-02-09 14:40

PICO CTF 2018 assembly-2

作者:OKHand

assembly-2 - Points: 250 - (Solves: 2806)
->我們先把題目的 Source 下載下來
->我們看裡面是組碼又要開始頭痛拉,但沒關係我們慢慢來看
->我們把它拆成3個部分main part_a part_b 區我們先從最上面的main區開始看
->我們從main這邊開始看 並且題目說asm2(0x8,0x21) return?
mov     eax,DWORD PTR [ebp+0xc]   他把暫存器的值指向給ebp+0xc所以ebp+0xc=0x21
mov     DWORD PTR [ebp-0x4],eax    再把ebp-0x4的值指向給eax   
mov     eax,DWORD PTR [ebp+0x8]   他把暫存器的值指向給ebp+0xc所以ebp+0x8=0x8
mov     DWORD PTR [ebp-0x8],eax    再把ebp-0x8的值指向給eax
jmp      part_b
->目前可以知道得資訊長這樣
->然後跳到part_b區    
cmp        DWORD PTR [ebp+0x8],0x3923  ebp+0x8位置的值有沒有大於等於0x3923
jle           part_a                                            沒有的話就跳到part_a
mov        eax,DWORD PTR [ebp-0x4]
mov        esp,ebp
pop         ebp
ret
->然後跳到part_a區
add        DWORD PTR [ebp-0x4],0x1     對ebp-0x4得值+上0x1
add        DWORD PTR [ebp+0x8],0xa9  對ebp+0x8得值+上0xa9
->聰明的小夥伴是不是想到這很像啥了,沒有錯就是我們的加到比一定的數值大的迴圈
->我們統整一下並且把它想成程式碼化
local1=0x21
local2=0x8
while local2 <= 0x3923:
     local1 +=1
     local2 += 0xa9
print(hex(local1))
->就變成這樣輸出的話會是0x78就是我們的flag

看到這題啊因為太久沒做到assembly的題目我就回頭去讀了大3的課本嗯嗯.....上課都沒認真聽呢
最近想研究一下 burpsuite 跟 Wireshark 的操作如果有大大有推薦的資料或是CTF的題目的話歡迎留言下面給我知道一下
參考資料:
assembly
https://ithelp.ithome.com.tw/articles/10222729?sc=rss.iron
https://github.com/Dvd848/CTFs/blob/master/2018_picoCTF/assembly-2.md
http://godleon.blogspot.com/2008/02/comparisons-assembly-cmp-cmp-cmp-vleft.html
https://www.csie.ntu.edu.tw/~cyy/courses/assembly/12fall/lectures/handouts/lec15_x86procedure_4up.pdf

2

0

LINE 分享

相關創作

ångstromCTF 2021 Relatively Simple Algorithm - Crypto

ångstromCTF 2021 sosig - Crypto

ångstromCTF 2021 Keysar v2 - Crypto

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】