理解了vmp保護的原理
把x86指令 push(入棧) 之後 加密 然後 jmp到虛擬機器 然後通過直譯器,模擬cpu對指令進行執行
比如vmprotectbegin
push 2
push 3
call 0x123456
vmprotectend
把這段**進行加密 變成
jmp 到虛擬機器中
利用直譯器進行解釋執行
加密的時候先把你加密的**加密成他直譯器的**,然後在你的程式中嵌入乙個直譯器
vmp 是從指定位置提取 x86 機器碼分解為對應的 vm_byte ,然後jmp到虛擬機器後,通過 vm_dispatcher 引擎,執行對應的 vm_byte , 有了 np 的 fkvmp 後,方便了提取各個 h 的分部位置(僅此而爾,如果你原來不懂它的,那麼這個外掛程式對你來說還是沒用的)
,出來後從有限的幾個 h 中就可以還原出原始指令的真實意圖(就我感覺,無須還原出(暫時我自己也不能還原出)與原始指令真一一對應的 x86 指令),只能抽象模擬出原始模樣(但這樣對了解演算法和破解就已經足夠了)
理解了自己的工作
工作五年,各種折騰linux uboot,driver,soc,產品,協議棧 afdx,wimax,lora os ucos,rtems,arduino,nuttx,linux,windows 非同步通訊軟體設計,讀了以下文章,深有同感,終於更加深入的理解自己做的東西,理解了自己在2007年左右所想...
終於理解了什麼是LGPL
我 們很熟悉的linux 就是採用了gpl。gpl協議和bsd,apache licence等鼓勵 重用的許可很不一樣。gpl的出發點是 的開源 免費使用和引用 修改 衍生 的開源 免費使用,但不允許修改後和衍生的代 碼做為閉源的商業軟體發布和銷售。這也就是為什麼我們能用免費的各種linux,包括商...
我終於理解了閉包
本文寫於 2020 年 5 月 14 日 閉包這個詞一聽就很高階,令人害怕。但實際上,閉包非常的強大,js 的精髓之一就是閉包。實際上,我們經常在使用閉包,而不自知!kyle simpson 在書中將掌握閉包,比喻為 不像 luke 一樣接受訓練才能掌握原力,而是像 neo 見到矩陣一樣。我們其實一...