日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BUUCTF crackMe

發布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BUUCTF crackMe 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

太菜了 做了好久沒做出來,參考其他師傅的解答總結一下

題目背景:

老規矩,Ex PE打開,32位無殼程序,用IDApro打開;主程序如下:

?主體是一個while循環,如果我們想讓while結束,我們就需要使得兩個if成立;

我們首先看跟v3有關的loc_4011A0,點進去,發現無法反編譯,解決辦法IDA無法反編譯

編譯成功之后:

?發現v3的值一直為1;

我們來看看sub_401830函數,主要由兩個while構成,我們先來看第一個while

主要是把輸入的轉換成數字并且按照每兩位分成一組,也就是輸入a21c32ba,最后分為0xa2,0x1c,0x32,0xba,接下來看第二個while循環;

?

我們開始從后向前看, 最后需要輸出v13==0xAB94,我們先點擊進入sub_401470函數查看,

一堆的if判斷,把判斷條件轉換為字符查看,這些字符就是大概他想要得到的字符,不是的話就執行錯誤的操作,最后進行驗證,需要注意是這里

我們可以嘗試運算一遍,應該是s,最后得到 a2的值為dbappsec?。最后我們就要求的是a數組的值了(源程序是byte_416050數組,被我改了)

怎么求呢?IDA調試,有反調試沒成功,試試OD,

?先在ida中找到xor異或,查看他的地址(建議先圖裝查看,找起來方便,再查看地址)

我們現在就要看ecx的值了(XOR destination, source為什么不是eax,怪我匯編沒學好,就是xor異或和實際異或的順序相反的,我是這么記憶的)在**1B3E處下一個硬件斷點,然后輸入用戶名,隨便輸入一個密碼,循環8次記錄下ecx的值。

0x2a, 0xd7, 0x92, 0xe9, 0x53, 0xe2, 0xc4, 0xcd

最后就是寫腳本解密了。

str="dbappsec" flag="" a=[0x2a, 0xd7, 0x92, 0xe9, 0x53, 0xe2, 0xc4, 0xcd] for i in range(8):flag+=hex(a[i]^ord(str[i])) print(flag.replace('0x',''),end='')

最后輸出為4eb5f3992391a1ae,md5加密之后的答案為

flag{d2be2981b84f2a905669995873d6a36c}

總結

以上是生活随笔為你收集整理的BUUCTF crackMe的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。