逆向破解入門之VM下浮點演算法提取(附練習程式和原始碼)
前言: 0.說到這個技術可能很多人知道,沒吃過豬肉但見過豬跑,目前來說,很多網路驗證還是用到了相關的東西,本地設計一個相對來說複雜的運算,服務端同樣設計一個一模一樣的運算,本地計算機產生一個隨機數或多個,通過網路傳送到伺服器,伺服器得到一個運算結果和本地的做比較,如果結果不同,那麼則視為非法使用軟體。那麼伺服器演算法和本地是一致的,所以只要得到本地演算法就等於拿到伺服器演算法了。
1.首先準備一份E原始碼.如圖,本次任務就是在vm狀態下找到下面四個數值。
2.將原始碼編譯成exe,然後用OD載入,觀察彙編程式碼。如圖,相關程式碼已經註釋。
3.首先在無殼狀態下,單步跟蹤一下他的演算法,最好能逆出來,如果無殼都不會,那麼加殼就不談了。
4.學會使用OD RunTrace功能,View->Run Trace->logToFile 。然後到需要記錄程式碼的開始點跟蹤記錄,這個不會的自己練習一下
5.簡單的程式設計(print("hello world! \n"))
6.上vmp3.1殼子,殼中提取原理,因vmp沒有對浮點指令的模擬執行,也就是浮點指令還是浮點指令fadd 還是 fadd,不像是push ebp 可能已經面目全非變成幾百上千行的咱不認識的東西,那麼根據這個特性,咱們利用OD的RunTrace功能,在vm中記錄下程式碼,一直到浮點運算結束完畢,這個結束點可以根據情況自行把握記錄下的程式碼,必然存在fild,fadd等加減乘除,所以可以把相關的浮點程式碼提取出來,記錄下地址,再到OD裡面動態跟蹤,即可大概率得到浮點演算法。
7.這麼一小段程式碼trace了近37萬行,可見vmp的可怕,簡單的東西無限複雜,這就是它。
8.處理trace檔案提取浮點運算程式碼
//c#程式碼 拖入檔案處理匹配文字
private void Form1_DragDrop(object sender, DragEventArgs e)
{
string path = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
StreamReader sr =new StreamReader(path, System.Text.Encoding.GetEncoding("gb2312"));
string line;
int count = 0;
while ((line = sr.ReadLine()) !=null)
{
if (line.Contains("fadd") || line.Contains("fsub") || line.Contains("fmul") || line.Contains("fdiv"))
{
textBox1.AppendText(count.ToString()+" :"+ line +"\n");
count++;
}
}
sr.Close();
}
得到結果:
9.OD跟蹤提取演算法
完結,有不懂的兄弟,可以對照例子練習一下,還有一點沒有說道,就是浮點比較,這個大家自己研究一下,步驟基本上不變,比上面的過程更加簡單。
題外話:感覺寫文章比做影片要累的多,錄個影片可能半小時搞定,寫文章就得好幾個小時總結,截圖之類。希望老哥們能給點評分鼓勵一下,後面還會寫一些自己總結的東西。
本篇文章的練習程式和原始碼在下方帖子連結中,歡迎下載並交流溝通
逆向破解入門之VM下浮點演算法提取(附練習程式和原始碼) - 『脫殼破解區』 - 大神論壇 |脫殼破解|易語言|病毒分析|www.dslt.tech
版權宣告:本文由 lichunfeng 原創,歡迎分享本文,轉載請保留出處
- 逆向脫殼分析基礎學習筆記十二 彙編 全域性和區域性變數
- 逆向脫殼分析基礎學習筆記十一 彙編C語言基本型別
- 逆向脫殼分析基礎學習筆記十 彙編尋找C程式入口
- 逆向脫殼分析基礎學習筆記九 C語言內聯彙編和三種呼叫協定 裸函式
- 逆向脫殼分析基礎學習筆記八 反彙編分析C語言
- 逆向脫殼分析基礎學習筆記六 彙編跳轉和比較指令
- 逆向脫殼分析基礎學習筆記五 標誌暫存器
- 大神論壇 逆向脫殼分析基礎學習筆記四 堆疊篇
- 大神論壇 逆向脫殼分析基礎學習筆記三 通用暫存器和記憶體讀寫
- 大神論壇 逆向脫殼分析基礎學習筆記一 資料寬度和邏輯運算
- 大神論壇 UEditor 富文字web編輯器最新漏洞版XML檔案上傳導致儲存型XSS
- 大神論壇 內網滲透之向日葵幫我幹掉了殺軟 實現內網穿透
- 大神論壇 逆向分析 Internet Download Manager 序列號演算法 附IDM註冊機完整原始碼
- 【資料合集】HarmonyOS從入門到大神資料下載合集
- 大神論壇 Android多層鎖機樣本逆向脫殼分析與解鎖 (附樣本原始檔)
- 大神論壇 逆向脫殼之保護模式學習六 程式碼跨段跳轉
- 逆向脫殼之保護模式學習三 段描述符和段選擇子
- 逆向破解入門之VM下浮點演算法提取(附練習程式和原始碼)
- 遊戲熱血江湖 滿線自動查詢器製作遊戲分析脫殼與查詢器原始碼分享
- 大神論壇 史上最全植物大戰殭屍分析及遊戲輔助Python實現