1. 程式人生 > >惡意程式碼分析實戰 Lab 3-1 習題筆記

惡意程式碼分析實戰 Lab 3-1 習題筆記

Lab 3-1

問題

1.找出這個惡意程式碼的匯入函式於字串列表。

解答: (動態分析建議用winxp pro 32bit,下面你就知道為什麼這麼建議了)我們用Dependency Walker會發現這個程式只有很少的匯入函式,第一是懷疑是不是加殼了

無

然後我們PEiD來看,的確是加殼了

無

然後就開始嘗試脫殼了

無

萬能脫殼這次不是萬能的了

目前我們知道的唯一個匯入函式就是ExitProcess

然後檢視一下字串
無

前面大部分的字串都是亂碼,但是後面的字串中可以看出這裡有個網址,還有一個vmx32to64.exe,還有一些登錄檔的位置,然後我們開始開啟另一個虛擬機器準備進行動態分析

我們準備好必要的軟體,然後做好備份快照

第一個就是ApateDNS這個軟體

記得把DNS修改為127.0.0.1,然後點執行這個軟體實際執行是這樣子的

無

我這是打開了一個瀏覽器,然後這是瀏覽器的所有DNS請求,當我在寫個博文的時候,這個表還一直往下重新整理著

然後就是安裝INetSim,這個只能安裝在Linux上,所以我打算用CentOS7來安裝。

(2017-8-29)

(2018-8-31)

經過一天的努力,終於在CentOS7上安裝成功了,安裝博文在這裡 —> 安裝INetSIm在CentOS7上

後面附上了部署好INetSimCentOS映象下載連結

那我們繼續分析這個惡意程式碼

2.這個惡意程式碼在主機上的感染跡象特徵是什麼?

解答: 那就開始動態分析了

我們先配置用於執行病毒程式的虛擬機器的網路(注意,最好不是靜態分析的那臺主機,因為這臺虛擬機器只需要比較小的硬碟分配,然後少量必要的分析軟體,這樣每次備份可以只佔很小的記憶體,如果是靜態分析那臺機器,每次備份都是好幾10G

網路

ip地址可以隨便設為內網中一個沒有人用的IP,然後子網掩碼按實際情況填寫,最後就是閘道器這裡,設定為我們安裝好INetSim那臺機器的IP,我這裡是192.168.0.107,然後DNS設定為本機127.0.0.1,因為我們在本機裝了ApateDNS,所以設為本機可以看到惡意程式碼請求的DNS

然後訪問INetSim的IP地址,看看埠開了沒有,服務起了沒有

無

如果沒起,去/home/inetsim/inetsim-xxx/下起一下,然後/root/下開埠指令碼執行一下

然後這時候我們最後一次做一次windows的快照,準備執行惡意程式碼分析

必備

確保你的虛擬機器上安裝了這麼幾個軟體

fuck

然後勞資準備了這麼多,竟然windows7執行不了。。。看來只能換winxp了,以後動態分析全都遷移到winxp上

Windows 7 pro x64執行病毒失敗

下面我準備了一個Windows XP 32bit版的虛擬機器,再試試

Windows XP 32bit 不行,ApateDNS執行不起來,換64bit版本

然後我又從官網下了一個,還是不行,執行不了

不

因為官網說了支援XP,不管是32還是64

官網

但是我的就是不行。。。不知道什麼原因,映象是從MSDN我告訴你下的

不管其他了,我們再試試執行病毒看看

32

Windows XP x86執行失敗

然後我們再試試Windows XP pro 64,這也是在MSDN我告訴你下的

winxp pro 64

用的是網上找到的一個啟用碼啟用的

然後我們開看看能不能執行病毒檔案 Lab 03-01.exe

額

依舊還是不能執行這個病毒

Windows XP PRO x64執行病毒失敗

我們再試試其他的XP版本,最後會發現

Windows XP PRO x86執行病毒成功

當我用這個版本的XP去執行病毒的時候,病毒程式沒有報錯和各種詭異,安靜得執行了,ok,我們分析繼續

然後恢復執行前快照發現,網絡卡驅動有問題,上不了網。。。我先下個驅動網絡卡版再來試試。。。

然後現在的問題是ApateDNS沒法在winxp上執行,這就很麻煩了,這本書感覺有點扯

現在是打算用Kali的一個工具來進行DNS的fake,但是這個工具執行在Windows又是各種依賴問題,我打算執行DNSChefCentOS上,雖然INetSim也可以進行fake,但是沒法像ApateDNS那樣記錄DNS查詢

從這個網站上下載DNSCHEF

然後缺了幾個Python的庫,安裝一樣,確保能執行就ok了

然後我們執行

./dnschef.py --fakeip=192.168.0.107 --logfile=log.txt --interface=192.168.0.108

108是我部署了DNSChef的虛擬機器,107是INetSim的虛擬機器,remember?

我將所有的DNS查詢都指向了192.168.0.107,然後把log存在了log.txt中

記得開埠,我是CentOS 7,所以如果你也是一樣的話,執行

firewall-cmd --permanent --zone=public --add-service=dns

然後過載防火牆使其永久生效

firewall-cmd --reload

本地測試可以這樣測試是否已經起了DNSChef

將Windows的DNS伺服器地址指向108

然後執行

nslookup u.com

隨便打的域名

然後顯示這樣,就算成功了

DNS

如果顯示這樣的話,說明不成功,這個部署DNSChef的我就不單獨拿出來講了

FDNS

然後現在我們總算可以開始分析了

R

在執行之前,我們先做好系統準備,比如建立系統登錄檔的快照,把wireshark啟動,把Process Explore開啟之類的,然後準備好之後做系統快照

大概就是這樣子

然後就可以看到這個程式執行了DNS查詢

DNS請求

去除那些干擾的地址,我們明顯可以看到這麼一個地址

無

放大一點可以看到這是

放大

www.practicalmalwareanalysis.com

然後這是DNSChef能發現的所有了

然後我們看登錄檔

快照

可以看出程式一共修改了17處的登錄檔,其中,增加了2個鍵,3個值,改變了12個指

新

新建的鍵是上面這2個,新建了兩個列印的鍵

新

新新增的值是上面這3個,一個是開機啟動的值,為C:\\WINDOWS\\system32\\vmx32to64.exe

然後的兩個是印表機的目錄

然後最後就是改變的值的地方,改變一個金鑰的種子(下面)

已改變值 (12) 快照 A 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG] 
"Seed"=hex:c5,31,0a,80,07,17,9a,3b,fe,19,43,51,06,dd,a3,33,fd,9c,a5,bf,f6,66,\
  b5,6b,15,b1,80,b2,26,54,b0,9e,a4,6b,88,71,13,f6,bc,8c,aa,56,41,25,f1,50,cc,\
  d1,de,22,f3,7a,da,02,9c,3f,1d,49,b2,34,ee,2e,fb,a3,29,a0,8e,39,02,dc,42,db,\
  d5,8e,ed,3a,fc,8f,5d,99 
"Seed"=hex:a3,24,85,6a,69,87,5f,8b,33,ac,2a,eb,0f,d1,dc,b5,45,e4,66,71,8b,a4,\
  5a,c6,64,ab,e4,31,cd,17,ce,25,1a,72,b9,3c,c0,db,38,46,73,5b,50,f6,3b,01,14,\
  07,a8,50,4c,c3,f5,a8,ef,1a,56,00,a0,2c,3b,df,32,f9,32,9d,e1,6a,14,9e,ed,07,\
  cb,8d,e2,d2,15,c7,e0,0a 

然後下面這個Prefetcher是Windows的預取程式,用於程式的快速載入
下面應該是病毒把自己寫進了快速啟動了

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher] 
"TracesProcessed"=dword:00000000 
"TracesProcessed"=dword:00000008 
"TracesSuccessful"=dword:00000000 
"TracesSuccessful"=dword:00000005 
"LastTraceFailure"=dword:00000000 
"LastTraceFailure"=dword:00000004 

下面這個是改一個列印的API的LogonTime(登入時間)

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Providers] 
"LogonTime"=hex:54,c1,de,86,f9,22,d3,01 
"LogonTime"=hex:a6,f1,db,8c,07,23,d3,01 

原始的值如下

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\ESENT] 
"EventMessageFile"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6e,00,64,00,6f,00,77,\
00,73,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,45,00,\
  53,00,45,00,4e,00,54,00,2e,00,64,00,6c,00,6c,00,00,00

把對應的十六進位制翻譯成ASCII如下,NUL表示空字元

"c", ":", "\", "w", "i", "n", "d", "o", "w", \
"s", "\", "s", "y", "s", "t", "e", "m", "3", "2", "\", "E", \
"S", "E", "N", "T", ".", "d", "l", "l", "NUL"

連起來就是

c:\windows\system32\ESENT.dll

改變後的值如下

"EventMessageFile"=hex(2):43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,57,\
  00,53,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,45,00,\
  53,00,45,00,4e,00,54,00,2e,00,64,00,6c,00,6c,00,00,00 

翻譯過來就是

"C", ":", "\", "W“, "I", "N", "D", "O", "W", \
"S", "\", "S", "y", "s", "t", "e", "m", "3", "2", "\", "E", \
"S", "E", "N", "T", ".", "d", "l", "l"

也就是

C:\WINDOWS\System32\ESENT.dll

總的來說就將

c:\windows\system32\ESENT.dll

變成了

C:\WINDOWS\System32\ESENT.dll

這兩個寫法引用的路徑是一樣的,應該是惡意程式碼的作者習慣了下面這種寫法

原始

"CategoryMessageFile"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6e,00,64,00,6f,00,\
  77,00,73,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,45,\
  00,53,00,45,00,4e,00,54,00,2e,00,64,00,6c,00,6c,00,00,00 

翻譯一下:

"c", ":", "\", "w", "i", "n", "d", "o", \
"w", "s", "\", "s", "y", "t", "e", "m", "3", "2", "\", "E", \
"S", "E", "N", "T", ".", "d", "l", "l"

和上面第一個是一樣的

c:\windows\system32\ESENT.dll

改變後

"CategoryMessageFile"=hex(2):43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,\
  57,00,53,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,45,\
  00,53,00,45,00,4e,00,54,00,2e,00,64,00,6c,00,6c,00,00,00 

這個對照了一下也是和上面一樣的

C:\WINDOWS\System32\ESENT.dll

然後就是把小寫的c變成了大寫的C,字母大小寫變了一下,實際引用的位置並沒有變

安裝網上的說法,ESENT是一種嵌入式資料庫引擎,最新版的Windows版本已經內建了esent.dll,不知道這個程式要用資料庫幹啥

下面這個上面分析了

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Providers] 
"LogonTime"=hex:54,c1,de,86,f9,22,d3,01 
"LogonTime"=hex:a6,f1,db,8c,07,23,d3,01 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\ESENT] 
"EventMessageFile"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6e,00,64,00,6f,00,77,\
  00,73,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,45,00,\
  53,00,45,00,4e,00,54,00,2e,00,64,00,6c,00,6c,00,00,00 

翻譯一下就是上面那個

c:\windows\system32\ESENT.dll
"EventMessageFile"=hex(2):43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,57,\
  00,53,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,45,00,\
  53,00,45,00,4e,00,54,00,2e,00,64,00,6c,00,6c,00,00,00 

這個也是

C:\WINDOWS\System32\ESENT.dll

下面的一樣

"CategoryMessageFile"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6e,00,64,00,6f,00,\
  77,00,73,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,45,\
  00,53,00,45,00,4e,00,54,00,2e,00,64,00,6c,00,6c,00,00,00 
"CategoryMessageFile"=hex(2):43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,\
  57,00,53,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,45,\
  00,53,00,45,00,4e,00,54,00,2e,00,64,00,6c,00,6c,00,00,00 

下面是另一個改變了的登錄檔

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections] 
"SavedLegacySettings"=hex:3c,00,00,00,1c,00,00,00,01,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,04,00,00,00,00,00,00,00,00,7d,f5,a4,f5,22,d3,01,01,00,\
  00,00,c0,a8,00,05,00,00,00,00,00,00,00,00 

翻譯一下就是

NUL是空字元, FS是檔案分割符, SOH是標題開始, EOT是傳輸結束

"<", "NUL", "FS", "NUL", "SOH", "NUL", "NUL", "NUL", \
"NUL", "NUL", "NUL", "NUL", "EOT", ...

後面就是一些ASCII的擴充套件編碼了,這個應該不是一個可讀的字串,應該是二進位制配置

"SavedLegacySettings"=hex:3c,00,00,00,1d,00,00,00,01,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,04,00,00,00,00,00,00,00,00,7d,f5,a4,f5,22,d3,01,01,00,\
  00,00,c0,a8,00,05,00,00,00,00,00,00,00,00 

還有這個改變處

[HKEY_CURRENT_USER\SessionInformation] 
"ProgramCount"=dword:00000002 
"ProgramCount"=dword:00000004 

然後我們在看程序

用書上的方法,檢視Handles,可以發現以下的這麼幾個handle,倒數第五個就是書中說的建立的那個互斥變數名叫WinVMX32,因為虛擬機器解析度的問題,看的不是很清的樣子,然後書中沒有說的是正數第六個的\Device\KsecDD的檔案描述符

Ksecdd元件提供核心安全裝置驅動程式(MSDN)

Handle

然後我們再看匯入的DLL

書中所說的,匯入了ws2_32.dllwshtcpip.dll,說明了它具有聯網的功能,這個我們在DNS解析上就可以發現,他會DNS查詢一個特殊的網址

DLL

書中下一步是用procmon工具來尋找額外的資訊

這是從程序中匯出的字串,書上沒有說到的

字串

完整的複製出來就是下面這樣的

nノnノn
qノn
Nノn
WMV
jjヘ￴
uaE￉
ᅩヒz
Lsᅥ
ᅢIヒテ
eᄑᄌ
yフn
iBナ
f>uテ
Puテ
jjjjjjヘモ
uPナ
!This program cannot be run in DOS mode.
Rich
.text
`.data
ExitProcess
kernel32.dll
cks=u
ttp=
cks=
CONNECT %s:%i HTTP/1.0
QSRW
PWW
[email protected]
PWW
VSWRQ
QVlM
^-m-m<|<|<|M
advapi32
ntdll
user32
Jbh
QQVP
ucj
advpack
StubPath
SOFTWARE\Classes\http\shell\open\commandV
Software\Microsoft\Active Setup\Installed Components\
test
www.practicalmalwareanalysis.com
admin
VideoDriver
WinVMX32-
vmx32to64.exe
SOFTWARE\Microsoft\Windows\CurrentVersion\Run
SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
PWj
AppData
VQj
ViW

我們去除一些無意義的字串

!This program cannot be run in DOS mode.   //這個是編譯器自動生成的,編譯器的型別應該是vs的編譯器
Rich   //這個很有可能是作者的名字(猜測)
.text   //這個有點像PE頭的text欄位
`.data   //這個和上面一樣,但是多了一個符號,很有可能和上面的一起,是註釋
ExitProcess   //有可能是註釋
kernel32.dll   // 可能註釋
CONNECT %s:%i HTTP/1.0   //這個有可能是程式的printf類的函式的引數,%s可能是域名,%i作用和%d差不多(其實差別很大,但是為了方便理解,這裡可以把%i看出%d),應該是埠號
advapi32   //這是提供基本函式的連結庫
ntdll   //底層API實現庫
user32   //這個是windows使用者介面相關應用程式介面
advpack   //用來幫助硬體和軟體讀取和驗證.INF檔案,INF是硬體裝置製造商釋出起驅動程式的一種檔案格式(說明這個病毒很有可能要去感染某個驅動)
StubPath   //不明的某個路徑
SOFTWARE\Classes\http\shell\open\commandV   //開啟一個http的shell command
Software\Microsoft\Active Setup\Installed Components\   //安裝程式
test   //可能是註釋
www.practicalmalwareanalysis.com   //惡意域名
admin   //有可能是下載網站或者惡意程式碼的使用者名稱
VideoDriver   //顯示卡驅動(很有可能會感染顯示卡驅動)
WinVMX32-   //那個互斥變數的名字,後面多了一個字元,有可能是註釋
vmx32to64.exe   //一個程式的名字
SOFTWARE\Microsoft\Windows\CurrentVersion\Run   //執行其他程式
SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
AppData   //這個,應該是什麼吧,不懂

然後我們查詢一個vmx32to64.exe有沒有在系統中

vmx

查找出來了,在C:\WINDOWS\system32下面有這個檔案

然後就是用procmon來分析這個程式了,因為在現在不管是微軟也好,各大下載網站也好,都提供的是最新版的procmon的下載,這個版本是沒法執行在winxp上的,能執行在winxp上的是3.20版本的procmon,如果你找不到,這裡有個下載連結(這也是最近才發現的,寫最上面的時候還沒找到)

然後下面我們用這個procmon來看

我們先通過程序名稱(process name)來篩選

pn

然後點ok就行了,它會提示你要不要add,add就可以了

結果

這就是過濾出來的結果,但是結果很多

發現

然後我們在最後的地方,會發現這個有個 tcp連線的標識

放大

用的是https的方式

然後增加過濾為WriteFile可以發現

過濾

程式會向系統的一個目錄下面寫入這麼一個檔案,然後長度是下面這個7168位元組

長度

然後再過濾RegSetValue這個

過濾

寫入了一個登錄檔,自動執行vmx32to64.exe

然後後面的分析就是和作者差不多了

最後的結論就是感染跡象就是那個vmx32to64.exe檔案的存在與否

3.這個惡意程式碼是否存在一下有用的網路特徵碼?如果存在,它們是什麼

解答: 網路特徵碼就是那個惡意域名的解析過程和https的連線

本文完

相關推薦

惡意程式碼分析實戰 Lab 3-1 習題筆記

Lab 3-1 問題 1.找出這個惡意程式碼的匯入函式於字串列表。 解答: (動態分析建議用winxp pro 32bit,下面你就知道為什麼這麼建議了)我們用Dependency Walker會發現這個程式只有很少的匯入函式,第一是懷疑是不是加殼了

惡意程式碼分析實戰 Lab 5-1 習題筆記

Lab 5-1 問題 1.DllMain的地址是什麼? 解答: 這個我們用IDA Pro開啟來查詢,因為最新的IDA Pro不支援我們執行病毒那個虛擬機器的版本(xp pro 32),所以下面的分析都是在win7上的 開啟IDA Pro之後就會提

惡意程式碼分析實戰 Lab 3-2 習題筆記

Lab 3-2 問題 1.你怎樣才能讓這個惡意程式碼自行安裝? 解答: 這個看書上解答是 利用rundll32.exe工具,使用命令rundll32.exe Lab03-02.exe, installA,來執行惡意程式碼匯出installA函式

惡意程式碼分析實戰 Lab 3-3 習題筆記

Lab 3-3 問題 1.當你使用Process Explorer工具進行監視的時候,你注意到了什麼? 解答: 這種沒有明確目的的題目,我們先開始 執行很多次之後會發現,Lab03-03.exe會啟動svchost.exe,每點一次啟動一個 s

惡意程式碼分析實戰 Lab 1-2 習題筆記

Lab 1-2 問題 1.將Lab01-02.exe檔案上傳至http://www.virustotal.com/進行分析並檢視報告。檔案匹配到了已有的反病毒軟體特徵嗎? 解答: 這個傳就行了。 2.是否有這個檔案被加殼或混淆的任何跡象?如果

惡意程式碼分析實戰 Lab09-01(1

分析報告: 1.     樣本概況 病毒名稱為Lab09-01.exe,使用Microsoft Visual C++ v6.0編譯。 1.1樣本資訊 病毒名稱:Lab09-01.exe MD5值: B94AF4A4D4AF6EAC81FC135ABDA1C40C SHA1值

2018/11/03-棧、x86架構和暫存器-《惡意程式碼分析實戰

  棧用於函式的記憶體、區域性變數、流控制結構等被儲存在棧中。棧是一種用壓和彈操作來刻畫的資料結構,向棧中壓入一些東西,然後再把他們彈出來。它是一種先入後出(LIFO)的結構。   x86架構有對棧的內建支援。用於這種支援的暫存器包括ESP和EBP。其中,ESP是棧指標,包含了指向棧頂的記憶體地址。一些東西

2018/10/03-字串指令(重複指令、操作資料緩衝區指令)、rep與movx指令-《惡意程式碼分析實戰

  重複指令是一組操作資料緩衝區的指令。資料緩衝區通常是一個位元組陣列的形式,也可以是單字或者雙字。(Intel'稱這些指令為字串指令)   最常見的資料緩衝區操作指令是movsx、cmps、stosx和scasx,其中x可以是b、w後者d,分別表示位元組、字和雙字。這些指令對任何形式的資料都有效。   

2018/10/03-函式呼叫約定、cdecl、stdcall、fastcall- 《惡意程式碼分析實戰

  cdecl是最常用的約定之一,引數是從右到左按序被壓入棧,當函式完成時由呼叫者清理棧,並且將返回值儲存在EAX中。   stdcall約定是被呼叫函式負責清理棧,其他和cdecl非常類似。   fastcall呼叫約定跨編譯器時變化最多,但是它總體上在所有情況下的工作方式都是相似的。在fastcall

惡意程式碼分析實戰》--第三章:動態基礎分析

一、虛擬網路環境配置 配置環境:伺服器端kali2.0 客戶端win7 1、配置inetsim kali自帶inetsim,因此只需配置就可以了(但是好像不配置也是可以的……) 配置連結:http://www.cnblogs.com/hyq20135317/p/5515675.h

惡意程式碼分析實戰》--第一章:靜態分析基礎技術

**請參考大神的連結:https://blog.csdn.net/baidu_41108490/article/details/80298973#commentBox Lab1-1 這裡我只是記錄我的學習過程** 2、用PEtools開啟,檢視日期 .exe .dll

2018/11/06-異常-《惡意程式碼分析實戰

  異常機制允許一個程式在普通執行流之外處理事件。多數時間裡,異常是由錯誤引起的,諸如除零錯誤。當一個異常發生時,執行轉移到處理這個異常的特殊例程。有些異常,比如除零異常,是由硬體丟擲的;其他的,比如無效記憶體訪問,是由作業系統丟擲的。你也可以在程式碼中使用RaiseException呼叫,顯示地丟擲一個異常

2018/11/08-偵錯程式-《惡意程式碼分析實戰

  偵錯程式是用來檢測或測試其他程式執行的以來軟體或硬體。由於剛完成的程式包含錯誤,因此偵錯程式在軟體開發過程中可以大顯身手。偵錯程式讓你能夠洞察程式在執行過程中做了什麼。偵錯程式的目的是允許開發者監控程式的內部狀態和執行。   從偵錯程式獲得程式的資訊可能比較困難,但並不意味著不可能,可以從反彙編器中獲得

惡意程式碼分析實戰

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

惡意程式碼分析實戰-確認EXE什麼時候編譯的

場景 確認開源的後門在中毒機器上是什麼版本,具有什麼功能。 思路 1、檢視樣本PE裡的編譯時間 2、對照開源後門裡元件的編譯時間 技術點 檢視NT頭-TimeDateStamp struct IMAGE_NT_HEADERS NtHeader E8h F8h Fg: Bg:0xFFE

惡意程式碼分析實戰-啟動一個惡意的DLL

如果不能把惡意程式碼執行起來,那麼動態分析基礎技術沒有什麼用。 Windows版本中包含rundll32.exe程式,提供了一個執行DLL的平臺。 rundll32.exe Dllname,Export arguments Export值必須是一個DLL檔案匯出函式表中的函式名或者序號。 PEID可以

惡意程式碼分析實戰第15章

對抗反彙編,在很大程度上就是運用花指令技術,使得IDA的強大F5功能失效,在只能靜態分析時讓程式碼顯得亂七八糟,沒有頭緒,將知識點總結如下用IDA python對指令進行NOP替換import idaapi idaapi.CompileLine('static n_key()

惡意程式碼分析實戰 Lab19

lab19-011IDApro開啟看到解碼程式碼如下od除錯的時候顯示說無法作為及時偵錯程式除錯,所以只能用windbg,雖然麻煩了點解碼後程序先跳到003a0464接著在464處,馬上呼叫003a03bf函式步入檢視程式又呼叫003a039e函式步入檢視函式,這段函式很短,

惡意程式碼分析實戰Lab1204

GetModuleBaseName:獲取檔案程序完整路徑EnumProcesses:檢索程序中的每一個程序識別符號。帶三個引數,DWORD 型別的陣列指標 lpidProcess;該陣列的大小尺寸 cb;以及一個指向 DWORD 的指標 pBytesRrturned,它接收返

惡意程式碼分析實戰Lab1602

感覺這個程式原來分析過一次,很相似 目的是得到一個長度為4的pw IDA中邏輯非常清晰,在CreateThread中對資料byte_408030進行修改 然後v5作為判斷標誌 在這兒下斷看資料就好~ (然後用OD下斷看不到,結合本章知識點猜想是有