一點一點學習逆向:學習記錄

1 實驗吧之“你會麼”


1.1 概述


隨着對安全的逐漸深入的學習,在接觸部分linux知識的過程中,認識了不少CTF的大神,這些大神有不少是頂級賽棍,奈何非科班出身的計算機基礎差的要命,只能一點一點積累和記錄了

這一系列文章僅僅是自己的學習記錄,寫博客督促自己不斷學習的,其實如果查資料,並沒有啥有價值的東西

本次記錄的是我的第一次逆向題目,來自實驗吧的“你會麼”?


1.2 開始逆向


1.2.1 使用PEID查看是否存在殼,


直接將下載的re1.exe拖入PEID(看別人用過,查了應該是用來看看有沒有殼的)


其實想了下,也應該知道了,就十分的題,你就別有殼,不然讓我怎麼玩。

關於上面那些每個窗口的含義和作用,記錄一下,後面依次學習一下,瞭解清楚


1.2.2  逆向


 拖入IDA中,得到如下:


根據PEID中的子系統的提示,應該是選擇第二個(第一個應該是PE的殼,第三個是針對bin,so文件的——根據名稱我猜的)

搜了IDA如何調試,看到了這篇博客

http://blog.csdn.net/eqera/article/details/8235843

然後跟蹤調試


根據字符串提示,設置了n個斷點,查看斷點,

然後查找google,搜索JNZ TEST命令,搜索ECX,EAX的含義,

跟蹤之後,發現ecx,雙擊進入


這應該就是flag了,但是對IDA不熟,不知道怎麼玩,就寫了個python腳本把上面內容用split搞定,拿到flag(前後花了不到一個小時,改天繼續玩第二題,感覺還是要好好練習一下IDA的功能才行)

 

# -*- coding: utf-8 -*- 
'''
@author: Administrator
'''
import sys

def split_ida_ecx_data(file_name):
    ctfstring = ""
    file_obj = open(file_name,"r")
    for dataline in file_obj.readlines():
        ctfstring = ctfstring + dataline.split(";")[-1].strip()
    return ctfstring

if __name__ == '__main__':
    print(split_ida_ecx_data(sys.argv[1]))
    pass

相信很多人會罵我蠢,其實我也發現了,其實通過edit中的string是可以直接轉換的!!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章