![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
恶意代码分析实战
文章平均质量分 64
Flying_Fatty
这个作者很懒,什么都没留下…
展开
-
恶意代码分析实战Lab1702
运行1701的py代码,结果如下:Number of potential Anti-VM instructions: 1Anti-VM: 100061db点进去三个引用的地方,发现判断条件都是一样的拿InstallSB举例看到提示字符串,说明10003592函数是printf~ 在cmd运行:rundll32 Lab17-02.dll,InstallRT...原创 2018-08-07 12:56:42 · 304 阅读 · 0 评论 -
恶意代码分析实战Lab1402
提示:为了阻止恶意代码破坏系统,恶意代码已经被配置向一个硬编码的回环地址发送信令,但是可以认为其是一个硬编码的外部地址LoadString:这个成员函数是在调用String Table里面定义的信息,也就是说,把String Table中的字符串读出来到对象里CreateEvent:问题1:恶意代码编写时直接使用IP地址的好处和坏处是什么?啊问题2:网络库?啊问题3:URL信息源?啊问题4:HTT...原创 2018-06-23 20:12:25 · 270 阅读 · 0 评论 -
恶意代码分析实战Lab1204
GetModuleBaseName:获取文件进程完整路径EnumProcesses:检索进程中的每一个进程标识符。带三个参数,DWORD 类型的数组指针 lpidProcess;该数组的大小尺寸 cb;以及一个指向 DWORD 的指针 pBytesRrturned,它接收返回数据的长度。DWORD 数组用于保存当前运行的进程 IDs。pBytesRrturned 返回数组所用的内存大小这里就需要根...原创 2018-06-08 23:26:07 · 319 阅读 · 0 评论 -
恶意代码分析实战Lab1401
401000是典型的BASE644010BB:发现这个函数就是调用了BASE64对字符串进行加密隐藏4011A3:然后根据v3的值是否为0:根据msdn:Downloads data into the Internet cache and returns the file name of the cache location for retrieving the bits.HRESULT的返回有三...原创 2018-06-22 15:52:33 · 258 阅读 · 0 评论 -
恶意代码分析实战Lab1202 Lab1203
从系统目录下对svchost.exe做操作在4010EA中发现:运行:拖入cmd运行,把cmd顺手都给关掉了分析到这里,发现五个题目一个都解决不了,说明还有好多细节点没有分析到是啊问题1:exe如何安装dll来实现长期驻留啊问题3:exe如何安装dll来实现长期驻留啊问题3:exe如何安装dll来实现长期驻留啊问题3:exe如何安装dll来实现长期驻留啊...原创 2018-05-22 17:39:24 · 185 阅读 · 0 评论 -
恶意代码分析实战Lab1201
分析exe:先看看psapi.dll这个是不是系统dll:系统进程状态支持模块这里可能是对explorer.exe的监听动态运行:每割一段时间会弹框在dll中发现:每隔一分钟会弹框一次用procexp分析explorer.exe,发现是个DLL注入RESTART这个进程一下,就可以注入的dll删掉了直接重启电脑也行说明这个恶意程序是个一次性的...原创 2018-05-22 17:08:56 · 229 阅读 · 0 评论 -
恶意代码分析实战Lab1102
打开ini文件,看到一个字符串,明显是加密过的,很容易猜想dll会对其进行解密首先关注到ini文件的使用方式可知ini文件需要放到system32目录下,该dll才可以正确运行100010B3函数对读取的每一位做计算不晓得这堆数据有什么用然后分析到100014B6函数:合理猜测当这些dll或者exe运行时,会调用该恶意代码分析installer函数:很常见的注册表键值操作以及文件操作问题1:恶意d...原创 2018-05-08 12:56:31 · 212 阅读 · 0 评论 -
恶意代码分析实战Lab1001
用IDA分析下exe啊哈问题1:注册表操作书上提示说是用Procmon,其实用regshot来对比可能更直观吧啊哈问题2:ControlService调试问题3:程序功能啊哈啊哈啊哈原创 2018-03-14 16:44:41 · 253 阅读 · 1 评论 -
恶意代码分析实战Lab1101
双机调试一直出了不晓得为什么的问题,导致第十章的东西一直不晓得怎么调试先往后走一章,windbg之后再补习好了IDA分析该程序main中的重要函数有两个,分别是401080和401000分析401080函数:第一眼看到的是FindResource的API调用,该函数确定指定模块中指定类型和名称的资源所在位置。其中参数是:第一个参数是被提取资源文件的句柄,第二个参数是被提取资源的名称,第三个参数是需...原创 2018-05-07 23:19:27 · 184 阅读 · 0 评论 -
WINDOWS网络API总结
一:WinSock APIWSAStartup,getaddrinfo,socket,connect,send,recv,WSAGetLastError二:WinINet APIInternetOpen:初始化一个应用程序,以使用 WinINet 函数InternetConnect:建立 Internet 的连接,成功返回非0。如果返回0。要InternetCloseHandle释放这个句柄Int...原创 2018-06-16 20:58:23 · 2925 阅读 · 0 评论 -
恶意代码分析实战第15章 - 对抗反汇编
对抗反汇编,在很大程度上就是运用花指令技术,使得IDA的强大F5功能失效,在只能静态分析时让代码显得乱七八糟,没有头绪,将知识点总结如下用IDA python对指令进行NOP替换import idaapiidaapi.CompileLine('static n_key() {RunPythonStatement("nopIt()");}')AddHotkey("Alt-N","n-key")...原创 2018-06-24 20:18:21 · 315 阅读 · 0 评论 -
恶意代码分析实战Lab1501
IDA大法中有这个功能:Options - Generals就可以看到字节码了根据书中介绍,这就是E8字节的花指令大法,总共用了4次,我们都patch一下保存成功把红色的“错误”都去掉之后,来分析逻辑代码中多次出现jnz short loc_40105E所以很明显这里是字符串匹配失败的地方,提示为:在OD里调试一发设置个参数跑一下就有了在401017处取的是字符串第一个字符,与0x70作比较在40...原创 2018-06-24 20:52:47 · 213 阅读 · 0 评论 -
恶意代码分析实战Lab1701
IDA -> main -> Name字符串,HGL345,很明显,这个程序我们之前分析过,特征字符串这次的分析目的不一样,是要patch掉反虚拟机技术,从而使得代码运行起来根据书中17.2.5反虚拟机的x86指令一节,如下指令:sidt,sgdt,sldt,smsw,str,in(第二个操作数被设置为VX),cpuid恶意代码通常并不运行这些指令,除非它们执行VM...原创 2018-08-07 11:20:12 · 253 阅读 · 0 评论 -
恶意代码分析实战Lab18
论工具的重要性:百度一下找个万能脱壳机:linxerUnpacker可以准确识别4个且成功脱壳Lab18-02.exe : [FSG v1.00 (Eng) -> dulek/xt]Lab18-03.exe : [PECompact v1.4x+]Lab18-04.exe : [ASPack v2.12]Lab18-05.exe : [Upack V0.37 -> Dwi...原创 2018-08-06 17:11:12 · 545 阅读 · 0 评论 -
恶意代码分析实战Lab1602
感觉这个程序原来分析过一次,很相似目的是得到一个长度为4的pwIDA中逻辑非常清晰,在CreateThread中对数据byte_408030进行修改然后v5作为判断标志在这儿下断看数据就好~(然后用OD下断看不到,结合本章知识点猜想是有反调试器的手段)在函数TlsCallBack里发现了这个:在字符串里找到了这个:如果改下字符串的话,是不是可...原创 2018-07-14 11:29:45 · 323 阅读 · 0 评论 -
恶意代码分析实战Lab1503
CreateToolHelp32Snapshot:可以通过获取进程信息为指定的进程、进程使用的堆[HEAP]、模块[MODULE]、线程建立一个快照。说到底,可以获取系统中正在运行的进程信息,线程信息等Thread32First,Thread32Next:用来遍历每一个线程Module32First,Module32Next:BOOL Module32First( HANDLE ...原创 2018-07-11 23:41:40 · 253 阅读 · 0 评论 -
恶意代码分析实战Lab1303
这个题的加密算法第一眼看上去很复杂,试试从字符串找特征猜测:更换后的BASE64加密,与URL进行交互main -> 401AC2 -> WSASocket(TCP连接) -> 连接成功调用4015B7,否则return 1(报错) BOOL CreatePipe(PHANDLE hReadPipe, // 指向读句柄的指针 PHANDLE hWritePipe, // 指...原创 2018-06-10 23:00:18 · 181 阅读 · 0 评论 -
恶意代码分析实战Lab1302
main -> 1851 -> 1070,181F,1000碰到了好多不认识的WINAPI函数GetSystemMetrics:该函数只有一个参数,称之为「索引」,这个索引有75个ID,通过设置不同的标识符就可以获取系统分辨率、显示区域的宽度和高度、滚动条的宽度和高度等。来自MSDN~~~获取屏幕的宽度和高度GetDesktopWindow:该函数返回桌面窗口的句柄。桌面窗口覆盖整个屏...原创 2018-06-10 16:30:05 · 256 阅读 · 0 评论 -
恶意代码分析实战Lab1301
调用关系:main -> 401300 -> FindResource,LoadResource,401190其中401190:有个xor解密!Resource Hacker保存,再用winhex修改数据得到如下字符串:得到URL后,调用函数4011C94010B1:典型的BASE64格式,点开byte_4050E8,发现是标准的BASE64这个v8要怎么理解不太知道于是运行起来和ma...原创 2018-06-10 15:08:52 · 166 阅读 · 0 评论 -
恶意代码分析实战Lab1502
4102386:隐藏字符串的姿势之一:把字符串的赋值改成一个一个字符赋值这样在strings中就看不到了在main中,出现了一个红色调用:在OD中明显可以看到:啊啊啊啊...原创 2018-06-24 23:55:49 · 271 阅读 · 0 评论 -
恶意代码分析实战Lab1103
把当前目录下的dll复制一份到system32系统目录接着开启了服务名称叫做:cisvc啊啊问题1:恶意dll导出了什么啊问题1:恶意dll导出了什么啊问题1:恶意dll导出了什么啊问题1:恶意dll导出了什么问题1:恶意dll导出了什么啊问题1:恶意dll导出了什么啊问题1:恶意dll导出了什么啊...原创 2018-05-20 19:39:49 · 187 阅读 · 0 评论 -
恶意代码分析实战Lab0903
首先动静态结合分析程序跑起来会发现调用了3个DLL,用IDA先来看看main简单猜想DLL1Print()是调用了DLL1,DLL2Print()是调用了DLL2这里的extrn:说明这个函数是由外部实现的,这里是直接的外部调用(extern)调用DLL3Print()函数是采用的不同的姿势先使用LoadLibrary来获取DLL的句柄,接着使用GetProcAddress得到函数入口所以v9是D...原创 2018-03-04 21:10:24 · 354 阅读 · 0 评论 -
恶意代码分析实战Lab0902
首先动静态结合分析程序首先看strings,可以看到Runtime Error!等一些字符串,不能作为很明显的特征在IDA中的main可以找到这个这可以当成两个字符串看,1qaz2wsx3edc,程序员一眼就认得的另一个是ocl.exe。那不妨先运行下程序,看内存中会不会释放出ocl.exe(但是并没有)这里的 strcmp 的 if 语句是肯定需要进去的,即strcmp(v26,v36) = 0...原创 2018-03-04 17:40:37 · 437 阅读 · 0 评论 -
恶意代码分析实战Lab0702
动态运行程序行为:自动打开了网页:www.malwareanalysisbook.com/ad.html静态分析使用IDA标红线的这两个API是针对COM(组件对象模型)进行的操作不清楚IDA对于CLSID和IID格式的解读,在systemlookup网址没有查询到对应的查看对应的strings也没有找到与动态执行相关的URL,psz就是这个URL的值(UNICODE,可能格式不同导致IDA没有识...原创 2018-02-25 17:51:41 · 310 阅读 · 0 评论 -
恶意代码分析实战Lab0302
同样先查壳然后查看字符串接下来使用IDA进行分析,因为是未加壳的代码,程序功能可以很轻松的通过程序逻辑以及调用的API函数来分析10003415函数块分析看到这些关键函数就知道了功能的首先,InternetOpen,InternetConnect是使用HTTP协议进行互联网的访问操作HttpOpenRequest,HttpSendRequest是原创 2018-01-29 13:01:17 · 294 阅读 · 0 评论 -
恶意代码分析实战Lab0301
先查壳看到PEncrypt 3.1 Final -> junkcode的壳,没见过。上次下载的万能脱壳机脱不下来这个于是网上先找了一波脱壳教程https://bbs.pediy.com/thread-90089.htm找到了这个脱壳的案例和教程,链接底下也有demo下载可供调试(学会了这个用这种方式还是脱不下来这个题的)最后想到了内存DUMP的办法,即使我不原创 2018-01-28 17:07:36 · 968 阅读 · 0 评论 -
恶意代码分析实战Lab1
0101分析这里可以查看到时间戳如上图,使用PEiD可以侦测壳,发现这个DLL和EXE都是无壳的,VC++6.0编译的接着使用IDA对代码进行简单的静态分析先分析DLL:OpenMutex和CreateMutex说明是多客户端CreateProcess说明在远端的服务器有在本地开启进程的权限这里可以看到恶意代码服务端的IP地址:127.26.152.原创 2018-01-25 11:18:29 · 1141 阅读 · 0 评论 -
恶意代码分析实战Lab0304
首先查壳,VC++静态分析IDA函数402020分析:从查看到的strings中找到了DOWNLOAD、UPLOAD等特征字符串,从而查看引用来到402020可见,这个函数相当于恶意代码的menu模块,提供了上传、下载、远程cmd、休眠sleep等功能当开发者把功能写得非常框架、非常模块化的时候,逆向分析人员也是可以很好的去破解其思路。如果开发者为了防止别人的破解,原创 2018-02-04 10:14:46 · 631 阅读 · 0 评论 -
恶意代码分析实战Lab0303
这个照例还是先查壳,VC++6.0的然后使用IDA静态分析Imports和Exports,对几个关键函数进行简单静态分析问题1:使用工具Process Explorer监视根据问题的提示,打开Process Explorer,双击运行程序,发现了这个在程序运行时,调用了svchost.exe。这个二进制程序是个系统文件,结合IDA静态分析,很有可能对这个程序做了恶意原创 2018-01-30 13:26:55 · 506 阅读 · 0 评论 -
FSG脱壳
在网上找几个unpackme来训练FSG1.31的壳先F12让程序暂停,然后使用SFX法Ctrl+F2重启,然后F9!SFX脱壳大法好~这里就是OEP了,55 8B EC其实就是在这里使用Ollydump就好~脱壳成功了哇~FSG1.31属于简单壳(和UPX一样),可以使用F8大法脱壳,但是循环的嵌套层数比UPX多也更烦,在用原创 2018-01-25 10:21:43 · 1275 阅读 · 0 评论 -
UPX脱壳(2)
UPX简单脱壳原创 2018-01-23 11:33:56 · 235 阅读 · 0 评论 -
恶意代码分析实战Lab0701
运行程序,发现程序持续运行中。。。一直黑屏在跑。在IDA中可以看到是有Sleep函数问题1:如何实现持久化驻留程序运行过程中,会开启一个名为MalService的服务运行net start查看机器当前开启的服务,惊人发现~服务没有开起来,可能是哪个地方姿势不对吧问题2:程序的互斥量找到mutexName是个常量字符串:HGL345说明该程序只能运行一个实例同时打开多个,在几秒钟之内,除了第一个的以...原创 2018-02-25 13:44:58 · 476 阅读 · 0 评论 -
恶意代码分析实战Lab0703
动静态结合分析过程特征字符串:kernel32和kerne132(注意是小写字母l和数字1)程序在运行的时候要带一个参数运行~常量字符串~这里CreateFile的功能是打开某个目录下的文件看到main的最后几行代码,调用了函数4011E0,且参数是C:\*IDA对4011E0的分析,看到了标志性API函数:FindFirstFile和FindNextFile。知道4011E0是对C盘下的文件进行...原创 2018-02-26 17:07:43 · 319 阅读 · 0 评论 -
恶意代码分析实战Lab0901
和0304是同一个程序,下面是自己当时对0304的分析http://blog.csdn.net/kevin66654/article/details/79250908从IDA里分析main先分析多次重复出现的402410&parameters是由三部分字符串连接而成的aCDel是删除符号,&Filename是自身,aNull是>>NULL的终结符号,shell执行之后,...原创 2018-02-27 15:24:18 · 475 阅读 · 0 评论 -
恶意代码分析实战Lab06补充
Lab0601补充https://hunted.codes/writeups/challenges/practical-malware-analysis/practical-malware-analysis-lab-6-1/Lab0602补充Buffer是读取文件的缓冲区,根据 if 语句,当前四个字符是“<!--”。return的返回值是Buffer的第五个字符https://debug....原创 2018-02-19 20:49:41 · 364 阅读 · 0 评论 -
恶意代码分析实战Lab09补充
按照题的标号来的,先从书中找,然后贴网上Writeup的学习历程Lab0901-in : 安装; -c : 更新配置; -cc : 打印配置; -re:删除因为自己都是猜的,没有调试出来过,只知道密码是abcd,且没有成功安装和运行程序在地址4026cc处,打开了一个服务管理器,basename是去除目录路径和文件扩展名信息之后的文件名,若basename不存在,则创建了一个自启动服务根据自己的分...原创 2018-03-08 16:41:35 · 419 阅读 · 0 评论 -
恶意代码分析实战Lab0604
问题1、2:分析main函数多的结构是for循环。表示多次重复探测问题3:解析HTML的函数并没有看出什么区别……问题4:程序运行的时间根据main中循环变量 i 跑了1440次。当v5 = 1时,即401040函数返回1时,函数每次都会sleep60s也就是1分钟,所以程序会在线1440min = 24h = 1天问题5:程序新的基于网络的迹象以及目的和0603没看出来什么区别...原创 2018-02-19 20:22:51 · 267 阅读 · 0 评论 -
恶意代码分析实战Lab0603
问题1、2、3、4:分析main函数多的函数是401130使用的参数是lpExistingFileName,a1是一个标记变量,以switch为分类进行操作根据不同的API函数功能,a1不同取值a1=‘a’:创建新目录a1=‘b’:复制文件a1=‘c’:删除文件a1=‘d’:注册表操作a1=‘e’:睡眠100s其他值:输出“Error 3.2: Not a valid command provid...原创 2018-02-18 20:30:50 · 183 阅读 · 0 评论 -
恶意代码分析实战Lab0602
问题1:main调用的第一个子过程问题根据函数调用逻辑关系,main中第一个子过程是401000,第二个子过程是401040。401000的操作:InternetGetConnectedState:判断当前机器是否连接互联网问题2:位于40117F的子过程401000的操作40117F函数在IDA成这样看不出来细节要做什么根据main的图示,分析401000和401040的代码逻辑,发现40107...原创 2018-02-18 19:47:53 · 218 阅读 · 0 评论 -
恶意代码分析实战Lab0601
问题1:main调用的子过程的代码结构就一行代码,if语句的判断,当401000函数返回非0,main返回1;401000函数返回0,main返回0问题2:40105F子过程分析刚才main中的分析,跟踪到401000函数啊函数使用局部变量v1,调用API函数InternetGetConnectedState:该函数返回本地系统的网络连接状态(局域网不起作用)问题3:程序目的判断当前机器是否连接互...原创 2018-02-18 19:17:02 · 197 阅读 · 0 评论