slzslz 发表于 2025-6-15 18:05:46

msimg32.dll x64汇编劫持代码

本帖最后由 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
mov qword, 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 , data
   
    lea rax, oldProtect
    invoke VirtualProtect, lpAddr, len, dword, rax
};

; 淇瀵煎嚭鐨?API 鍦板潃
proc FixImport
local hModule:QWORD
local lpBuffer:QWORD

frame
    invoke LocalAlloc, LPTR, MAX_PATH + 1
    mov , rax
    invoke GetSystemDirectory, rax, MAX_PATH
    invoke strncat, , szTargetLibrary, MAX_PATH
    invoke LoadLibrary,
    mov , rax
    invoke LocalFree,

    apifix , szvSetDdrawflag, _vSetDdrawflag
    apifix , szAlphaBlend, _AlphaBlend
    apifix , szDllInitialize, _DllInitialize
    apifix , szGradientFill,_GradientFill
    apifix , szTransparentBlt, _TransparentBlt

endf;
      
ret
endp;

proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
local hModule:QWORD
local oldProtect:DWORD
local lpBuffer:QWORD
cmp edx, 1
jnz skipPatch

; 妫

dryzh 发表于 2025-6-17 12:18:02

就算个 dll 名字?导出表都是 version 的?有点水吧?差评

linxiansen 发表于 2025-6-15 18:39:22

PYG有你更精彩!

ningzhonghui 发表于 2025-6-15 21:03:23

谢谢,收藏私一份,不错的

77127547 发表于 2025-6-16 07:12:44

PYG有你更精彩!

super_king 发表于 2025-6-16 08:16:48

PYG有你更精彩!

xie83544109 发表于 2025-6-16 08:57:01

学习了,多谢楼主分享

ynb168c 发表于 2025-6-16 09:00:57

多谢楼主分享

luzhmu 发表于 2025-6-16 10:15:24

汇编级,学习了,感谢{:handshake:}

xdnice 发表于 2025-6-16 14:02:47

谢谢楼主的分享。

qqycra 发表于 2025-6-16 19:39:23

感谢分享,看看源码,不写汇编
页: [1] 2
查看完整版本: msimg32.dll x64汇编劫持代码