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 ...
随机推荐
- <转--大话session>
大话Session 原文地址:http://www.cnblogs.com/shoru/archive/2010/02/19/1669395.html 结语 到这里,读者应该对session有了更多的 ...
- Linux C 一些函数 所属头文件
1. Linux中一些头文件的作用:<assert.h>:ANSI C.提供断言,assert(表达式)<glib.h>:GCC.GTK,GNOME的基础库,提供很多有用的函数 ...
- centos使用163 yum源
备份# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak修改# vi /etc/yum.repos ...
- ubuntu16.04初始化配置
允许root登录 sudo passwd root 启动网卡DHCP并配置DNS vi /etc/network/interfaces auto ens3 #auto lo iface ens3 in ...
- 接口自动化(二)--操作Excel获取需要数据
这一部分的内容记述一下对Excel表格的操作,本实战中的测试用例是由Excel来管理的,因此操作Excel是重要的一部分. 再次贴出这张图,所有的测试用例都在这个sheet内,请求数据真实存放在jso ...
- pycharm中使用redis模块入门
数据缓存系统:1:mongodb:是直接持久化,直接存储于硬盘的缓存系统2:redis: 半持久化,存储于内存和硬盘3:memcache:数据只能存储在内存里的缓存系统 redis是一个key-val ...
- Selenium Webdriver——JS处理rich text(富文本框)
126邮件正文邮件的rich text 先让selenium切换到iframe中 driver.switchTo().frame(driver.findElement(By.className(&qu ...
- InnoDB: The log sequence number in ibdata files does not match
InnoDB: The log sequence number in ibdata files does not matchInnoDB的:在ibdata文件的日志序列号不匹配 可能ibdata文件损 ...
- c语言实现常见字符串函数strchr strstr strcmp atoi itoi(字符串换成整数)
好久没有更新博客了,刚刚出炉练练手的程序如下,很简单,没有考虑过多复杂的东西,有好的想法,欢迎指教: 字符查找函数: char *my_strchr(const char *s,int c) { ch ...
- mysql 塞数据
./mysql_.py -H109.105.4.65 -P32773 -uroot -proot.123 --database=test_database --number=10 sysbench - ...