國科大軟件安全與漏洞分析第一次作業

題目:給定一個EXE文件與一個動態鏈接庫,猜出三個密鑰

工具:IDA pro

一.KEY1解密:

經過審題,key1經過靜態程序分析可得出,觀察程序,在輸入key1之前用到了數據段的unk_CBFA58,點開可到如下內容。


右鍵jump to operand

 

分析代碼段loc_CB1120彙編語言,這個代碼是用edi控制循環次數,對[ecx]中的內容進行減1操作,我們對數據段unk_CBFA58中的字符串string=“xipbsfzpv@”模擬string=string-1操作得到字符串“whoareyou?”,即key1。

二.KEY2與KEY3解密:

對彙編程序按F5得到對應的c語言程序。分析程序得到如下執行流:



由上圖可以看出,要得到key2與key3,關鍵步驟是兩次decode函數調用,跟蹤這兩次函數調用,記錄其返回值,即可得到key2與key3。於是在兩處函數調用處添加斷點,斷點位置如下:


對程序進行動態調試,壓棧兩個參數1和unk_21FA64後調用decode函數


decode函數執行完畢後查看寄存器EAX的值得到Key2,key2是iamteacher如圖:

同理找到key3的斷點,單步得到key是don'tjoke!
至此,所有答案已經找到。



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