IDA Pro静态分析学习

admin 2023年2月16日21:08:20评论24 views字数 1763阅读5分52秒阅读模式

z实验1

IDA Pro静态分析学习


IDA Pro静态分析学习


1.打开ide 32位 默认第一个选项,然后打开dll文件,ctrl + f 搜DLLMain 双击自动跳转入口点

IDA Pro静态分析学习


方法2 就是点击空格 可查看流程图,第一个就是入口点,双击eax

IDA Pro静态分析学习


2.点击imports 搜索 gethostbyname 地址就是100163CC

IDA Pro静态分析学习


3.双击上图的函数名跳转到对应的汇编代码,找到名字,输入x 获取交叉引用次数

IDA Pro静态分析学习


4.在汇编窗口 输入g 弹出跳转地址,输入0x10001757

IDA Pro静态分析学习


call 是把栈顶的一个值作为函数的参数传递给函数,然后栈顶现在是eax push进去的,寻找eax的值,eax是mov将off_10019040复制过去,点击off 

IDA Pro静态分析学习


off数据后还有一个aThisIsRdoPicsP变量,双击 就看到了具体的数据,dns地址就是pics.praticalmalwareanalysis.com

IDA Pro静态分析学习


5.输入g 输入地址 0x10001656,pdf中IDA会把局部变量标记为var前缀,存在负偏移,因此数一数有多少个var前缀的就行和有负偏移的个数,所以有23个

IDA Pro静态分析学习


6.参数一般使用arg前缀,存在正偏移,所以只有1个参数(lpThreadParameter)

IDA Pro静态分析学习


7.ctrl + f 输入cmd.exe /c

IDA Pro静态分析学习


IDA Pro静态分析学习


8.双击上面的地址

IDA Pro静态分析学习


有个注释 this remote shell session 远程shell会话。

1.输入x 获取交叉引用

IDA Pro静态分析学习


查看第二个,像是打开远程桌面

IDA Pro静态分析学习


继续查看第一个 因为用了mov 改变了数值

可以看到这个dword_1008E5C4的上面,有一次sub_10003695函数的调用,而汇编中,函数调用的返回值存储在eax中

md 还要补汇编知识

IDA Pro静态分析学习


OVERSIONINFOA数据结构中包含操作系统系统版本信息,dwPlatformId标识操作系统,这里的eax作为返回值,先清除。然后通过置位,根据不同操作系统设置返回值。

10.G -> 0x1000FF58 向下找robotwork

IDA Pro静态分析学习


IDA Pro静态分析学习


如果memcmp为0 test是比较 eax前面推入了9 比较结果就不是0 ZF就不为0 jnz就不会执行

点击sub_100052A2 跳转函数

IDA Pro静态分析学习


发现有一个类似注册表的东西 SOFTWAREMicrosoftWindowsCurrentVersion

下面也对这个offset进行push

IDA Pro静态分析学习


IDA Pro静态分析学习


最后就是这两个注册表

HKLMSOFTWAREMicrosoftWindowsCurrentVersionWorkTime

HKLMSOFTWAREMicrosoftWindowsCurrentVersionWorkTimes

11.双击进去

IDA Pro静态分析学习


IDA Pro静态分析学习


调用sub_100036c3 双击 系统平台信息的详细版本信息IDA Pro静态分析学习

12.在函数列表中,搜索函数 双击打开

IDA Pro静态分析学习


选中函数名,然后view->Graphs->Xrefs from

IDA Pro静态分析学习


根据其引用函数,可以看出其获取了系统的语言,然后使用send发送。这个函数功能应该就是获取系统语言,因此函数名称可以命名未GetSystemLanguage。

13.起始地址和结束地址都写DllMain的起始地址,然后选取深度(Recursion deptch)为1,然后绘图

IDA Pro静态分析学习


IDA Pro静态分析学习


深度为2

IDA Pro静态分析学习


14.参数存储在eax中被压入栈中,往上查看eax的操作过程,在0x10001632处,eax被赋值,提示“[This is CTI]30”,是一个字符串,,然后eax加0D,换算过来是13,此时eax指向了“3”,然后将eax压入栈中,然后调用atoi将字符串“30”转化成整型30。然后eax乘以3E8,换算过来是1000,也就是30*1000,最后等于30000,也就是说要睡眠30秒

IDA Pro静态分析学习


15.双击socket 有三个参数 百度搜af的2代表使用IPv4进行通信, type的1代表使用internet地址系列,指要使用IP进行通信,protocol的6代表IPPROTO_TCP,也就是设置传输协议为TCP。

IDA Pro静态分析学习


IDA Pro静态分析学习


16

IDA Pro静态分析学习


17.search -- text...

IDA Pro静态分析学习


IDA Pro静态分析学习


有一个cmp指令,对比0x564D586,转化一下,选中该字符串,按“R”键,于是就看见了VMXh。

IDA Pro静态分析学习


向上寻找函数 输入x

IDA Pro静态分析学习


发现都有一句话 虚拟机检测。

IDA Pro静态分析学习


18.直接在hex界面 输入地址 感觉是字符串

IDA Pro静态分析学习


19.没有商业版

IDA Pro静态分析学习


20.在汇编页面 输入 a 转行ascii

IDA Pro静态分析学习


21.获取光标所在位置,然后在0x00到0x50间循环,逐字相加,在与0x55异或,然后输出。

IDA Pro静态分析学习


原文始发于微信公众号(轩公子谈技术):IDA Pro静态分析学习

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月16日21:08:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   IDA Pro静态分析学习https://cn-sec.com/archives/1282415.html

发表评论

匿名网友 填写信息