【攻防世界010】re1-100
生活随笔
收集整理的這篇文章主要介紹了
【攻防世界010】re1-100
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這題涉及Linux API的分析,有反調(diào)試,進(jìn)程創(chuàng)建等,查殼可知是64位ELF,扔進(jìn)IDA找到主函數(shù):
這個(gè)題雖然有反調(diào)試,但其實(shí)只靠靜態(tài)分析也能解,創(chuàng)建進(jìn)程那些函數(shù)我并不熟悉,但是也不影響分析,下面的代碼是對(duì)用戶輸入密鑰的一些判斷:
根據(jù)上圖的代碼,密鑰第一個(gè)字符應(yīng)該是’{’,長度是42,然后是字符串比較(是多余的),繼續(xù)看:
判斷最后一個(gè)字符應(yīng)該是 ‘}’ ,然后又是一個(gè)多余的strncmp。
做完這些之后調(diào)用了一個(gè)叫 _Z10confuseKeyPci 的函數(shù),翻譯應(yīng)該是密鑰混淆,跟進(jìn)去看:
_Z10confuseKeyPci 是比較簡單的,貼出偽代碼方便觀察:
就是將密鑰以10個(gè)字符為單位打亂了而已,下面給出腳本:
ConfusedKey = "daf29f59034938ae4efd53fc275d81053ed5be8c"print(ConfusedKey[20:30],end="") # 1 print(ConfusedKey[30:40],end="") # 2 print(ConfusedKey[0:10],end="") # 3 print(ConfusedKey[10:20],end="") # 4提交的時(shí)候把大括號(hào)去掉即可。
總結(jié)
以上是生活随笔為你收集整理的【攻防世界010】re1-100的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【攻防世界009】流浪者
- 下一篇: 【攻防世界011】Windows_Rev