当前位置: 首页 > news >正文

IDA Pro基本使用

IDA Pro基本使用

1.DllMain的地址是什么?

打开默认在的位置1000D02E就是DllMain地址
在这里插入图片描述
空格键可以看到图形化界面选择options、general勾选对应的选项在图像化也能看到
在这里插入图片描述

2.使用Imports 窗口并浏览到 gethostbyname,导入函数定位到什么地址?

这里可以打开Imports 窗口
在这里插入图片描述
默认已经打开 找到对应的函数gethostbyname
在这里插入图片描述

双击进去可以看到对应的地址 idata:100163CC
在这里插入图片描述

3.有多少函数调用了gethostbyname?

点击函数位置快捷键ctrl+x打开 其中type为p的为调用函数一共5个不同函数调用
在这里插入图片描述

4.将精力集中在位于0x10001757处的对 gethostbyname 的调用,你能找出哪个 DNS请求将被触?

按G键跳转到对应的位置0x10001757
在这里插入图片描述

函数调用前将eax参数push进栈,而pics.praticalmalwareanalys是对应的内容
add eax,0dh,是跳过前面[This is RDO]部分,将指针指向pics.praticalmalwareanalys
在这里插入图片描述

5&6.IDA Pro 识别了在 0x10001656处的子过程中的多少个局部变量和参数

跳转到对应位置,往上看,发现一共有23个局部变量,1个参数
在这里插入图片描述

7.使用 Strings 窗口,来在反汇编中定位字符串\cmd.exe /c。它位于哪?

在String窗口找到对应字符串\cmd.exe /c
在这里插入图片描述
双击找到对应的位置为xdoors_d:10095B34
在这里插入图片描述

8.在引用\cmd.exe /c区域内发生了什么

点击上键头可以看到引用的字符串的地方
在这里插入图片描述
往上看发现字符串, 并发现远程shell相关的字符串Remote Shell Session ,说明这个与远程控制相关
在这里插入图片描述
在这里插入图片描述
同时往下看发现一系列的命令相关,还是调用recv函数
在这里插入图片描述

9.在同样的区域,在 0x100101C8 处,看起来好像 dword 1008E5C4是一个全局变量,它帮助决定走哪条路径。那恶意代码是如何设置dword1008E5C4的呢?(提示:使用dword 1808E5C4的交叉引用)

按住G找到对应位置

在这里插入图片描述
双击进入,使用ctrl+x交叉引用找到影响这个全局变量的位置
在这里插入图片描述
进入,发现受eax变量影响,其中eax又是 call sub_10003695返回值
在这里插入图片描述
点击进入函数,发现这个函数调用的是GetVersionExA函数,然后验证平台是否是win32平台并返回
在这里插入图片描述

10.在位于0x1000FF58处的子过程中的几百行指令中,一系列使用memcmp 来比较字符串的比较。如果对robotwork的字符串比较是成功的(当memcmp返回0),会发生什么?

当memcmp返回0调用call函数

访问注册表相应的位置
在这里插入图片描述

并将对应位置的东西通过send函数发送出去
在这里插入图片描述

11.PSLIST 导出函数做了什么?

主要是获取进程列表并进行下一步操纵。
在这里插入图片描述
在图像化界面分析,
在这里插入图片描述
进入到call sub_100036C3函数
获取版本信息并判断是否是win32平台
在这里插入图片描述
查看当前版本是vista以上,大于5是以上版本
在这里插入图片描述
继续分析左边分支
在这里插入图片描述
发现调用CreateToolhelp32Snapshot,获取系统进程或线程列表
在这里插入图片描述

12.使用图模式来绘制出对sub10004E79的交叉引用图。当进入这个函数时,哪个API函数可能被调用?仅仅基于这些API函数,你会如何重命名这个函数?

双击函数,然后选择图,交叉引用图
在这里插入图片描述
主要调用获取操作系统信息并发送走
在这里插入图片描述
右键编辑实现给函数改名
在这里插入图片描述

13.D1lMain 直接调用了多少个 Windows API?多少个在深度为2时被调用?

和上一步一样,不过深度改为2,可以看到具体调用
在这里插入图片描述
在这里插入图片描述

14.在0x10001358处,有一个对Sleep(一个使用一个包含要睡眠的毫秒数的参数的API函数)的调用。顺着代码向后看,如果这段代码执行,这个程序会睡眠多久?

跳转到sleep函数位置
在这里插入图片描述
eax值影响,首先获取30然后乘以1000最后是30000ms,也就是30s
在这里插入图片描述

15.在0x10001701处是一个对socket的调用。它的3个参数是什么?

对应三个参数
在这里插入图片描述

16.使用MSDN页面的socket和IDAPro中的命名符号常量,你能使参数更加有意义吗?在你应用了修改以后,参数是什么?

选中对应的数字,选择如下方式。
在这里插入图片描述

在这里插入图片描述

17.搜索in指令(opcode 8xED)的使用。这个指令和一个魔术字符串 VXh 用来进行 VMware 检测。这在这个恶意代码中被使用了吗?使用对执行in指令函数的交叉引用,能发现进一步检测VMware 的证据吗?

![!](https://i-blog.csdnimg.cn/direct/89c8489ea0ba428298a182a882c9fb7a.png)
找到对应in语句
在这里插入图片描述
点击进入
在这里插入图片描述
将eax值转化为可以理解的字符串,发现VMXH相关字符
在这里插入图片描述
按空格找到对应函数
在这里插入图片描述
使用ctrl+x找到交叉引用
在这里插入图片描述
进入到函数,发现有对虚拟机进行检测,如果检测到就不安装
在这里插入图片描述

18.将你的光标跳转到0x1001D988处,你发现了什么?

发现一连串乱码数字
在这里插入图片描述

19.如果你安装了IDA Python插件(包括IDAPro的商业版本的插件),运行Lab05-01.py,一个本书中随恶意代码提供的IDA ProPython脚本,(确定光标是在0x1001D988处。)在你运行这个脚本后发生了什么?

编写脚本decoded.idc内容如下:

#include <idc.idc>static main()
{auto ea =ScreenEA(),b,i,decoded_byte;for (i=0x0;i<0x50;i++){b=Byte(ea+i); decoded_byte = b ^ 0x55;PatchByte(ea+i,decoded_byte);}
}

将光标放在如下位置:
在这里插入图片描述
选择file --> script file -->选择对应文件
在这里插入图片描述
运行后字符串被转码
在这里插入图片描述

20.将光标放在同一位置,你如何将这个数据转成一个单一的ASCI 字符串?

通过键盘A键
在这里插入图片描述

http://www.lryc.cn/news/444342.html

相关文章:

  • Day.js时间插件的安装引用与常用方法大全
  • aws 容器镜像仓库操作
  • 学习记录:js算法(四十一): 基于时间的键值存储
  • C语言 | Leetcode C语言题解之第424题替换后的最长重复字符
  • 大数据时代的PDF解析:技术与挑战
  • 《nmap 命令全解析:网络探测与安全扫描的利器》
  • 2024年华为OD机试真题-斗地主之顺子-Python-OD统一考试(E卷)
  • 亲测有效,长期有效的RTSP流地址公网RTSP地址,各种类型的视频源
  • Excel常用函数大全
  • 领夹麦克风哪个品牌好,无线领夹麦克风品牌排名,麦克风品牌大全
  • 【C语言零基础入门篇 - 15】:单链表
  • Linux主流Web服务器:你选择哪一款?
  • 光耦知识分享:解读晶体管光耦主要性能指标
  • laravel public 目录获取
  • 强化学习策略买卖股票的效果如何?
  • Kotlin 基本介绍(一)
  • Cocos Creator发布Moloco平台试玩广告(PlayableAd)
  • 七种修复错误:由于找不到msvcr110.dll 无法继续执行的方法
  • Python模拟鼠标轨迹[Python]
  • Ubuntu搭建java开发环境
  • 新能源汽车知识点集萃
  • c++234继承
  • Axios 封装网络请求
  • LeetCode 面试经典150题 190.颠倒二进制位
  • vulhub搭建漏洞环境docker-compose up -d命令执行报错以及解决方法汇总
  • C++ 简介
  • shardingjdbc分库分表原理
  • C++泛型编程:模版
  • 一道涉及 Go 中的并发安全和数据竞态(Race Condition)控制的难题
  • 如何降低H5商城系统的开发成本