日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

逆向查找_CTFer成长之路--一道数独逆向题目解题过程(算法分析、查找线索)...

發布時間:2024/10/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 逆向查找_CTFer成长之路--一道数独逆向题目解题过程(算法分析、查找线索)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

CTF 是實戰性很強的賽事。僅學習理論知識,不進行實操,永遠無法成為 CTF 大神。本次博客為大家解讀一道數獨相關的逆向,講解解題過程,總結知識點(CTF中的套路)。

題目介紹

本次選擇的是出自2017年全國大學生信息安全競賽的一道逆向題,題目分值200分,主要考察算法分析、腦洞、數獨知識等內容。(為啥說考察數獨知識呢,因為你在分析時如果想到了有可能是數獨,你會解題飛快。)

準備工具

  • OD反匯編工具,用于動態調試
  • IDA反匯編工具,用于查看反匯編信息,靜態分析
  • ExeinfoPe 工具,可以查詢軟件信息
  • 數獨解題網站,https://shudu.gwalker.cn/
  • 解題過程

  • 運行軟件
  • 虛擬機中,直接運行程序,一頓猛輸入,直接提示 fail!后程序退出。

    2. 使用 ExeinfoPe 查看軟件信息

    發現沒有殼,開心一下。 是一個32位程序。

    3. IDA查看軟件信息

    直接拖入到 IDA中查看。在函數窗口看到main函數,直接點開后,按下 F5,偽代碼如下:

    4. 分析算法

    在偽代碼22行、23行發現有一個類,名叫 Sudu。 22行 初始化這個類。23行,Sudu::set_data,按名字理解是設置這個類的內部數據。具體設置什么數據還不知道。

    如果要想得到 "success" 滿足的 兩個條件分別是 Sudo::check()函數要通過 , set_sudu()這個函數的返回值要為0。

    點擊進入 Sudu::set_data函數查看。從 第二個參數的地址,初始化一個9*9的數組。到這里如果能猜出是數獨的是大神(逃跑)。

    直接進入OD動態調試。發現初始化后的地址,數據如下:

    從地址可以看到,所有數組使用了小端模式存儲了。恢復數據后,是以下數獨。

    [0, 0, 7, 5, 0, 0, 0, 6, 0]

    [0, 2, 0, 0, 1, 0, 0, 0, 7]

    [9, 0, 0, 0, 3, 0, 4, 0, 0]

    [2, 0, 1, 0, 0, 0, 0, 0, 0]

    [0, 3, 0, 1, 0, 0, 0, 0, 5]

    [0, 0, 0, 0, 0, 0, 7, 1, 0]

    [4, 0, 0, 0, 0, 8, 2, 0, 0]

    [0, 0, 5, 9, 0, 0, 0, 8, 0]

    [0, 8, 0, 0, 0, 1, 0, 0, 3]

    5. 直接用網站解題。

    在線解數獨的網站比較多,我們選了一個,https://shudu.gwalker.cn/

    將上面數獨輸入進去。可以解出來。

    6. 輸入數獨,獲得flag

    將網站解出來的數獨,按順序輸入到命令行窗口。輸入時,我們計算出來的填寫數字。原先有數值的,用0替代。

    輸入值:340089102508406930016207058060875349709064820854392006093650071170023604602740590

    flag 就是要輸入的數組。

    主要知識點

    1.小段模式和大段模式

    什么是大端什么是小端? 數據 在內存中的表達方式有兩種。以數據 0x12 34 56 78為例,

  • 大端模式:Big-Endian
  • 在本模式下,將高位字節排放在內存中的低地址段,低位字節安排在內存中的高地址端。

    這種模式和我們的直觀理解是一樣的。

    低地址 --------------------> 高地址 0x12 | 0x34 | 0x56 | 0x78

  • 小端模式:Little-Endian
  • 在本模式下,低位字節排放在內存中的低地址端,高位字節排放在內存中的高地址端。

    低地址 --------------------> 高地址 0x78 | 0x56 | 0x34 | 0x12

    在參考文獻中對于大小端有個詳細的描述,感興趣的讀者可以看一下。通常 arm、DSP大多采用小端模式。

    寫在結尾

    這道是一個典型的技巧性比較強的題目。如果你的思維靈活或者敢于大膽猜測說不定能拿到第一滴血。

    參考:

    1.https://www.cnblogs.com/little-white/p/3236548.html

    總結

    以上是生活随笔為你收集整理的逆向查找_CTFer成长之路--一道数独逆向题目解题过程(算法分析、查找线索)...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。