#include <windows.h>
DWORD WINAPI ThreadProc(
LPVOID lpParameter // thread data
)
{
MessageBox(NULL,"PK","",0);
return 0;
}
BOOL WINAPI DllMain(HINSTANCE p1, DWORD p2, LPVOID p3)
{
switch (p2)
{
case DLL_PROCESS_ATTACH:
HANDLE hjkhk;
DWORD charID;
hjkhk=CreateThread(NULL,0, ThreadProc,NULL,0,&charID);//执行这个函数宿主程序就崩溃 线程子程序什么代码也没有也会崩溃
//把CreateThread注释了 加个MessageBox(NULL,"PK","",0);就不会出错
//
// CloseHandle(hjkhk);
default:
;
}
return 0;[QUOTE][/QUOTE]
}
////////////////////////////////////////////////////////////////////////////////////////
创建远程线程 加载DLL
if (strcmp(p.szExeFile,"MessgeBox.exe")==0)
{
//printf("Id====%d==\n",p.th32ProcessID);
HANDLE h=OpenProcess(PROCESS_ALL_ACCESS,FALSE,p.th32ProcessID);
DWORD fp=(DWORD)VirtualAllocEx(h,NULL,len,MEM_COMMIT, PAGE_READWRITE);
//printf("add====%d==\n",fp);
WriteProcessMemory(h,(LPVOID)fp,(PVOID)nm,len,NULL);
CreateRemoteThread(h,NULL,0,(LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle("kernel32"),"LoadLibraryA"),(LPVOID)fp,0,NULL);
}
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法