導航:首頁 > 文檔加密 > vmp加密代碼

vmp加密代碼

發布時間:2022-08-07 20:30:32

『壹』 被VMP過的代碼有什麼特點

這個應該是Themida 入口

老版本VMP入口的是

push XXXXXXXX ; XXXXXXX是個常量 用來做後面解密的

call XXXXXXXX ;VM_START
新版本是一個直接jmp

『貳』 VMP 殼是什麼殼》

是VMP加過的,VMP理論上應該還不算是殼,只是一種將代碼變形的工具,但強度非常高,目前還沒有人公開宣稱能還原VM過的代碼,放棄吧,破解不了的

『叄』 vmpvmprotect 加密的程序 請幫幫我

虛擬機加密,就是說像VMP這樣的保護程序,它會把源程序的X86指令變成自定義的偽指令,等到執行的時候,VMP內置在保護程序中的VM就會啟動,讀取偽指令,然後解析執行。
VMP是一個堆棧虛擬機,它的一切操作都是基於堆棧傳遞的。在VMP中,偽指令就是一個個的handler,VM中有一個核心的Dispatch部分,它通過讀取程序的bytecode,然後在DispatchiTable裡面定位到不同的handler中執行。
絕大多數情況下,在一個handler中執行完成後,程序將回到Dispatch部分,然後到next handler中執行。

『肆』 易語言做穿越火線輔助

你好,場面話我不太會說索性也就不說了。直奔主題,如題。易語言做穿越火線輔助。
我不同意那位熱心網友的說法,穿越火線會更新這是事實,但是輔助做好了系統不會自動更新的,動態數據應該是他口中的一級基址吧。可以通過偏移來獲取二級基址。輔助也可以自動更新,免費輔助除外。
做輔助,說容易也容易說難也不難,首先你要學會基本知識。不然很難理解輔助的思路。
對於輔助的基本思路,用超級模塊比較容易,接下來就用CE去游戲搜索內存基址。
寫程序代碼
.版本 2

.程序集 基址更新

.子程序 基地址初始化

置入代碼 ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) ' VMP過程加密開始
DIRECT = 十六到十 (「7240B0」)
玩家數組 = 十六到十 (「19B5204」)
數組大小 = 十六到十 (「448」)
本人ID = 十六到十 (「64E8」)
FOV = 十六到十 (「26906f8」)
模式基址 = 十六到十 (「19B2748」)
是否為生化 = 十六到十 (「347E8」)
dx_pos = 十六到十 (「71E674」)
本人偏移 = 十六到十 (「70」)
滑鼠Y偏移 = 十六到十 (「360」)
滑鼠Y偏移_j = 十六到十 (「ABC」)
OBJECT = 十六到十 (「64F0」)
xpdx = 十六到十 (「714848」)
xp01 = 十六到十 (「1B0」)
xp02 = 十六到十 (「89501024」)
xp03 = 十六到十 (「44」)
v_解密1 = 十六到十 (「53ECFF0」)
v_解密2 = 十六到十 (「50DC430」)
w_hook = 十六到十 (「5421864」)
自瞄檢測 = 十六到十 (「53EAA48」)
自瞄檢測1 = 十六到十 (「53EB098」)
' -------------------
線程 = 十六到十 (「300EB00」)
游戲檢測線程 = 十六到十 (「4042e21」)

置入代碼 ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 })

.版本 2

.程序集 輔助界面
.程序集變數 old_, 整數型
.程序集變數 本人的數據, 本人數據
.程序集變數 aac, 整數型
.程序集變數 文本行距, 整數型
.程序集變數 方框, 坐標XX
.程序集變數 字體, 坐標XX
.程序集變數 鍵速, 整數型
.程序集變數 選中, 整數型
.程序集變數 文本變數, 文本型, , "50"

.子程序 DLL是否載入, 邏輯型
.局部變數 a, 整數型
.局部變數 掛接, 整數型
.局部變數 b, 整數型

置入代碼 ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) ' VMP過程加密開始
.判斷循環首 (a < 1000)
a = get_old ()
Sleep (2000)
b = b + 1
.如果真 (b > 10)
返回 (假)
.如果真結束

.判斷循環尾 ()
內存操作f.修改內存屬性 (a, 64, 4)
old_ = 讀_DWORD2 (a)
顯示菜單 = 真
寫_DWORD2 (a, 取子程序真實地址_f (&my_地址))
返回 (真)
置入代碼 ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) ' VMP過程加密結束

.子程序 刷新變數文本

區域內瞄準 ()
.判斷開始 (新自瞄位置 = 6)
瞄準位置 = 「頭部」
.判斷 (新自瞄位置 = 5)
瞄準位置 = 「胸部」
.判斷 (新自瞄位置 = 4)
瞄準位置 = 「上腰」
.判斷 (新自瞄位置 = 3)
瞄準位置 = 「中腰」
.判斷 (新自瞄位置 = 2)
瞄準位置 = 「屁股」
.默認

.判斷結束
.判斷開始 (瞄準范圍 = 0)
范圍文本 = 「零度」
.判斷 (瞄準范圍 = 2)
范圍文本 = 「超大」
.判斷 (瞄準范圍 = 4)
范圍文本 = 「中型」
.判斷 (瞄準范圍 = 8)
范圍文本 = 「小型」
.判斷 (瞄準范圍 = 16)
范圍文本 = 「微型」
.默認

.判斷結束

.子程序 get_old, 整數型, , D3Djiekou
.局部變數 a, 整數型

置入代碼 ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) ' VMP過程加密開始
a = 讀_DWORD2 (DIRECT)
.如果真 (a > 1000)
a = 讀_DWORD2 (a)
.如果真 (a > 1000)
.如果 (讀_DWORD2 (a + 十六到十 (「2a20」)) < 1000)
a = 讀_DWORD2 (a + 十六到十 (「2ac0」))
.否則
a = 讀_DWORD2 (a + 十六到十 (「2a20」))
.如果結束
.如果真 (a > 1000)
.如果真 (a > 1000)
a = 讀_DWORD2 (a)
.如果真 (a > 1000)
a = a + 十六到十 (「4c」)
返回 (a)
.如果真結束

.如果真結束

.如果真結束

.如果真結束

.如果真結束
置入代碼 ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) ' VMP過程加密結束
返回 (0)

.子程序 匯編取變數_DECLARE_INTERFACE_, 整數型
.參數 a, DECLARE_INTERFACE_, 參考

置入代碼 ({ 93, 139, 68, 36, 4, 194, 4, 0 })
返回 (0)

.子程序 my_地址, 整數型
.參數 a, 整數型
.局部變數 ss, 整數型

置入代碼 ({ 137, 77, 252 })
置入代碼 ({ 96 })
小轉移 (ss)
置入代碼 ({ 97 })
返回 (call_1 (old_, a))

.子程序 變數初始化, , , -

置入代碼 ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) ' VMP過程加密開始
文本變數 [1] = 「 敵人方框 」
文本變數 [2] = 「 隊友方框 」
文本變數 [3] = 「 瞄準模式 」
文本變數 [4] = 「 瞄準位置 」
文本變數 [5] = 「 瞄準范圍 」
文本變數 [6] = 「 ↓變態類↓ 」
文本變數 [7] = 「 顯示名稱 」
文本變數 [8] = 「 顯示 Q Q 」
文本變數 [9] = 「 顯示準星 」
文本變數 [10] = 「 顯示血量 」
文本變數 [11] = 「 智能瞄準 」
文本變數 [12] = 「 右鍵自瞄 」
文本變數 [13] = 「 無後坐力 」
文本變數 [14] = 「 子彈穿牆 」
文本變數 [15] = 「 零秒換彈 」
文本變數 [16] = 「 ↓人物透視↓ 」
文本變數 [17] = 「 內存透視 」
文本變數 [18] = 「 人物加亮 」

文本變數 [39] = 「 【One 游戲插件】 」
文本變數 [40] = 「◆___________◆」
文本變數 [41] = 「 F9鍵 切換瞄準頭\胸」
文本變數 [42] = 「F12鍵 菜單顯示\關閉」
文本變數 [43] = 「↑↓選擇←→開啟」
' ==============================================顏色
橙色 = D3DCOLOR_ARGB (255, 255, 128, 0)
深粉紅 = D3DCOLOR_ARGB (255, 255, 0, 0)
白色 = D3DCOLOR_ARGB (255, 255, 255, 255)
燈光粉紅 = D3DCOLOR_ARGB (255, 255, 182, 193)
橘紅 = D3DCOLOR_ARGB (255, 255, 0, 143)
芙紅 = D3DCOLOR_ARGB (255, 255, 128, 192)
綠色 = D3DCOLOR_ARGB (255, 0, 255, 0)
藍色 = D3DCOLOR_ARGB (255, 0, 0, 255)
石板藍 = D3DCOLOR_ARGB (255, 30, 144, 255)
黃色 = D3DCOLOR_ARGB (255, 255, 255, 0)
暗紫色 = D3DCOLOR_ARGB (255, 218, 112, 214)
幽靈白 = D3DCOLOR_ARGB (255, 248, 248, 255)
' ==============================================顏色

選中 = 1
文本行距 = 20
方框.X = 5
方框.Y = 5
方框.Z = 350
字體.X = 12
字體.Y = 3
字體.Z = 20
字體.zs = 10
全局菜單開 = 綠色
全局菜單關 = 幽靈白
免疫手雷關 = 綠色
置入代碼 ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) ' VMP過程加密結束

.子程序 小轉移, , , -
.參數 a, 整數型

pd = 讀_DWORD2 (匯編加法 (a, 32))
寫_DWORD2 (匯編取變數_DECLARE_INTERFACE_ (pDevice.IDirect3DDevice9), 讀_DWORD2 (pd))
GetViewport_UP (pd)
.如果 (顯示菜單)
繪制文本_D (pd, 文本變數 [39], 20, 字體.Y + 0 × 字體.Z + 字體.zs, 黃色, 15)
繪制文本_D (pd, 文本變數 [39], 20 + 1, 字體.Y + 0 × 字體.Z + 字體.zs, 黃色, 15)
繪制文本_D (pd, 文本變數 [1] + 選擇 (敵人方框, 「開啟」, 「關閉」), 字體.X, 字體.Y + 2 × 字體.Z, 選擇 (敵人方框, 石板藍, 全局菜單關), 15)
繪制文本_D (pd, 文本變數 [1] + 選擇 (敵人方框, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + 2 × 字體.Z, 選擇 (敵人方框, 石板藍, 全局菜單關), 15)
繪制文本_D (pd, 文本變數 [2] + 選擇 (隊友方框, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 1) × 字體.Z, 選擇 (隊友方框, 全局菜單開, 全局菜單關), 15)
繪制文本_D (pd, 文本變數 [2] + 選擇 (隊友方框, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 1) × 字體.Z, 選擇 (隊友方框, 全局菜單開, 全局菜單關), 15)
繪制文本_D (pd, 文本變數 [3] + 選擇 (智能瞄準, 「禁用」, 選擇 (磁性自瞄開關 = 0, 「F 動」, 「磁性」)), 字體.X, 字體.Y + (2 + 2) × 字體.Z, 全局菜單開, 18)
繪制文本_D (pd, 文本變數 [3] + 選擇 (智能瞄準, 「禁用」, 選擇 (磁性自瞄開關 = 0, 「F 動」, 「磁性」)), 字體.X + 1, 字體.Y + (2 + 2) × 字體.Z, 全局菜單開, 18)
繪制文本_D (pd, 文本變數 [4] + 瞄準位置, 字體.X, 字體.Y + (2 + 3) × 字體.Z, 全局菜單關, 18)
繪制文本_D (pd, 文本變數 [4] + 瞄準位置, 字體.X + 1, 字體.Y + (2 + 3) × 字體.Z, 全局菜單關, 18)
繪制文本_D (pd, 文本變數 [5] + 范圍文本, 字體.X, 字體.Y + (2 + 4) × 字體.Z, 全局菜單關, 18)
繪制文本_D (pd, 文本變數 [5] + 范圍文本, 字體.X + 1, 字體.Y + (2 + 4) × 字體.Z, 全局菜單關, 18)
繪制文本_D (pd, 文本變數 [6] + 敵人顏色, 字體.X, 字體.Y + (2 + 5) × 字體.Z, 黃色, 18)
繪制文本_D (pd, 文本變數 [6] + 敵人顏色, 字體.X + 1, 字體.Y + (2 + 5) × 字體.Z, 黃色, 18)
' 繪制文本_D (pd, 文本變數 [6] + 選擇 (顯示範圍, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 5) × 字體.Z, 選擇 (顯示範圍, 全局菜單開, 全局菜單關), 18)
' 繪制文本_D (pd, 文本變數 [6] + 選擇 (顯示範圍, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 5) × 字體.Z, 選擇 (顯示範圍, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [7] + 選擇 (顯示名字, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 6) × 字體.Z, 選擇 (顯示名字, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [7] + 選擇 (顯示名字, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 6) × 字體.Z, 選擇 (顯示名字, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [8] + 選擇 (顯示QQ, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 7) × 字體.Z, 選擇 (顯示QQ, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [8] + 選擇 (顯示QQ, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 7) × 字體.Z, 選擇 (顯示QQ, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [9] + 選擇 (顯示準星, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 8) × 字體.Z, 選擇 (顯示準星, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [9] + 選擇 (顯示準星, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 8) × 字體.Z, 選擇 (顯示準星, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [10] + 選擇 (顯示血量, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 9) × 字體.Z, 選擇 (顯示血量, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [10] + 選擇 (顯示血量, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 9) × 字體.Z, 選擇 (顯示血量, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [11] + 選擇 (磁性自瞄開關 = 1, 「禁用」, 選擇 (智能瞄準, 「開啟」, 「關閉」)), 字體.X, 字體.Y + (2 + 10) × 字體.Z, 選擇 (智能瞄準, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [11] + 選擇 (磁性自瞄開關 = 1, 「禁用」, 選擇 (智能瞄準, 「開啟」, 「關閉」)), 字體.X + 1, 字體.Y + (2 + 10) × 字體.Z, 選擇 (智能瞄準, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [12] + 選擇 (右鍵自瞄狀態 = 真, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 11) × 字體.Z, 選擇 (右鍵自瞄狀態, 石板藍, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [12] + 選擇 (右鍵自瞄狀態 = 真, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 11) × 字體.Z, 選擇 (右鍵自瞄狀態, 石板藍, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [13] + 選擇 (無後坐力, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 12) × 字體.Z, 選擇 (無後坐力, 暗紫色, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [13] + 選擇 (無後坐力, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 12) × 字體.Z, 選擇 (無後坐力, 暗紫色, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [14] + 選擇 (子彈穿牆, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 13) × 字體.Z, 選擇 (子彈穿牆, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [14] + 選擇 (子彈穿牆, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 13) × 字體.Z, 選擇 (子彈穿牆, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [15] + 選擇 (零秒換彈, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 14) × 字體.Z, 選擇 (零秒換彈, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [15] + 選擇 (零秒換彈, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 14) × 字體.Z, 選擇 (零秒換彈, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [16], 字體.X, 字體.Y + (2 + 15) × 字體.Z, 燈光粉紅, 18)
繪制文本_D (pd, 文本變數 [16], 字體.X + 1, 字體.Y + (2 + 15) × 字體.Z, 燈光粉紅, 18)
繪制文本_D (pd, 文本變數 [17] + 選擇 (內存透視, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 16) × 字體.Z, 選擇 (內存透視, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [17] + 選擇 (內存透視, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 16) × 字體.Z, 選擇 (內存透視, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [18] + 選擇 (人物加亮, 「開啟」, 「關閉」), 字體.X, 字體.Y + (2 + 17) × 字體.Z, 選擇 (人物加亮, 全局菜單開, 全局菜單關), 18)
繪制文本_D (pd, 文本變數 [18] + 選擇 (人物加亮, 「開啟」, 「關閉」), 字體.X + 1, 字體.Y + (2 + 17) × 字體.Z, 選擇 (人物加亮, 全局菜單開, 全局菜單關), 18)

繪制文本_D (pd, 文本變數 [41], 字體.X, 字體.Y + (2 + 32) × 字體.Z, 燈光粉紅, 18)
繪制文本_D (pd, 文本變數 [41], 字體.X + 1, 字體.Y + (2 + 32) × 字體.Z, 燈光粉紅, 18)
繪制文本_D (pd, 文本變數 [42], 字體.X, 字體.Y + (2 + 33) × 字體.Z, 橙色, 18)
繪制文本_D (pd, 文本變數 [42], 字體.X + 1, 字體.Y + (2 + 33) × 字體.Z, 橙色, 18)
繪制文本_D (pd, 文本變數 [43], 字體.X, 字體.Y + (2 + 34) × 字體.Z, 芙紅, 18)
繪制文本_D (pd, 文本變數 [43], 字體.X + 1, 字體.Y + (2 + 34) × 字體.Z, 芙紅, 18)
繪制文本_D (pd, 文本變數 [40], 12, 字體.Y + (1 + 選中) × 字體.Z, 藍色, 18)
繪制文本_D (pd, 文本變數 [40], 12 + 1, 字體.Y + (1 + 選中) × 字體.Z, 藍色, 18)
.否則

.如果結束
鍵速 = 鍵速 + 1
.如果真 (鍵速 > 50)
鍵速 = 0
.如果真 (MY_GetAsyncKeyState (#F9鍵) ≠ 0)

.如果真結束
.如果真 (MY_GetAsyncKeyState (#F12鍵) ≠ 0)
顯示菜單 = 取反 (顯示菜單)
.如果真結束
.如果真 (MY_GetAsyncKeyState (#上游標鍵) ≠ 0 且 選中 > 1)
選中 = 選中 - 1
.如果真結束
.如果真 (MY_GetAsyncKeyState (#下游標鍵) ≠ 0 且 選中 < 18)
選中 = 選中 + 1
.如果真結束
.如果真 (MY_GetAsyncKeyState (#F鍵) ≠ 0)
.如果真 (磁性自瞄開關 = 0 或 智能瞄準 = 假)
鎖定敵人 ()
.如果真結束
.如果真 (智能瞄準)
自瞄_解鎖 ()
.如果真結束

.如果真結束

由於太多顯示不出來所以不給多了

如果樓主實在看不懂的話可以加我 ( 314 . 2729 . 700)咨詢哦

『伍』 如何寫計時器

除非你有個服務或者內核驅動的東西在一直運行,因為他的系統時間已經不可靠了,隨時可以修改,你只能在安裝或者說第一次運行的時候啟動你的服務,你的這個服務利用timer開始計時,但是即使這樣人家關機了貌似也要中斷了。重啟後還是得從主板拿去時間。
安裝的時候記錄系統時間比如 firsttime=2011-9-22 14:23:32
開始自己計時 timer設置1分鍾一次吧 統計count 這樣當前時間就是 firsttime+Count
這個驅動程序是一直在運行的 這個是前提,如果人家會停掉你的驅動就沒有辦法了,然後考慮人家關機的問題,在關機之前 比較你的時間 和系統的時間的誤差,記錄下來,開機的時候自動啟動你的服務 用開機時間加上誤差時間 ,這樣哪怕人家修改時間 也不怕 ,因為關機那一瞬間的時候你記錄了系統時間 ,再到開機的那一瞬間的時間 你讀出去主板的時間,只要保證在人家不在你保存後通過程序去修改,那麼人家想修改就只能從硬體入手了。

很多問題 ,不能保證人家不去掉你的驅動,辦法就是去掉了 就讓人家不能用
不保證人家不hook你驅動的函數進行偽裝返回,這個加密,但是人家照樣能破解你加密程序。
不保證人家在你的驅動保存時間過後同樣寫個驅動修改時間
不保證人家不會直接修改主板時間,這個很容易,bois裡面可以修改的,還有就是人家機箱電池也可以拔掉的
這些都能讓你得不到關機過後-再次開機之間的 時間差 如果得不到這個 你也得不到正確的時間。

單機的程序驗證天數一般效果都不是很好的。可能做使用次數更好點!30天就當30次咯,就當人家一天一次,除非人家開了電腦不關,或者一直休眠/睡眠模式關機,那你軟體那麼吃香了,直接多投入些成本搞U盾之類的都劃算了。 這個次數你可以保存在注冊表或者文件資料庫中,進行加密,加密代碼披上vmp,如果人家會反匯編破解你的加密程序,而且會破解vmp的話那就沒話說了,因為針對高級破解人員,即使你聯網的,怎麼防都可能不起作用,除非不提供給人家!

『陸』 易語言寫程序如何防破解

打亂ascii字元串,讓od無法辨別出明文字元串防止被od跟蹤
關鍵數據代碼用ras或des等加密演算法加密,等用到時在解密
crc32或md5取校驗數據值,數據被改動這crc32和md5也會變動
變數驗證或循環冗餘驗證,發現破解不要立即結束程序,讓他跟一段在結束(例如:延時)
檢查程序函數是否被hook(防止利用關鍵函數破解),模塊是否正常(防止程序被劫持)
利用內存crc校驗程序代碼段,發現代碼被修改立刻結束或標記。
使用高強度加密殼來vm關鍵代碼,比如:se、vmp、vp、tmd、enigma等等
易語言防破解方法多不勝數,關鍵還是思路和技術,思路到了沒技術也是寫不出代碼的!

『柒』 怎麼脫E語言程序的VMP殼

  1. 想要脫VMP的殼,首要工作當然是要找一個強OD。至於是什麼版本的OD自己多試驗幾個,網上有很多,一般來說只要載入了你想脫的VMP加殼程序不關閉都可以。

  2. 其次,就是StrongOD.dll這個插件了,現在用的比較多的就是海風月影。下載回來後復制到你的OD程序所在的文件夾裡面的plugin里。StrongOD的設置選項搞不懂就全部打鉤。

  3. 接下來要做的工作就是搞清楚我們要脫殼的程序編程的語言了,可以用PEID或者fastscanner查看,如果在這里看不到也可以在OD載入以後通過裡面的字元串判斷了。例如VB的程序會出現MSVB----/VC的會出現MSVC---等等。這些都是程序運行所需要的windows鏈接文件。

  4. 做完這些預備工作接下來當然是用OD載入文件。文件載入後在反匯編窗口CTRL+G搜索VirtualProtect(注意V跟P要大寫,至於為什麼要搜索這個別問我)。一般來說搜索的結果會出現以下的類似:
    7C801AE3 E8 75FFFFFF call kernel32.VirtualProtectEx
    我們在這里下F2斷點。然後F9運行到我們下的這個斷點。接下來我們就要注意觀察堆棧窗口了。一般來說當我們F9運行到我們上面下的斷點的時候在堆棧窗口會出現以下類似:
    0012F66C 00401000|Address = TradeCen.00401000
    0012F670 000280D1|Size = 280D1 (164049.)
    0012F674 00000004|NewProtect = PAGE_READWRITE
    0012F678 0012FF98pOldProtect = 0012FF98
    我們要注意觀察的就是在接下來我們F9運行的時候,ADDRESS和NEWPROTECT這兩行的變化。按F9-速度別太快,直到NewProtect項變為PAGE_READONLY,這時候程序就釋放完畢了。
    0012F66C 0042A000|Address = TradeCen.0042A000
    0012F670 000069DE|Size = 69DE (27102.)
    0012F674 00000002|NewProtect = PAGE_READONLY
    0012F678 0012FF98pOldProtect = 0012FF98

  5. 現在可以取消剛才我們下的斷點了。接下來就是找OEP了。找OEP的時候我個人的一個經驗就是OEP一般就在接近上面的ADDRESS地址的附近。例如上面的地址是0042A000,我一般就在這個基礎上減到420000搜索程序的特徵段,當然我們也可以直接跳到401000開始搜索。雖然我們搜索的范圍比較大,但是因為我們搜索的是命令序列,所以工作量還不是很大。

  6. CTRL+G--上面的地址,然後CTRL+S 查找命令序列。命令序列的內容就是我們用查到的編程語言的特徵段。我們可以在特徵段裡面選擇兩三句固定不變的命令查找。例如VC++6.0的特徵段是:
    0046C07B U>55 push ebp
    0046C07C 8BEC mov ebp,esp
    0046C07E 6A FF push -1
    0046C080 68 18064C00 push UltraSna.004C0618
    0046C085 68 F8364700 push UltraSna.004736F8
    0046C08A 64:A1 00000000 mov eax,dword ptr fs:[0]
    0046C090 50 push eax
    0046C091 64:8925 00000000mov dword ptr fs:[0],esp
    0046C098 83EC 58 sub esp,58
    0046C09B 53 push ebx
    0046C09C 56 push esi
    0046C09D 57 push edi

  7. 我們可以只搜索前三條命令。找到符合前三條命令的,我們在對照接下來的命令。只要命令相符那這個地址八九不離十就是OEP了。如果在ADDRESS地址附近找不到OEP,那就只好用笨辦法,從401000開始找吧。

  8. 找到OEP地址後,我們在OEP處點滑鼠右鍵《此處為新EIP》。接下來就可以mp啦。通常選擇OD的mp插件脫殼要好點,用loadpe脫殼後要麼程序不運行要麼乾脆沒脫。用OD的mp插件脫殼的時候,脫殼窗口下面的(重建輸入表)項前面的勾一定要去掉。

『捌』 易語言中有VMP過程加密開始和結束是什麼我是用軟體連接網站的管理端,那VPM的明文又是什麼呢求解!

VMP的SDK代碼可以加密軟體運行流程,但軟體里的明文是加密不了的,請問VMP有沒有加密軟體裡面明文的SDK標記或函數呢,或用其它方式能快速加密明文也行,請大俠支招!...

『玖』 VMP加殼程序在C語言編寫的程序里怎麼使用

VMP加殼程序是對執行文件加密的而不是對源碼加密
你要將你的源碼編譯成exe可執行文件,然後再用VMP加殼的

『拾』 Android最新的VMP加固技術一般是怎麼實現的

Android APP二次打包」則是盜版正規Android APP,破解後植入惡意代碼重新打包。不管從性能、用戶體驗、外觀它都跟正規APP一模一樣但是背後它確悄悄運行著可怕的程序,它會在不知不覺中浪費手機電量、流量,惡意扣費、偷窺隱私等等行為。http://www.ijiami.cn/newsInfo?id=341
愛加密的加密保護是全方位的,目前提供的服務有:DEX加殼保護、DEX指令動態載入保護、高級混淆保護,SO庫保護,主配置文件保護,資源文件保護,二次打包防護。愛加密的基礎保護就包含對資源文件的加固保護,通過混淆代碼的方式,可以阻止打包黨讀取資源文件的信息。此外,一個APK的唯一正版識別是通過包名+簽名共同的方式來判斷。

閱讀全文

與vmp加密代碼相關的資料

熱點內容
我的世界蘋果版的2b2t伺服器地址咋查 瀏覽:87
xlsx轉換pdf 瀏覽:94
3dmax擠出命令英語 瀏覽:903
靶心率的定義和演算法 瀏覽:513
3d模術師app哪裡下載 瀏覽:474
php中文api文檔 瀏覽:458
安卓設計怎麼加入輸入框 瀏覽:185
主根伺服器什麼時候開始 瀏覽:738
奇門遁甲完整版pdf 瀏覽:901
app軟體怎麼用的 瀏覽:802
電子書pdf購買 瀏覽:193
浪潮伺服器如何做系統 瀏覽:111
冒險島img格式加密 瀏覽:596
我的世界手游如何復制命令 瀏覽:659
天刀自動彈琴腳本源碼 瀏覽:970
打開其它app微信怎麼收不到 瀏覽:447
安卓游戲耳機怎麼戴 瀏覽:18
不越獄怎麼去除app廣告 瀏覽:178
ipadminipdf閱讀 瀏覽:507
文件夾無限制壓縮會不會降低內存 瀏覽:413