BUUCTF Youngter-drive


exe逆向,首先查殼,發現有upx殼,upx -d脫殼,拖進ida
找到主函數
在這里插入圖片描述
這里可以看到創建了兩個線程,先沿着StartAddress,
在這里插入圖片描述
一直找到sub_411940,這里有一個問題,當使用f5是,會顯示
在這里插入圖片描述
這是由於堆棧不平衡導致的,看匯編部分
在這里插入圖片描述
這里要將 -04改為00
在這里插入圖片描述
改完后
在這里插入圖片描述
之后再次f5
在這里插入圖片描述
找到了加密函數,這是將字符串進行了替換,當字符是大寫字母時,替換為off_418000處-38,小寫則替換后-96
這時回過頭來看第二個線程
在這里插入圖片描述
這個函數使對字符串的加密是隔一個字加密,也就是在奇數位時加密,偶數位時不變,

看一下數據
在這里插入圖片描述
寫解密腳本

 
off_418000 = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm" off_418004 = "TOiZiZtOrYaToUwPnToBsOaOapsyS" flag=''

for i in range(len(off_418004)): if i %2 == 0: flag += off_418004[i] continue
    for j,k in enumerate(off_418000): if off_418004[i] == k: if chr(j+38).isupper(): flag += chr(j+38) else: flag += chr(j+96) print flag

得到flag,但最后
在這里插入圖片描述
在比對時只比對了29位,所以得出的flag少了一位,所以需要再加一位提交。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM