有时我必须对某些软件/固件/应用程序进行逆向工程/反汇编,如何跟踪发现的结果,发现的应用程序流程以及通常在一段时间(数月)后返回该项目工作时需要的详细信息?

通常,我必须分析某种自制的加密系统,当我在项目上工作时,我可以记住我需要的所有细节,但是如果我暂停项目一段时间(例如。 1个月)当我恢复工作时,必须至少重新学习一半的细节。

总结:我正在寻找一个易于浏览的系统来跟踪应用程序的细节我将其分解以使其有用。

#1 楼

逆向工程目前还不成熟。
做这些事情时,我经常做以下事情:


给重要的功能起清晰的名字。
绘制流程使用某些具有类结构的工程软件/工具来绘制图表。
最后的武器:根据您的分析重写程序的源代码(或其一部分)。代码是最好的文档。

您可能需要阅读软件工程,以了解其他人如何
跟踪大型软件项目中的情况。

#2 楼

如果您想获取完整的逆向工程文档示例的示例,则其中一位主持人拥有一个网站,其中包含完全逆向工程的恶意软件分析IDA Pro数据库。看一下他如何实现每个功能可能是一个很好的框架。

http://www.msreverseengineering.com/blog/2014/6/23/baglew-thorough-idb

http://www.msreverseengineering.com/blog/2014/6/23/commwarriorb-thorough-idb-armc