样本分析实习阶段总结

样本分析实习阶段总结

实习有一段时间了,这段时间大部分时间都在分析样本。中间遇到了许多困难,能深深的感觉到自己很多不足。但是也有小小进步,写一段文字将这段时间实习遇到的印象比较深的困难或者是学到的东西记录下来。对不同类型样本进行分类,算是一个小总结。

C++ C语言样本分析
  1. 这类样本分析在以前比赛中就接触的比较多,但是一开始看的比较吃力。因为习惯了像比赛那样,找main函数然后从头到尾慢慢去看。后来发现不行,因为样本有很多功能细节是无关紧要的,一点一点看,不但难以看懂,而且效率低。于是尝试在样本分析中使用**快捷方式: 打开IDA-图标-子图表-导入函数。通过该样本调用的一些关键API,交叉引用去看相应的函数。**比如常用的文件处理API,通信API,COM组件API等等。只看与这些关键API相关的函数,然后看它的调用与被调用,来整体分析样本的功能。也可以在动态调试的时候对相应关键API下断点来分析功能。

  2. 重命名函数是很重要的,当分析出一个函数的功能就立即为它重命名一下。我在样本分析中,发现有一些样本有许许多多重复的函数,它们的功能可能为简单的字符串移动,或者是与功能分析无关的数据操作。重命名可以减少许多冗余分析的时间,也可以方便下一次看IDB快速回忆。

  3. 分析通信时候是否加密: 首先肯定是找到通信的函数,然后往回看。找到通信前文件的收集函数。如果存在加密,一定在在这两个函数之间。之后就可以用动态调试在这两个函数之间耐心找是否存在加密功能。

  4. 就是分析样本时候的解密函数。样本中很多字符的使用都是动态解密后才出现的,这时候需要使用python脚本来在静态分析的时候将字符串解密。这里我学习的是Free buf上的IDA Python教学。里面说的很详细。

Delphi 样本

一开始上手的时候,很迷茫。感觉无从下手,甚至怀疑自己。然后摸索中,找到Form1这个关键字,后来再分析第二个,第三个Delphi VB样本,发现关键功能都在这个函数里。可以使用动态调试对所有Form1相关函数下断点一边运行一边分析,就能很快看懂。

VB 样本

VB也有单独的工具去分析,VB Decompiler。虽然比IDA容易看一些,但是这个工具不能重命名函数,注释也不方便。这个时候就结合两个工具一起使用,OD的动态调试也不能少。比较麻烦。

C#样本

可以直接使用工具DNSPY,相当于直接看源码。属于比较简单的分析

Go语言样本

Go语言样本我分析的很少,但是也遇到。我遇到函数名是比较清晰的,但是F5反编译是不太好看的。Go语言的参数调用约定与字符串结尾处理与C系语言不一样。对我来说看汇编比看F5更容易看出程序逻辑。整体分析 一般从main.main 或者main.init开始看。脚本类语言一般写的都不长,比较有逻辑。

Python样本

首先从样本字符判断样本是从什么打包为exe的。有py2exe和pyinstaller。使用对应的解包可以将exe文件先转为pyc文件,然后使用EasyPythonDecompiler来将pyc文件转为PY文件。然后直接看源码,也比较简单。

yara规则

使用yara规则将样本进行分类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值