18.10.5 實驗吧----證明自己吧
阿新 • • 發佈:2018-12-13
提示:嘿嘿,不用我告訴你怎麼做吧,你懂的
解壓後是一個exe,輸入完密碼之後會閃退,懷疑內部有跳過之類的,OD開啟
直接搜尋字串,設斷電,分析一波流程
我們可以看到壓入我們輸入的code之後,並沒有出現判斷字串之類的語句,直接吧401029這個je語句直接nop掉試試看
並沒有輸出flag,題目的意思也是你輸入的正確的code就是密碼
那麼也就是說之前的比較過程在某一個函式裡我們要弄清楚就好,極度懷疑是40101F那句,我們拖到IDA看看偽C程式碼
我們直接在IDA裡找401060函式,如下
先是最底下的while迴圈返回值要是1,這就是一個字串的比較,別看他亂的不行,其實就是a1=v5
a1異或20
然後是v5每位減5
變形後的v5我們IDA裡可以輕鬆找到(注意小端序),如下
順著上面的順序正過來做一遍就好了
上指令碼
s=[0x68,0x57,0x19,0x48,0x50,0x6E,0x58,0x78,0x54,0x6A,0x19,0x58,0x5E,0x06]
flag=''
for i in range(len(s)):
s[i]=s[i]-5
for i in range(len(s)):
s[i]=s[i]^0x20
flag+=chr(s[i])
print(flag)
#Cr4ckIsSoE4sy!