国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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? 就可以了

然后寫腳本


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

分享到微博請遵守國家法律
永春县| 和龙市| 白沙| 华容县| 长顺县| 禹城市| 乌拉特中旗| 张家界市| 新兴县| 麦盖提县| 宜州市| 德清县| 内丘县| 黄山市| 乌鲁木齐市| 榆中县| 连城县| 交城县| 南皮县| 奉化市| 贡觉县| 措美县| 郯城县| 裕民县| 贺州市| 历史| 邛崃市| 左权县| 新和县| 乡城县| 离岛区| 茂名市| 巴彦县| 电白县| 衡阳县| 噶尔县| 康保县| 平舆县| 施秉县| 富民县| 山丹县|