20145233计算机病毒实践九之IDA的使用
20145233计算机病毒实践之IDA的使用
PSLIST导出函数做了什么
这个函数是一个export函数,所以在view中选择export
查到后,双击打开这个函数的位置
仔细看这个函数可以发现这个
GetVersionExA
并且后续进入了其它函数,可以看到在循环使用
通过循环使用,获得了我们的进程信息
通过网络发送我们的进程列表,或者获得我们列表某一个特定的进程名,来进行后续操作。
使用图模式绘制出sub_10004E79的交叉引用图
- sub_10004E79的交叉引用图,当进入这个函数时,哪个API可能被调用?仅仅基于这些API函数,你可以如何重命名这个函数?
ctrl+x打开交叉引用可以看到三个函数
双击这些函数,观察每个函数的行为
根据行为得到如下图的命名(因为它主要目的是获得了系统的语言并发送出去)
重命名比较简单右键
Edit
就可以改,这样的好处就是不只是看代码,改成函数名字后,可以直观的知道这个函数的意义。
通过操作,可以发现这个API函数主要是获取操作系统的语言。
DLLMAIN直接调用了多少WINDOWS API
- 这些WindowsAPI有多少个深度为2时被调用?
回到DLLMAIN我们,右键修改深度为2
这时候会自动打开一个图,很乱,因为里面涉及到的函数很多,所以我直截取一部分,
尝试使用MSDN页面
- 我先查找了什么是MSDN?
- 这是微软公司面向软件开发者的一种版本。MSDN 涵盖了所有的可以被开发扩充的平台和应用程序,因此如微软公司的百科全书 Encarta,或者是各种游戏,是不包括在MSDN 之内的,因为这些产品直接面向最终用户,没有进行程序开发的必要
- MSDN版是属于测试版的系统,MSDN的意思是Microsoft Developer Network,也就是微软的软件开发伙伴论坛,一般软件即将发售的时候微软都会提供一个测试版给内部的技术人员、开发人员进行测试,当然并不是所有的人 都能得到这个版本的,只有微软比较信赖的开发者或技术人员才能得到。然后这些版本会通过各种途径泄漏出来,这就是我们常见的MSDN版,MSDN版因为还 是属于测试版,所以一般用户如果只是尝鲜的话可以试试,不建议长期使用
- 使用MSDN的页面中socket和IDA中的命名符号常量,在0x10001701处对socket调用的参数更有意义
- G打开查找:输入这个地址
可以找到三个push参数,每个参数代表不一样的含义,通过右键
Use standard...
可以转换成可以看懂的函数AF_INET
修改MSDN的页面中socket和IDA中的命名符号常量,在0x10001701处对socket调用的参数更有意义
这里我们需要查找MSDN的socket代码,每个数字都代表不一样的含义
搜索in指令
- 这个指令和一个魔术字符串VMXh用来进行VMware检测。这在这个恶意代码中被使用了吗?使用对执行in指令函数的交叉引用,能进一步发现检测Vmware的证据吗?
- 查找in指令,用空格进入图模式。
- 可以找到一个不叫VMXh的,但是右键转换后,发现这个就是所要找的位置。
- 继续在这个后面观察,可以看到下图红框中的这句话,证明Vmware的使用证据
实践感想
- 本次实践是实践八的后续,总体来说,IDA的功能还是很强大的,实践内容说实话还是比较有难度的,在指导下虽然可以快速的做出来,但是要理解还是比较难的,因为都是英文,并且代码深刻理解需要较为深厚的汇编知识,我对于一些汇编知识已经有些遗忘了,在理解的时候想了有一些时间。
- 但是通过IDA的分析,可以理解里面的很多函数的意思,里面的图文解释的很清楚,这很便于理解,相比之前的那些分析工具它有很强的连通性,容易明白一步完了接下来的操作,这是其他不具有的,使用了IDA后明白了自己学到的还是很少,自己应该在以后的学习中更注重实践,感到自己实践学到的比单纯的听学到的更多。
20145233计算机病毒实践九之IDA的使用的更多相关文章
- 20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践
20145203盖泽双 <网络对抗技术>实践九:Web安全基础实践 1.实践目标 1.理解常用网络攻击技术的基本原理. 2.Webgoat下进行相关实验:SQL注入攻击.XSS攻击.CSR ...
- 计算机病毒实践汇总六:IDA Pro基础
在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 1. IDA使用 (1)搜索.下载并执行IDA Pro,对可执行程序lab05-01.dll进行装载,分别以图形 ...
- 计算机病毒实践汇总二:bufferzone沙盘使用体验
在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 1. 安装bufferzone及其简单使用 (1)安装BufferZone BufferZone的msi安装文件 ...
- 计算机病毒实践汇总四:netcat使用方法
在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 1. netcat概述 (1)特性 "TCP/IP协议栈瑞士军刀",可以被用在支持端口扫描. ...
- 滑屏 H5 开发实践九问
滑屏的交互形式自从在 H5 中流行起来,便广泛应用在产品宣传.广告.招聘和活动运营等场景中,作为微信朋友圈广告惯用的形式,其影响力更是得到了强化与放大.如今滑屏H5可谓玲琅满目,数不尽数. 作为一个 ...
- UWP开发之Mvvmlight实践九:基于MVVM的项目架构分享
在前几章介绍了不少MVVM以及Mvvmlight实例,那实际企业开发中将以那种架构开发比较好?怎样分层开发才能节省成本? 本文特别分享实际企业项目开发中使用过的项目架构,欢迎参照使用!有不好的地方欢迎 ...
- EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(九)
前言 这一篇我们将完成系统的权限设置功能以及不同角色用户登录系统后动态加载菜单.注意:此示例权限只针对菜单级,如果园友需要更复杂的系统权限设置,可以拓展到按钮级或属性级. 用户的登录采用Form认证来 ...
- 中小型研发团队架构实践九:任务调度Job
一.Job 简介 Job 类似于数据库中的作业,多用于实现定时执行任务.适用场景主要包括定时轮询数据库同步.定时处理数据.定时邮件通知等. 我们的 Job 分为操作系统级别定时任务 WinJob 和 ...
- [置顶]
【机器学习PAI实践九】如何通过机器学习实现云端实时心脏状况监测
背景 我们通过之前的案例已经为大家介绍了如何通过常规的体检数据预测心脏病的发生,请见http://blog.csdn.net/buptgshengod/article/details/53609878 ...
随机推荐
- Java 经典练习题_Day010
final 变量能被显式地初始化并且只能初始化一次.被声明为 final 的对象的引用不能指向不同的对象.但是 final 对象里的数据可以被改变.也就是说 final 对象的引用不能改变,但是里面的 ...
- Bootstrap-Other:Less 教程
ylbtech-Bootstrap-Other:Less 教程 1.返回顶部 1. 2. 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 1. http://www.runoob. ...
- java之扫描包里面的class文件
一.class作为,编译过后的产物,在很多时候,我们需要通过反射去执行class的具体方法.但是扫描class就是一个很大的问题了. 二.所以我这里写了一个简单的class文件扫描方式. 三.主要是利 ...
- php ini_set更改php.ini配置,通过它修改php.in达到php上传文件大小限制是不行的,除非修改.htaccess文件
PHP ini_set() 无效的原因:如题:我租的是虚拟主机,php.ini里的upload_max_filesize是默认的2M,要直接修改php.ini文件是不可能的.我如果想上传超过2M的怎么 ...
- UE4 的json读写方式
转自:http://blog.csdn.net/cartzhang/article/details/41009343 JSON 的解析有很多开源库.UE4的JSON使用在代码的Public->S ...
- linux-修改pip源
1.进入家目录的隐藏 .pip目录下 cd ~/.pip 2.创建并修改pip.conf [global]timeout = 10 # 超时 index-url = http://mirrors.a ...
- Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 是由 ...
- leetcode400
public class Solution { public int FindNthDigit(int n) { //StringBuilder sb = new StringBuilder(); / ...
- URL的名称设置
1. 对于login.html 此为跳转文件, 加入了参数nid,在views.py中进行关于request.POST.get()的文件中获取 <a href='/detail?nid={{k} ...
- mac使用备注
快捷键: 掌握好多手势和快捷键可以有效的提高工作效率,触控板和快捷键基本让你可以脱离鼠标. Command+Tab 任意情况下切换应用程序 - 向前循环 Shift ...