160 - 51 DueList.6
環(huán)境: Windows xp sp3
工具: Ollydbg exeinfope
0x00 查殼
發(fā)現(xiàn)程序沒(méi)有加殼,那么我們可以直接分析了。
0x01 分析
運(yùn)行程序看一看
看到錯(cuò)誤信息的字符串后我們可以直接搜索了。
可以看到程序會(huì)比較輸入的長(zhǎng)度是否為8位,如果不是就會(huì)彈出錯(cuò)誤的信息,然后再進(jìn)入函數(shù)0040104B檢驗(yàn)輸入的內(nèi)容是否正確。
我們到0040104看一下。
不難看出核心的內(nèi)容主要從 0040106B開(kāi)始,然后進(jìn)入循環(huán),循環(huán)次數(shù)與輸入的內(nèi)容的前4位相關(guān),循環(huán)結(jié)束后判斷exa的值是否滿足要求。
同樣的算法執(zhí)行了兩遍,唯一不同的是eax的初始值和判斷值不同。
這次循環(huán)次數(shù)與輸入內(nèi)容的后4位相關(guān),核心算法還是與上面相同。當(dāng)兩次的檢驗(yàn)均滿足后才會(huì)使得eax返回1,顯示正確的消息框。
0x02 算法分析
程序的核心算法比較簡(jiǎn)單,由于輸入的內(nèi)容是循環(huán)的次數(shù),所以我們可以讓程序反過(guò)來(lái)計(jì)算,并且一直執(zhí)行,直到滿足條件為止,這樣循環(huán)的次數(shù)就是我們應(yīng)該輸入的內(nèi)容了。
這里是核心算法的第一部分,第二部分不同點(diǎn)只是初始值不同。
注意的是這里有個(gè)判斷sum 是否等于0xDBD76F6,當(dāng)?shù)谝淮悟?yàn)證的循環(huán)次數(shù)為這個(gè)值的時(shí)候,也能使得eax滿足條件,但是顯然這個(gè)值是無(wú)法輸入的,所以我們要忽略掉這個(gè)值。
最后就可以得到:
總結(jié)
以上是生活随笔為你收集整理的160 - 51 DueList.6的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 新乡治子宫内膜异位症最好的医院推荐
- 下一篇: 160 - 52 egis.1