TA的每日心情 | 奋斗 2024-5-22 16:18 |
---|
签到天数: 1129 天 [LV.10]以坛为家III
|
本帖最后由 slzslz 于 2025-6-21 12:58 编辑
format PE64 GUI DLL;
entry DllEntryPoint;
use64;
include 'win64a.inc';
section '.text' code readable executable;
; 淇瀵煎嚭琛ㄩ」
; 鍙傛暟: 妯″潡鍙ユ焺, 鍑芥暟鍚? 鍐欏嚭鍋忕Щ(qword 澶у皬)
macro apifix hMod,sz,fn
{
mov rdx, sz ; proc name
mov rcx, hMod ; hLib
call [GetProcAddress]
mov qword[fn], rax
};
; 鍒╃敤 VirtualProtect 淇敼鐩爣鍖哄煙涓哄彲璇诲啓鎵ц
; 淇敼瀹屽悗鍐嶆仮澶嶅叾淇濇姢銆?
; 鍙傛暟: 淇敼鍦板潃(鍦板潃鍋忕Щ), 淇濇姢闀垮害, 鍌ㄥ瓨鏃т繚鎶ょ殑鍦板潃,
; 鏁版嵁瀹藉害(byte/word/dword/qword), 鍐欏嚭鏁版嵁
macro fixCode lpAddr,len,oldProtect,dataWidth,data
{
lea rax, oldProtect
invoke VirtualProtect, lpAddr, len, PAGE_EXECUTE_READWRITE, rax
mov rax, lpAddr
mov dataWidth [rax], data
lea rax, oldProtect
invoke VirtualProtect, lpAddr, len, dword[rax], rax
};
; 淇瀵煎嚭鐨?API 鍦板潃
proc FixImport
local hModule:QWORD
local lpBuffer:QWORD
frame
invoke LocalAlloc, LPTR, MAX_PATH + 1
mov [lpBuffer], rax
invoke GetSystemDirectory, rax, MAX_PATH
invoke strncat, [lpBuffer], szTargetLibrary, MAX_PATH
invoke LoadLibrary, [lpBuffer]
mov [hModule], rax
invoke LocalFree,[lpBuffer]
apifix [hModule], szvSetDdrawflag, _vSetDdrawflag
apifix [hModule], szAlphaBlend, _AlphaBlend
apifix [hModule], szDllInitialize, _DllInitialize
apifix [hModule], szGradientFill,_GradientFill
apifix [hModule], szTransparentBlt, _TransparentBlt
endf;
ret
endp;
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
local hModule:QWORD
local oldProtect:DWORD
local lpBuffer:QWORD
cmp edx, 1
jnz skipPatch
; 妫 |
评分
-
查看全部评分
|