我的一个朋友从Facebook上下载了一些恶意软件,我很好奇它在不感染我自己的情况下是怎么做的。我知道你不能真正地反编译。exe,但是我至少可以在程序集中查看它或附加调试器吗?
编辑说它不是. net可执行文件,没有CLI头文件。
在汇编中查看它可能会得到一些信息,但我认为最简单的方法是启动虚拟机,看看它做了什么。确保你没有未公开的股份或类似的东西,它可以跳过;)
当然,看看rda支持。他们提供了一个评估版本,所以你可以尝试一下。
任何优秀的调试器都可以做到这一点。OllyDbg试试。(编辑:它有一个很棒的反汇编程序,甚至可以解码参数到WinAPI调用!)
你需要的是一种叫做“反汇编程序”的软件。
快速谷歌产生这个:链接
如果你只是想弄清楚恶意软件在做什么,在像过程监控这样的免费工具下运行它可能会更容易,它会在它试图访问文件系统、注册表、端口等时报告…
另外,使用像免费的VMWare服务器这样的虚拟机对这种工作非常有帮助。您可以创建一个“干净”映像,然后每次运行恶意软件时都返回到该映像。
一些相关的工具可能会在你做的任何事情中派上用场,比如资源编辑器ResourceHacker(免费)和一个好的十六进制编辑器,比如十六进制车间(商业)。
此外,如果您正在进行恶意软件分析(或使用SICE),我全心全意地建议在虚拟机中运行一切,即VMware工作站。在SICE的情况下,它将保护您的实际系统免受bsod的侵害,而在恶意软件的情况下,它将保护您的实际系统免受目标程序的侵害。您可以使用VMware 在这里阅读恶意软件分析。
就我个人而言,我支持Olly, WinDbg &W32Dasm,以及一些较小的实用工具。
另外,请记住,拆卸或甚至调试别人的软件通常至少是违反EULA的:)
如果你想在不感染你的计算机的情况下运行这个程序来看看它做了什么,可以使用像VMWare或Microsoft VPC这样的虚拟机,或者像信息记录这样可以沙盒化这个程序的程序
psoul的精彩帖子回答了你的问题,所以我不会复制他的好工作,但我觉得它有助于解释为什么这是一个完全有效但也非常愚蠢的问题。毕竟,这是一个学习的地方,对吧?
现代计算机程序是通过一系列转换产生的,从人类可读的文本指令体(称为“源代码”)的输入开始,到计算机可读的指令体(也称为“二进制”或“机器代码”)结束。
计算机运行一组机器码指令的方式归根结底是非常简单的。处理器可以采取的每个操作(例如,从内存中读取,添加两个值)都由一个数字代码表示。如果我告诉你数字1代表尖叫,数字2代表傻笑,然后举着写着1或2的卡片,期待你尖叫或傻笑,我所使用的系统本质上与计算机使用的系统相同。
二进制文件只是这些代码(通常称为“操作码”)和操作码所作用的信息(“参数”)的集合。
汇编语言是一种计算机语言,其中每个命令字恰好代表处理器上的一个操作码。在汇编语言命令和处理器操作代码之间有直接1:1的转换。这就是为什么为x386处理器编写程序集与为ARM处理器编写程序集不同的原因。
反汇编很简单:程序读取二进制(机器代码),用等价的汇编语言命令替换操作代码,并将结果作为文本文件输出。理解这一点很重要;如果您的计算机可以读取二进制文件,那么您也可以读取二进制文件,可以手动使用操作代码表(ick),也可以通过反汇编程序。
反汇编程序有一些新的技巧,但重要的是要理解反汇编程序最终是一个搜索和替换机制。这就是为什么任何禁止它的EULA最终都是在夸夸其谈。你不能既允许计算机读取程序数据,又禁止计算机读取程序数据。
(不要误解我的意思,已经有人试图这么做了。它们和DRM一样适用于歌曲文件。)
但是,对于拆卸方法有一些注意事项。变量名不存在;这样的东西对你的CPU不存在。库调用非常混乱,通常需要进一步分解二进制文件。即使在最好的条件下,组装也很难阅读。
大多数专业程序员在阅读汇编语言时都会感到头疼。对于一个业余爱好者来说,这是不可能发生的。
不管怎样,这是一种有些粉饰的解释,但我希望它能有所帮助。任何人都可以随意纠正我的错误陈述;已经有一段时间了。;)
回飞棒也值得一试。
如果你没有时间,提交恶意软件到cwsandbox:
http://www.cwsandbox.org/
http://jon.oberheide.org/blog/2008/01/15/detecting-and-evading-cwsandbox/
HTH
资源管理器套件可以做你想做的事情。
我不敢相信没有人说免疫调试器,到目前为止。
免疫调试器是一个强大的工具,编写漏洞,分析恶意软件,并反向工程二进制文件。它最初是基于Ollydbg 1.0源代码,但与名称资源的bug修复。它有一个很好的支持Python API易于扩展,所以你可以写你的python脚本来帮助你进行分析。
另外,Corelan团队的Peter写了一个很好的mona.py,顺便说一句,这是一个很好的工具。
x64dbg是一个良好的开源调试器,它是主动维护的。
x64dbg
你可以使用dotPeek,非常适合反编译exe文件。它是免费的。
https://www.jetbrains.com/decompiler/
我想说在2019年(甚至在2022年),Ghidra (https://ghidra-sre.org/)值得一试。它是开源的(免费的),具有惊人的代码分析能力,包括反编译到相当可读的C代码的能力。