能力值:
( LV2,RANK:10 )
|
-
-
26 楼
BOOLEAN InjectDll(HANDLE ProcessHandle, WCHAR *DllPath)
{
BOOLEAN IsSuccess;
DbgPrint("InjectDll\n");
if (IsNotWow64Process(ProcessHandle))
{
IsSuccess = InjectProcess(ProcessHandle, DllPath);
DbgPrint("InjectDll001\n");
}
else
{
IsSuccess = InjectWow64Process(ProcessHandle, DllPath);
DbgPrint("InjectDll002\n");
}
return IsSuccess;
}
兄弟逻辑是不是反了
x64 系统 注入到 x86 进程 落在 DbgPrint("InjectDll002\n");
这里
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
ShellCode[0] = 0xB8; // MOV EAX, XXXXXXXX
*(ULONG*)&ShellCode[1] = (ULONG)Buffer;
ShellCode[5] = 0xB9; // MOV ECX, XXXXXXXX
*(ULONG*)&ShellCode[6] = (ULONG)(Buffer + 565);
*(USHORT*)&ShellCode[10] = 0xD1FF; // CALL ECX
*(ULONG*)&ShellCode[12] = 0x4C69636D; // 特征码
*(ULONG*)&ShellCode[16] = 0; // 上一处ShellCode位置
*(ULONG*)&ShellCode[20] = (ULONG)g_pfnNtTestAlert32;
*(USHORT*)&ShellCode[29] = 2 * wcslen(DllPath); // UNICODE_STRING ++0 Length
*(USHORT*)&ShellCode[31] = *(USHORT*)&ShellCode[29] + 2;// UNICODE_STRING ++2 MaximumLength
*(ULONG*)&ShellCode[33] = (ULONG)(Buffer + 37);
wcscpy((WCHAR*)&ShellCode[37], DllPath);
*(ULONG*)&ShellCode[557] = (ULONG)g_pfnNtProtectVirtualMemory32;
*(ULONG*)&ShellCode[561] = (ULONG)g_pfnLdrLoadDll32;
if (*(ULONG*)&ShellCode[20])
{
DbgPrint("InjectDll0011\n");
无法到达 11 这里
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
再次定位到 pfnNtTestAlert32 00000000 获取为0
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
该驱动代码在Win7 x64环境分别启动32位记事本和64位记事本,功能测试通过的~
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
DLL 路径长度有要求不
可以修改不
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
win7 64 家庭版,再次含泪测试,那个API就是为0
兄弟发个编译好的,在那函数记得打印地址,看看我这行不行
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
知道为什么了,我系统只有 zwtest 那函数
不存在 nt开头的,开了OD看了下,非常神奇
用 CFF 看又有
神奇
|
能力值:
( LV2,RANK:10 )
|
-
-
33 楼
NtTestAlert和ZwTestAlert就是一个函数,两个名字而已!
|
能力值:
( LV2,RANK:10 )
|
-
-
34 楼
上BIN和DLL,把路径告诉我,我迫不及待要测试了
还是0......
|
能力值:
( LV2,RANK:10 )
|
-
-
35 楼
将里边的dll放到C:\根目录,打开记事本程序看看dll加载了没有。
|
能力值:
( LV4,RANK:50 )
|
-
-
36 楼
win7 64位,加载没反应。。
|
能力值:
( LV2,RANK:10 )
|
-
-
37 楼
上传出错,请重新下载
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
我下载的,是修正过没,一点反应也没
稳定性极好
因为没注入
|
能力值:
( LV2,RANK:10 )
|
-
-
39 楼
测试2次了,真没反应啊
notepad.exe
我特意修改了一个程序为这个,也是静悄悄,好像,莫斯科郊外的晚上
|
能力值:
( LV2,RANK:10 )
|
-
-
40 楼
OD看,确实注入了,我立马编译那代码替换看看
|
能力值:
( LV2,RANK:10 )
|
-
-
41 楼
确实注入了
|
能力值:
( LV2,RANK:10 )
|
-
-
42 楼
但是我编译的,就不行,怪事
|
能力值:
( LV4,RANK:50 )
|
-
-
43 楼
用修正后的。已经加载了DLL
[hdlphook] DriverEntry!
[hdlphook] ntdll.dll ImageBase is 0x77B80000
[hdlphook] ZwReadVirtualMemory = 0xFFFFF80003EC1900
[hdlphook] ZwWriteVirtualMemory = 0xFFFFF80003EC1860
[hdlphook] ZwQueryVirtualMemory = 0xFFFFF80003EC1580
[hdlphook] ZwProtectVirtualMemory = 0xFFFFF80003EC1B20
|
能力值:
( LV2,RANK:10 )
|
-
-
44 楼
恩 加载了,兄弟发那份源码出来不,修正过的
|
能力值:
( LV2,RANK:10 )
|
-
-
45 楼
兄弟呢 求源码学习
|
能力值:
( LV2,RANK:10 )
|
-
-
46 楼
好像不能注入到服务进程比如svhost之类的
|
能力值:
( LV2,RANK:10 )
|
-
-
47 楼
Win7 X64下能正常注入. 但是在Win10 X64失败了. 原因未明. 我是新手.
|
能力值:
( LV12,RANK:1010 )
|
-
-
48 楼
1. ZwTestAlert、ZwContinue都可以。
2. Notify里面不能ZwProtectMemory,ZwWriteMemory是因为会发生死锁,需开线程或WorkItem或KernelAPC做事
这种方式一般都是X86/X64全平台通用的,好些公司的产品都用了好久了,好多年前玩过,确实挺稳定。
|
能力值:
( LV2,RANK:10 )
|
-
-
49 楼
大神说说帖主BIN可以,但是代码编译就不行,是什么原因
贴主不知道去哪里了
|
能力值:
( LV3,RANK:20 )
|
-
-
50 楼
你检查一下代码就知道了,是代码有BUG。
在InitializeR3FunctionAddress函数里只对g_pfnNtTestAlert赋了值,没有对g_pfnNtTestAlert32赋值,所以它是零,赋一下值就可以了。
|
|
|