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 ...
随机推荐
- 2018-2019-1 20165226《信息安全系统设计基础》 pwd命令的实现
2018-2019-1 20165226<信息安全系统设计基础> pwd命令的实现 一.学习pwd 查看pwd 得知一个嫩过去文件路径的函数--getcwd i节点值 通过ls -i -a ...
- qq浏览器如何全屏截图
对于经常使用qq浏览器的用户可以关注一下~超级使用的功能哦~ http://jingyan.baidu.com/article/a3a3f811f4e0508da2eb8a04.html
- RPM安装卸载软件
1.安装 rpm -i 需要安装的包文件名 举例如下: rpm -i example.rpm 安装 example.rpm 包: rpm -iv example.rpm 安装 example.rpm ...
- linux-ububtu64位安装docker,及基本命令
安装:貌似只支持64位 sudo apt-get install docker sudo apt-get install docker.io sudo apt-get install docker-r ...
- 使用正则表达式读取简单的xml文件
'<?xml version='1.0' encoding='GB2312'?>'<ntsc>' <time>' <year>2010& ...
- VB.NET 指针
在.NET中,对指针指向数据的存储函数都封装在marshal类中,主要的函数包括:Copy.PtrToStringUni .PtrToStructure .OffsetOf.WriteXXX,Rrea ...
- SC命令安装window服务
sc create Styler binpath= "D:\Styler\Styler.exe" start= auto displayname= "Styler&quo ...
- 几组不错的X264自定义编码<转>
转帖地址:http://tieba.baidu.com/p/4201033507 一般直播时使用A设定即可.你尝试设置并找出你最满意的设定 A为最需最低CPU资源,E为最高. A8x8dct=1 aq ...
- .NET高级软件工程师面试题排行榜(转载)
原文引用:https://m.sanwen8.cn/p/104gMSd.html 一.对于 Web 性能优化,您有哪些了解和经验吗? 出现指数:五颗星 主要考点:这道题是博主在博客园的新闻里面看到的, ...
- css常用属性总结:背景background下篇
前言:这段时间天天加班到10:30之后,简直是x了. 在上一篇文章中,分别解析了background各个属性的用法和注意细节.如果我们在项目上使用背景效果,如果使用下面的写法,你可能抓狂. body{ ...