无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

一道逆向題

2022-03-24 14:45 作者:rkvir逆向工程學(xué)院  | 我要投稿

查殼后程序是一個32位無殼的程序

拉到od和ida中分析一下

經(jīng)過分析,

首先分析第一個字符串比較的call

取字符串的第一個字符,循環(huán)字符串n次(n為字符串的長度),將第一個字符相加n次,然后這個值=550也就是0x226

所以這里只要滿足 字符*n=550 就可以,經(jīng)過后面的分析這里n需要填10(見下文)

也就是?7開頭長度為10 的字符串

接下來調(diào)試程序

在段首004010770地址下個斷點(ida中main函數(shù)開頭的地址)

我們一路單步(F8)來到這里,這里必須跳轉(zhuǎn)(可以修改標(biāo)志寄存器的S位改變是否跳轉(zhuǎn)),不然程序是不會進行字符串比較的

下面那個call就是進行字符串比較的call了

我們單步(F7)進入,發(fā)現(xiàn)這里面有兩個跳轉(zhuǎn)

第一個jnz就是==550的判斷

第二個jnz是字符串是否相等的判斷

對應(yīng)ida中

這里我們看到一串類似base64的字符串

搜索字符串看一下

猜測這里他自定義了base64編碼表

解密得到

因為這里解密到的長度是10,所以上面的n才為10,不然加密后的字符串長度是不夠的

此時我們測試一下,

當(dāng)算法call執(zhí)行完成后我們修改字符串為 上面解密到的,我們看能不能成功

在內(nèi)存窗口中修改后

然后來到字符串比較的地方

我們可以看到要進行比較的兩個字符串是一樣的

所以現(xiàn)在

只需要讓我們輸入的字符串經(jīng)過算法call后等于?? =>=:<2>?=2

然后分析一下算法的call

算法call里主要就是這個call,然后這個call執(zhí)行了4次,我們點進去

分析

第一次執(zhí)行的是4

第二次1

第三次2

第四次3

此時只需要將? =>=:<2>?=2 反推回來

也就是

先每一位+1,再除啦第一位后面每一位-3,再每一位xor9? 就可以了

然后寫腳本


一道逆向題的評論 (共 條)

分享到微博請遵守國家法律
绥宁县| 龙里县| 皮山县| 穆棱市| 罗江县| 荥经县| 晋宁县| 扶沟县| 夹江县| 蛟河市| 尤溪县| 德州市| 喀喇| 搜索| 定日县| 常德市| 寻乌县| 柳林县| 澄江县| 平顶山市| 响水县| 泸定县| 屯昌县| 龙州县| 九江县| 泗阳县| 临邑县| 禹州市| 香格里拉县| 横山县| 洱源县| 镇坪县| 罗平县| 遵义市| 玉环县| 措勤县| 中宁县| 石林| 德保县| 绥芬河市| 铜梁县|