首页
社区
课程
招聘
[旧帖] 求助 远程注入DLL 在LoadLibrary函数中调用了FreeLibrary 0.00雪花
发表于: 2012-3-10 03:02 7278

[旧帖] 求助 远程注入DLL 在LoadLibrary函数中调用了FreeLibrary 0.00雪花

2012-3-10 03:02
7278
大家好,最近调试某GAME,想注入个DLL到目标程序,CreateRemoteThread后发现LoadLibrary函数中会调用FreeLibrary,释放掉此次加载的DLL.
   首先我在目标程序LoadLibraryA处下断,然后回溯到ExitThread之前
7C80B6DC    6A 10           push    10
7C80B6DE    68 20B7807C     push    7C80B720
7C80B6E3    E8 EE6DFFFF     call    7C8024D6
7C80B6E8    8365 FC 00      and     dword ptr [ebp-4], 0
7C80B6EC    64:A1 18000000  mov     eax, dword ptr fs:[18]
7C80B6F2    8945 E0         mov     dword ptr [ebp-20], eax
7C80B6F5    8178 10 001E000>cmp     dword ptr [eax+10], 1E00
7C80B6FC    75 0F           jnz     short 7C80B70D
7C80B6FE    803D 0850887C 0>cmp     byte ptr [7C885008], 0
7C80B705    75 06           jnz     short 7C80B70D
7C80B707    FF15 F412807C   call    dword ptr [<&ntdll.CsrNewThread>>; ntdll.CsrNewThread
7C80B70D    FF75 0C         push    dword ptr [ebp+C]
7C80B710    FF55 08         call    dword ptr [ebp+8]                ; kernel32.LoadLibraryA
7C80B713    50              push    eax
7C80B714    E8 CF090000     call    ExitThread


跟进LoadLibraryA后
7C801D7B >  8BFF            mov     edi, edi
......
7C801DA3    E8 ABFFFFFF     call    LoadLibraryExA//执行此处后DLL加载成功
......
7C801DAB    C2 0400         retn    4


retn 4 后来到
73DC8839    8B35 0863DD73   mov     esi, dword ptr [<&KERNEL32.SetEr>; kernel32.SetErrorMode
......
73DC88AD    68 646ADE73     push    73DE6A64                         ; ASCII "MSVCRT.DLL"
73DC88B2    FF15 8C62DD73   call    dword ptr [<&KERNEL32.GetModuleH>; kernel32.GetModuleHandleA
73DC88B8    50              push    eax
73DC88B9    FF15 9462DD73   call    dword ptr [<&KERNEL32.FreeLibrar>; kernel32.FreeLibrary
73DC88BF    E8 420A0000     call    #AfxTlsRelease_1566
73DC88C4    33C0            xor     eax, eax
73DC88C6    40              inc     eax
73DC88C7    5E              pop     esi
73DC88C8    C2 0C00         retn    0C


   在73DC88B9    FF15 9462DD73   call    dword ptr [<&KERNEL32.FreeLibrar>; kernel32.FreeLibrary这句之前还会调用FreeLibrary卸载掉MFC那两个DLL(我的程序是VC6写的),中间代码繁多,苦与本人菜B就没有跟下去,然后这句过后就会把主DLL卸载掉

   我测试注入其他程序都很正常,而且也没有调用FreeLibrary,用XT也没有检测出LoadLibrary被HOOK,也没有内核函数的HOOK,是否LoadLibrary会判断程序的某些设置而调用FreeLibrary,求各路大神指点啊

刚才又测试了下,使用LoadLibraryExA也会执行到73DC8839    8B35 0863DD73   mov     esi, dword ptr [<&KERNEL32.SetEr>; kernel32.SetErrorMode

继续测试,往目标内存写入了call LoadLibraryExA后,加上一句call getlasterror,得到〖1114〗-动态链接库 (DLL) 初始化例程失败

发帖的时候没注意自己有200多Kx啊,悬赏涨到100,请高手支招啊!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//