開啟程式執行一下:
隨便點一下,程式就結束了
拉入ida檢視**
程式的流程還是比較清晰的。
messagebox函式的第二個引數的內容我們需要去檢視一下
點開lpmem被賦予的內容 即unk_409b10
右邊沒有注釋,說明不是ascii碼
接著就死在這裡好久。。
因為不合邏輯
然後點開了函式sub_401000檢視了一下
發現這裡才是關鍵函式
演算法很簡單就是把unk_409b10以雙字型別與0xddccaabb分別異或
但是奇怪的在於程式就算進入這裡,也沒有可以輸出的地方
只能直接退出
所以我們調出來一下流程圖
觀察之後確定,的確沒有多餘的路徑
所以只能在od裡面使用nop**,把exitprocess()nop掉,並且將內容以messagebox的形式輸出
這是唯一的解決方案。
所以我們就能很輕鬆的寫出來序號產生器
#includeusing namespace std;
int main()
,b=0xddccaabb;
int c;
char d;
for(int n=0;n<9;n++)
end
逆向工程 2
逆向工程 二 從乙個簡單的例項來了解pe檔案 筆記1 去掉訊息框,是在ollydbg工具下,在程式的messagebox段,改變程式 執行順序,跳過程式框段 段,從而去掉程式框。什麼是pe檔案?pe portable executable 檔案是windows作業系統下使用的可執行檔案格式,僅在wi...
反彙編 逆向初步 2
逆向初步 1 介紹的是if else語句在反彙編中的事例,現在我們來看看switch case語句在反彙編長啥樣。我們先來看一段簡單的使用switch case語句的程式,其 如下 include main 接下來我們來看它對應的反彙編 如下所示 4 int c 5 00401028 mov dwo...
XCTF 高階 RE APK 逆向2
using system using system.diagnostics using system.io using system.net.sockets using system.text namespace rev 100 catch exception socket client tcpcl...