1. 程式人生 > >18.10.5 實驗吧----證明自己吧

18.10.5 實驗吧----證明自己吧

提示:嘿嘿,不用我告訴你怎麼做吧,你懂的

解壓後是一個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!