170915 逆向 問鼎杯題庫(小磊生病了)

2021-08-08 07:29:09 字數 2329 閱讀 9907

1625-5 王子昂 總結《2023年9月15日》 【連續第348天總結】

a. 問鼎杯題庫-逆向

b.小磊生病了

題目:小磊生病了,醫生檢查出小磊體內有兩種有害病菌b和c是引發的關鍵,同時也找到的消滅病菌的有益菌a ,現在要你幫助a戰勝b和c,治好小磊,小磊會告訴你flag是什麼。

直接執行會顯示andy,bob,carl三種菌的數量

觀察**結構可以發現最後flag的生成處:

很明顯,當通過了23次迴圈以上時,會以v24陣列的值作為下標來列印nefo字串

分別將兩個陣列複製下來進行處理,得到flag:

s = "nefolieihrthe"

h = [2, 5, 9 ,6 ,7 ,0 ,10 ,8 ,12 ,11 ,3 ,4 ,1]

for i in h:

print(s[i], end='')

fireinthehole

還可以爆破:

00a31297   . /75

36 jnz short qqqq.00a312cf

00a31299 . |8bbd 60ffffff mov edi,dword ptr ss:[ebp-0xa0] ; di=v23,迴圈量

00a3129f . |33f6 xor esi,esi

00a312a1 . |85ff test edi,edi

00a312a3 . |7e 2a jle short qqqq.00a312cf

00a312a5 . |eb 09 jmp short qqqq.00a312b0

00a312a7 . |8da424 000000>lea esp,dword ptr ss:[esp]

00a312ae . |8bff mov edi,edi

00a312b0 > |8b94b5 64ffff>mov edx,dword ptr ss:[ebp+esi*4-0x9c] ; 選取flag字元

00a312b7 . |0fbe4415 b0 movsx eax,byte ptr ss:[ebp+edx-0x50]

00a312bc . |50 push eax

00a312bd . |68 48baa300 push qqqq.00a3ba48 ; %c

00a312c2 . |e8 14010000 call ; 輸出

00a312c7 . |46 inc esi

00a312c8 . |83c4 08 add esp,0x8

00a312cb . |3bf7 cmp esi,edi

00a312cd .^|7c e1 jl short qqqq.00a312b0

00a312cf > \68

4cbaa300 push qqqq.00a3ba4c ; pause

00a312d4 . e8 25000000 call qqqq.00a312fe

直接將eip改到這裡00a31299即可

注意要在初始化賦值工作進行之後,否則堆疊中無這些區域性變數

edi要手動寫入23,因為我們未合法進行若干次迴圈

esi注意要執行清空置0,否則print不從第0個開始

同樣能得到flag

至於演算法

粗略地分析了一下,整個程式一共有三層迴圈:

第一層隨機生成數

第二層依次比較第一名、第二名和第三名

第三層交換名稱和值

最複雜的三個第四層迴圈是寫入字串用的,分別為tmp=a,a=b, b=tmp

最後驗證是否第一名(即值最高的)為益生菌andy,是則繼續迴圈,不是則直接結束

如果andy連續勝利23次以上則輸出flag

嗯……概率有點感人哈,不過好像還是有可能的 不像擲骰子要求7那種完全沒戲

反正就是要求爆破咯╮(╯_╰)╭

c. 明日計畫

問鼎杯正賽

2016 12 3 問鼎杯線上賽6 2逆向分析

這道題目的檔案給我們的是乙個壓縮包a2ia8 6 2.rar,解壓之後得到乙個crackme.exe和readme.txt 開啟readme.txt可以看到對我們目標的描述。從這裡我們知道,這個就是逆向當中很平常的求serial計算演算法 或者更具提示暴力跑?這裡我們分析來逆向演算法 並且我們也知道...

藍橋杯軟體類題庫

入門訓練 begin 4 fibonacci數列 begin 3 圓的面積 begin 2 序列求和 begin 1 a b問題 基礎練習 basic 13 數列排序 basic 8 回文數 basic 7 特殊的數字 basic 6 楊輝三角形 basic 5 查詢整數 basic 4 數列特徵 ...

網鼎盃2020 joker逆向

gcc編譯,無殼 看一下程式結構 程式有函式分析錯誤,堆疊的原因,我就沒改它了,因為彙編也簡單,上手就擼 第乙個關鍵塊 4017dd就是乙個字串拷貝函式,動態可見,然後4017eb是第乙個無用函式,看一下 12 3456 78910 1112 1314 1516 1718 1920 char cde...