忘记哪里看到这个源码了,在win10注入成功没有问题,在Win11注入成功后软件会崩溃,被成功注入的程序没有问题。dll也正常被注入进去,大神帮忙看看哪里的问题
path2 = 取特定目录 (8 ) + “1.dll”tmp2 = “GTA5.exe” 如果真 (到整数 (tmp2 ) = 0 ) tmp2 = 到文本 (进程_名取ID (tmp2 )) 标准输出 (, 选择 (线程_DLL注入64 (到整数 (tmp2 ), path2 ), “注入成功!”, “失败。。”)) |
线程_DLL注入64 | 逻辑型 | | |
目标进程ID | 整数型 | | | | 要注入的DLL文件名 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_Payload | 字节集 | | | 局_进程ID | 整数型 | | | 局_内存值 | 长整数型 | | | 局_Payload地址 | 长整数型 | | | 局_NtCreateThreadEx | 长整数型 | | | 局_线程ID | 长整数型 | | | 局_NT64 | 长整数型 | | | 局_Data | 字节集 | | |
局_进程ID = OpenProcess (2035711, 0, 目标进程ID )局_NT64 = GetNtdll64 () 如果真 (文件是否存在 (要注入的DLL文件名 ) = 假 或 局_进程ID = 0 或 局_NT64 = 0 或 fn_ProcessIsX64 (局_进程ID ) = 假) 返回 (假) 调试输出 (GetProcAddress64 (局_NT64, “NtCreateThreadEx”)) 调试输出 (GetProcAddress64 (局_NT64, “LdrLoadDll”)) 调试输出 (局_进程ID )局_Payload = { 72, 137, 76, 36, 8, 85, 87, 72, 129, 236, 8, 1, 0, 0, 72, 141, 108, 36, 32, 72, 139, 252, 185, 66, 0, 0, 0, 184, 204, 204, 204, 204, 243, 171, 72, 139, 140, 36, 40, 1, 0, 0, 72, 139, 133, 0, 1, 0, 0, 72, 137, 69, 8, 72, 139, 69, 8, 72, 131, 192, 32, 72, 139, 77, 8, 72, 131, 193, 16, 72, 139, 208, 72, 139, 69, 8, 255, 16, 72, 139, 69, 8, 72, 5, 56, 2, 0, 0, 72, 139, 77, 8, 72, 131, 193, 16, 76, 139, 200, 76, 139, 193, 72, 139, 69, 8, 139, 144, 48, 2, 0, 0, 72, 139, 69, 8, 72, 139, 136, 40, 2, 0, 0, 72, 139, 69, 8, 255, 80, 8, 72, 139, 69, 8, 72, 139, 128, 56, 2, 0, 0, 72, 141, 165, 232, 0, 0, 0, 95, 93, 195 }局_Payload地址 = VirtualAllocEx64 (局_进程ID, 0, 取字节集长度 (局_Payload ), 位或 ( #MEM_COMMIT, #MEM_RESERVE ), #PAGE_EXECUTE_READWRITE ) 如果真 (局_Payload地址 = 0 或 WriteProcessMemory64 (局_进程ID, 局_Payload地址, 取变量数据地址 (局_Payload ), 取字节集长度 (局_Payload ), 0 ) = 假) 调试输出 (“写Payload失败”) 返回 (假) 局_Data = 字节集_倒序 (字节集_取整补全 (字节集_十六进制到字节集 (进制_十到十六 (GetProcAddress64 (局_NT64, “RtlInitUnicodeString”), 真)), 8, , 真)) 局_Data = 局_Data + 字节集_倒序 (字节集_取整补全 (字节集_十六进制到字节集 (进制_十到十六 (GetProcAddress64 (局_NT64, “LdrLoadDll”), 真)), 8, , 真)) 局_Data = 局_Data + { 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204 } + 字节集_取整补全 (编码_Ansi到Unicode (要注入的DLL文件名 ), 520 ) + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 204, 204, 204, 255, 255, 255, 255, 255, 255, 255, 255 }局_内存值 = VirtualAllocEx64 (局_进程ID, 0, 取字节集长度 (局_Data ), 位或 ( #MEM_COMMIT, #MEM_RESERVE ), #PAGE_READWRITE ) 如果真 (局_内存值 = 0 或 WriteProcessMemory64 (局_进程ID, 局_内存值, 取变量数据地址 (局_Data ), 取字节集长度 (局_Data ), 0 ) = 假) 调试输出 (“写数据失败”) 返回 (假) 局_NtCreateThreadEx = GetProcAddress64 (局_NT64, “NtCreateThreadEx”)X64Call_fix (局_NtCreateThreadEx, 11, 取变量地址 (局_线程ID ), 2097151, 0, 局_进程ID, 局_Payload地址, 局_内存值, 0, 0, 0, 0, 0 )调试输出 (局_NtCreateThreadEx, 局_进程ID, 局_Payload地址, 局_内存值 ) 如果真 (局_线程ID = 0 ) 调试输出 (“线程创建失败”) 返回 (假) WaitForSingleObject (局_线程ID, 4294967295 )VirtualFreeEx (局_进程ID, 局_内存值, 0, 32768 )CloseHandle (局_线程ID )CloseHandle (局_进程ID )返回 (真)|
X64Call_fix | 长整数型 | | |
func | 长整数型 | | | | argC | 整数型 | | | | 参数1 | 长整数型 | | | | 参数2 | 长整数型 | | | | 参数3 | 长整数型 | | | | 参数4 | 长整数型 | | | | 参数5 | 长整数型 | | | | 参数6 | 长整数型 | | | | 参数7 | 长整数型 | | | | 参数8 | 长整数型 | | | | 参数9 | 长整数型 | | | | 参数10 | 长整数型 | | | | 参数11 | 长整数型 | | | | 置入代码 ({ 106, 51, 232, 0, 0, 0, 0, 131, 4, 36, 5, 203, 72, 99, 237, 102, 129, 228, 240, 255, 139, 69, 16, 133, 192, 116, 63, 72, 139, 77, 20, 131, 232, 1, 133, 192, 116, 52, 72, 139, 85, 28, 131, 232, 1, 133, 192, 116, 41, 76, 139, 69, 36, 131, 232, 1, 133, 192, 116, 30, 76, 139, 77, 44, 131, 232, 1, 133, 192, 116, 19, 168, 1, 117, 3, 131, 236, 8, 72, 255, 116, 197, 44, 131, 232, 1, 133, 192, 117, 244, 131, 236, 32, 255, 85, 8, 72, 137, 194, 72, 193, 234, 32, 232, 0, 0, 0, 0, 199, 68, 36, 4, 35, 0, 0, 0, 131, 4, 36, 13, 203, 201 }) 置入代码 ({ 194, 100, 0 }) 返回 (0 ) 变量名 | 类 型 | 静态 | 数组 | 备 注 | len | 整数型 | | | temp | 字节集 | | | i | 整数型 | | |
len = 取字节集长度 (bin ) 计次循环首 (len, i ) temp = temp + 取字节集中间 (bin, len - i + 1, 1 ) 计次循环尾 ()返回 (temp )|
字节集_取整补全 | 字节集 | | |
data | 字节集 | | | | len | 整数型 | | | | 填充 | 字节型 | | | | 前补位 | 逻辑型 | | | |
如果真 (是否为空 (填充 ))  填充 = 0  如果真 (len ≤ 取字节集长度 (data )) 返回 (取字节集左边 (data, len ))  如果 (前补位 ) data = 取重复字节集 (len - 取字节集长度 (data ), 到字节集 (填充 )) + data  data = data + 取重复字节集 (len - 取字节集长度 (data ), 到字节集 (填充 )) 返回 (data)
|