介紹VMP虛擬化原理之前,先簡單介紹一下計算機運行的原理。總所周知,現代計算機的核心部件是CPU、內存、磁盤、鍵盤、顯示器等;最最最核心的就屬CPU、內存和磁盤了。用戶按開機鍵,CPU會把OS從磁盤加載到內存運行。由於CPU只能識別並執行二進制文件,所以代碼、數據等都是以二進制存放在磁盤和內存 ...
這次爆破的是某編輯類軟件,版本是 位綠色版本:V . . OD打開后發現了VMP 段,這里下個內存訪問斷點: 又來到這里了,非常明顯的VMP入口特征: 一大堆push指令又開始保存物理寄存器 同時讓esi指向虛擬指令集 和上面一篇文章分析的混淆手法一模一樣,個人猜測用的VMP也是 . . 版本的 分配虛擬棧空間: 這里就不再重復分析整個VMP過程了,感興趣的小伙伴建議看看之前的VMP系列介紹 為 ...
2021-01-16 23:04 0 2521 推薦指數:
介紹VMP虛擬化原理之前,先簡單介紹一下計算機運行的原理。總所周知,現代計算機的核心部件是CPU、內存、磁盤、鍵盤、顯示器等;最最最核心的就屬CPU、內存和磁盤了。用戶按開機鍵,CPU會把OS從磁盤加載到內存運行。由於CPU只能識別並執行二進制文件,所以代碼、數據等都是以二進制存放在磁盤和內存 ...
1、軟件的逆向、外掛、破解等,本質上是想辦法改變原有代碼的執行路徑,主要的方式有兩種: 改變某些關鍵數據,比如函數參數(android下有xpose、frida等現成的hook框架,逆向人員只需要找准hook的點就完成了90%的逆向工作)、某些全局變量(比如VX防止多開的mutex ...
總結vmp殼基礎原理,大牛不要噴啊! 1.與傳統的加殼工具不同,不是簡單的把目標進行壓縮、內存解壓運行,而是修改目標源碼,讓目標的部分指令在vmp創建的虛擬環境下運行,虛擬環境中無操作數比較指令、條件跳轉和無條件跳轉指令; 2.被修改替換的目標指令最終形成的字節碼 ...
VMP殼 :是用來保護關鍵的代碼段的一種加密殼 原理:抽出局部代碼,轉變為中間碼,虛擬機引擎對中間碼進行解釋,替代CPU解釋執行代碼,然后跳轉回源地址,每次執行都解釋執行一次代碼,虛擬機有一套自己的反編譯算法去解釋執行代碼: 比如 mov = 0xe8 ebx ...
好久沒有到博客寫文章了,9月份開學有點忙,參加了一個上海的一個CHINA SIG信息比賽,前幾天又無錫南京來回跑了幾趟,簽了阿里巴巴的安全工程師,准備11月以后過去實習,這之前就好好待在學校學習了。 這段時間斷斷續續把《加密與解碼 第三版》給看完了,雖然對逆向還是一知半解,不過對VMP虛擬機加殼 ...
介紹 這個殼的核心——字節碼解釋器,它參考了dalvik虛擬機的解釋器。不需要hook、注入。目前只支持算數運算指令。 我個人把dalviki指令分為這么幾類: 算數運算指令。 引用類指令。如const-string、invoke-kind,這類指令需要引用dex的資源。 其他指令 ...
這是一個困擾我很久很久的問題,本來打算把exe的打包簽名做成jenkins自動化的,卻被這個問題打斷了。 最后,無意中找到了解決方案。我們下載的包解壓后結構如下: 里面的VMProtect_Con.exe就是用來做命令行加殼的,如何做呢:VMProtect_Con.exe 直接 ...
加殼的實現 我是個初學者,所知有限,難免會有錯誤,如果有人發現了錯誤,還請指正。先大致說一下加殼的原理,即在原PE文件(后面稱之為宿主文件)上加一個新的區段(也就是殼),然后從這個新的區段上開始運行;也就算是成功的加上了殼;下面我們就說一下具體的實現。這個工程有兩個項目,一個用來生成殼 ...