最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

算法分析丨Reversing-x64Elf-100逆向題

2022-04-08 14:07 作者:rkvir逆向工程學(xué)院  | 我要投稿

1.下載查殼

64位無殼

2.拖進(jìn)IDA具體分析

(1)shift+F12查找是否有關(guān)鍵字符串

發(fā)現(xiàn)關(guān)鍵字符串“nice!”,按照經(jīng)驗(yàn)來看這就是成功驗(yàn)證后的提示

(2)找到引用關(guān)鍵字符函數(shù)

(3)閱讀代碼可以知道流程:要求用戶輸入一個(gè)字符串存入s中,將s地址作為參數(shù)傳給sub_4006FD,將sub_4006FD的返回值最為調(diào)用sub_4006FD函數(shù)的if判斷條件,如果返回值為非零值則提示“Incorrect password!”,所以要讓sub_4006FD返回值為0

(4)跟進(jìn)sub_4006FD函數(shù)

閱讀代碼可以發(fā)現(xiàn)只有for中的if條件滿足時(shí)才會(huì)返回非零1,但是我們想要的是返回,所以要在這11次循環(huán)中讓if條件不成立,那查看條件

*(char *)(v3[i % 3] + 2 * (i / 3)) - *(char *)(i + a1) != 1

使每次循環(huán)v3對(duì)應(yīng)數(shù)組的值加上2 * (i / 3)的值作為地址,取該地址的值

減去每次(i + a1)地址的值,判斷相減的結(jié)果是否為1,不為1的話就繼續(xù)循環(huán),為1的話就會(huì)返回1,那么我們肯定是使它循環(huán)完11次返回0,仔細(xì)看這里的a1就是我們?cè)趍ain函數(shù)中出入進(jìn)來的我們輸入的字符串的地址值,那么重點(diǎn)來了,我們的目的就是不然if條件成立,那么就可以寫成

*(char *)(v3[i % 3] + 2 * (i / 3)) - *(char *)(i + a1) == 1

這樣算出來的(i + a1)對(duì)應(yīng)地址的值就是正確的值

那直接寫腳本

#includeint main() { ? ?int i; // [rsp+14h] [rbp-24h] ? ?int n = 0; ? ?__int64 v3[4]; // [rsp+18h] [rbp-20h] ? ?int a1[11] = {1}; ? ?v3[0] = (__int64)"Dufhbmf"; ? ?v3[1] = (__int64)"pG`imos"; ? ?v3[2] = (__int64)"ewUglpt"; ? ?for (i = 0; i <= 11; ++i) ? ?{ ? ? ? ?for (size_t n = 0; n < 222; n++) ? ? ? ?{ ? ? ? ? ? ?if (*(char*)(v3[i % 3] + 2 * (i / 3)) - n == 1) ? ? ? ? ? ? ? ?a1[i] = n; ? ? ? ?} ? ?} ? ?for (size_t i = 0; i < 15; i++) ? ?{ ? ? ? ?printf("%c",a1[i] ); ? ?} }


定義一個(gè)變量n最為我們輸入的每個(gè)字符對(duì)應(yīng)的ASCLL碼值,設(shè)n的最大ASCLL碼值為200,通過不斷地判斷(char)(v3[i % 3] + 2?(i / 3)) - n == 1來把滿足條件的n存入我們的正確flag數(shù)組中

3.結(jié)果


算法分析丨Reversing-x64Elf-100逆向題的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
大同县| 托克托县| 巨野县| 灌阳县| 合作市| 防城港市| 浦北县| 潮州市| 双辽市| 盖州市| 岳西县| 延川县| 绥阳县| 黄冈市| 婺源县| 阿拉善左旗| 上虞市| 洛宁县| 塔河县| 郯城县| 桐梓县| 腾冲县| 股票| 洛南县| 林周县| 青海省| 葫芦岛市| 二手房| 兴文县| 清新县| 莱州市| 宜章县| 黄石市| 瑞安市| 安福县| 两当县| 西宁市| 桂林市| 客服| 江西省| 花垣县|