新手一枚,如有錯誤(不足)請指正,謝謝!!
個人博客:點擊進入/點擊進入
[BJDCTF 2nd]guessgame
題目鏈接:點擊進入
IDA載入,shift+F12搜索字符串,即可得到flag
得到flag爲BJD{S1mple_ReV3r5e_W1th_0D_0r_IDA}
(剛開始沒查找字符串,傻乎乎的看了主代碼沒找到flag,然後又去看了會在main函數前執行的pre_c_init和pre_cpp_init)
[BJDCTF 2nd] 8086
題目鏈接:點擊進入
Intel 8086……
IDA32位載入的時候更改一下處理器(雖然我沒感覺這個步驟有啥用……好像不改也行)
1KB的程序,main函數是加載sub_10030函數,sub_10030函數是個死循環,,直接看彙編
最上面有個字符串,應該就是程序把它處理後得到flag了
但是要找一下加密代碼在哪,唯一可疑的地方就是jmp下面的代碼了
選中,摁C解釋成代碼,選擇Force強制轉換
得到代碼
這個代碼比較簡單可以直接看彙編。大體就是將0x22個字符挨個與0x1F異或得到flag
(或者將jmp指令nop掉之後,將紅色代碼摁p聲明成函數,然後F5僞代碼)
直接寫python腳本
enstr="]U[du~|t@{z@wj.}.~q@gjz{z@wzqW~/b;"
for i in enstr:
print(chr(ord(i)^0x1f),end="")
得到flag爲BJD{jack_de_hu1b1an_xuede_henHa0}