目录

笔记:

实验:

Lab18-1

Lab18-2

Lab18-3


笔记:

壳的功能:缩减程序的大小,阻碍对加壳程序的探测和分析

解析函数导入表:1.仅导入LoadLibrary和GetProcessAddress两个函数。先脱出原始文件,再读取原始可执行文件的导入函数信息。

2.保持原始导入函数表的完整,让Windows加载器加载所有的DLL及导入函数---->缺乏隐蔽性

3.为原始导入表中的每个DLL保留一个导入函数,解析时只用查看每个导入库中的一个函数---->比第二个隐蔽性高

4.不导入任何函数,脱壳存根从库中查找所有需要的函数。

尾部跳转:ret  call  NtContinue ZwContinue 隐藏跳转

识别加壳程序:加壳标识----->导入函数仅有LoadLibrary和GetProcessAddress

只有少量代码被识别

加壳警告

节名中包含加壳的警告

.text原始数据大小为0,但虚拟大小不为0

阕值计算------>压缩或者加密数据更接近于随机数据,因此有一个较高的阕值(Mandiant Red Curtain/Red Curtain)

脱壳:自动脱壳--->PE Explorer

手动脱壳--->1.找到加壳算法,编写一个程序逆向运行它

2.运行脱壳程序,让脱壳存根帮你工作,让它从内存中转储处进程,然后修正PE头部

查找OEP:自动工具----->OllyDump,通过Section Hop调用Find OEP(如果一个call函数没有返回,节与节之间的大跳转)

手动查找----->查找尾部跳转指令(jmp,ret)

在栈上设置读断点

在代码每个循环后面设置断点

在GetProcAddress函数设置断点,多数脱壳器会使用GetProcAddress函数来解析原始函数的导出表

不要让代码执行向上跳

不同程序:1.命令行程序--->Getversion与GetCommandlineA

2.GUI程序------->GetModuleHandleA与Getversion

OllyDbg的Run Trace选项

手动修复导入表:利用OD标注导入函数

常见壳:UPX:压缩壳

PECompact:包含反调试异常和混淆代码

ASPack:自我修改代码-----设置硬件断点

Petite:单步异常---------硬件断点---------每个库至少导出一个函数

WinUpack:有GUI终端的壳优化压缩--------GetModuleHandleA/GetCommandlineA

Themida:复杂,具有反调试与反逆向分析。会在原始程序运行后继续运行。---------ProcDump转储Windows进程的内容

不完全脱壳的情况下分析:并不需要让其完全脱壳再去分析这个程序。进行转储,IDApro分析特定的节,找到一个地址,标记为代码,拿strings分析。

加壳的dll:在OD中加载dll时,DllMain函数会在od中断之前就运行。

解决:定位IMAGE_FILE_HEADER,在0x2000处的值为1,表示是一个DLL文件,但如果为0,表示一个EXE文件。

ProcDump

实验:

Lab18-1

加了壳的软件

明显的尾部跳转

Lab18-2

加壳

使用od插件寻找OEP,然后转化为code

Lab18-3

可以看出来加壳了,但用od插件并不能定位到OEP

查看代码尾部跳转

然而这里也并不能找到OEP

程序的开始位置,有pushfd和pushad的操作把寄存器的值压入栈,当脱壳完成后。这些寄存器的值还会pop出来

所以执行到如图位置后,在esp中下硬件访问断点。

再次运行,停在OEP位置,然后转化为代码

Lab18-4

同样利用上面的那个esp堆栈平衡

Lab18-5

这个壳隐藏了导入信息,同样利用上面的那个esp堆栈平衡

恶意代码分析-第十八章-加壳与脱壳相关推荐

  1. 学习笔记-第十四章 恶意代码分析实战

    第十四章 恶意代码的网络特征 1.网络应对措施. 网络行为的基本属性包括IP地址,TCP端口,以及流量内容等,网络和安全 设备可以利用它们,来提供网络应对措施.根据IP地址和端口,防火墙和路由器可以限 ...

  2. 20145236《网络攻防》Exp4 恶意代码分析

    20145236<网络攻防>Exp4 恶意代码分析 一.基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些 ...

  3. 2018-2019-2 网络对抗技术 20165324 Exp4:恶意代码分析

    2018-2019-2 网络对抗技术 20165324 网络对抗技术 Exp4:恶意代码分析 课下实验: 实践目标 是监控你自己系统的运行状态,看有没有可疑的程序在运行. 是分析一个恶意软件,就分析E ...

  4. 2018-2019-2 网络对抗技术 20165320 Exp4 恶意代码分析

    2018-2019-2 网络对抗技术 20165320 Exp4 恶意代码分析 一.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行 分析一个恶意软件,就分析Exp2或Exp3中生成后门软 ...

  5. Exp4 恶意代码分析 20164303 景圣

    Exp4 恶意代码分析 实验内容 实验点一:系统运行监控 (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间并分析该文件,综述一下分析结果.目标就是找出 ...

  6. 20155317《网络对抗》Exp4 恶意代码分析

    20155317<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用 ...

  7. 2018-2019-2 20165114《网络对抗技术》Exp4 恶意代码分析

    Exp4 恶意代码分析 目录 一.实验目标 (1)监控你自己系统的运行状态,看有没有可疑的程序在运行. (2)分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sys ...

  8. 20145217《网络对抗》 恶意代码分析

    20145217<网络对抗> 免杀原理与实践 知识点学习总结 进行恶意代码分析之前必须具备以下知识:编程.汇编/反汇编.网络基本知识.PE文件结构以及一些常用行为分析软件. 一.在一个已经 ...

  9. 20155301 Exp4 恶意代码分析

    20155301 Exp4 恶意代码分析 实践目标 (1) 是监控你自己系统的运行状态,看有没有可疑的程序在运行. (2) 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用 ...

最新文章

  1. AutoCAD2012打开后一闪的解决方法
  2. Kubernetes Pod的生命周期(Lifecycle)
  3. 处理一键安装LNMP环境之后,phpinfo.php打开不显示内容的问题
  4. 【机器视觉】 dev_set_preferences算子
  5. opencv android 羽化,学习OpenCV:滤镜系列(15)——羽化(模糊边缘)
  6. 计算机网络从入门到放弃,自由讨论 | KBQA从入门到放弃—入门篇
  7. 201712-2-游戏
  8. sql left join on 多条件_SQL深入理解|关系代数、简单查询、连接
  9. cryptojs vue 使用_vue 中引入cryptoJS
  10. 有限元法(Finite Element Method,FEM)原理详解
  11. 借助 Material You 动态配色丰富您的应用
  12. 中国电信天翼物联网平台CTWing学习笔记(1)——设备接入(TCP协议)
  13. android 仿写开发者头条,android高仿今日头条富文本编辑(发布文章)
  14. linux休眠唤醒后qt无法启动,Ubuntu 18.04 休眠后无法唤醒的解决办法
  15. python操作sqlite数据库
  16. python 学习过程中所收藏博客原文链接666666
  17. composite java_组合模式(Composite)——Java
  18. 无线打印服务器华硕,华硕远程打印服务器
  19. 工科数学分析 MA_12 Vectors and the Geometry of Space (上篇)
  20. 仿新浪微博照片选择器

热门文章

  1. 爱情电影——《情人》、《阿甘正传》
  2. ubuntu换源并下载python3.8
  3. 电子书 |《阿里巴巴2016双11背后的技术》
  4. Linux 账号和权限管理
  5. MySQL查看建库建表语句
  6. CTF【每日一题20160613】
  7. python pynput鼠标键盘监控(详细)第2部键盘监控tcy
  8. 全球与中国海藻DHA市场深度研究分析报告
  9. EasyExcel基于2.2.6版本自定义合并单元格自定义样式下载多个sheet
  10. 探寻利盟成功发展路径 专访利盟国际CEO