恶意代码分析实战Lab0501补充
首先是网上的分析writeup:
https://jmprsp.wordpress.com/2016/02/09/practical-malware-analysis-ida-pro-lab-5/
PSLIST:检测操作系统平台为VER_PLATFORM_WIN32_NT;操作系统版本不低于windowsXP(没找到证据)
问题14处的时间应该是30s,30000ms
问题17:找寻0xED,一个一个翻可以找到书中的特征汇编码:in eax,dx
https://debug.fail/2015/11/practical-malware-analysis-lab-5-1-notes/
上面这个链接显示的是简洁结果,没有太多分析过程
从书后答案学到的新姿势
View->Graphs->User xrefs chart...以图示形式,看到当前函数的调用关系链表
利用GetVersionEx查询当前系统平台信息
这个链接提供了查询Windows版本的程序以及常数值来源。本质上就是Microsoft在某些标志位上进行了版本号与标记位置的一一对应,我们只需要按照规定去查询就好
http://chenhailong.iteye.com/blog/1856505
从下面这两个可以看到VERSIONINFO的结构体定义以及对应的含义
http://blog.csdn.net/yyingwei/article/details/8286658
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms724833(v=vs.85).aspx
其中dwPlatformId的值为2意思是:VER_PLATFORM_WIN32_NT
\
所以100036C3函数的意思是:判断当前windows版本不低于XP
IDApython
ScreenEA():获取当前光标位置,并且作为偏移值使用
Byte():取当前地址的字符值
PatchByte():将字节写入IDA的显示中,但不会修改原始文件(修改原始文件需要用到二进制编辑器等如010editor,将对应的位置的字符patch成正确的字符)