• 逆向工程



    一、在对软件进行逆向工程研究的时候,一般会依照以下几个大的步骤来完成:

    1、研究保护方法,去除保护功能。大部分软件开发者为了维护自己的关键技术不被侵犯,采用了各式各样的软件保护技术,如序列号保护、加密锁、反调试技术、加壳等。要想对这类软件进行逆向,首先要判断出软件的保护方法,然后去详细分析其保护代码,在掌握其运行机制后去除软件的保护。

    2、反汇编目标软件,跟踪、分析代码功能。在去除了目标软件的保护后,接下来就是运用反汇编工具对可执行程序进行反汇编,通过动态调试与静态分析相结合,跟踪、分析软件的核心代码,理解软件的设计思路等,获取关键信息。

    3、生成目标软件的设计思想、架构、算法等相关文档,并在此基础上设计出对目标软件进行功能扩展等的文档。

    4、向目标软件的可执行程序中注入代码,开发出更完善的应用软件

    软件逆向工程可以让人们了解程序的结构以及程序的逻辑,深入洞察程序的运行过程,分析出软件使用的协议及通信方式,并能够更加清晰地揭露软件机密的商业算法等。因此逆向工程的优势是显而易见的。

    二、常用软件:

    OllyDbg:常用于动态调试程序,无法调试内核,UI功能强大。
    SoftICE:工作在ring0态的调试器,常用于调试驱动程序,功能强大的命令行工具。
    WinDbg:介于上两者之间的调试器,具有图形界面,调试主要通过命令来进行。
    IDA Pro:反汇编软件,用于静态反汇编,带有较弱的动态调试功能。
    UltraEdit:16进制编辑器,可用于直接修改可执行文件,也可用于常见语言的变成工作。
    虚拟机:防止被调试程序破坏物理机的内核及操作系统。

    三、资源连接

    http://www.freebuf.com/articles/network/167128.html 没事儿下个副本吧?逆向新手踩坑指南

    http://www.freebuf.com/column/157275.html 逆向新手踩坑指南之爬爬山能锻炼身体

    http://www.freebuf.com/column/158790.html 逆向动态调试值OIIydbg

    http://www.freebuf.com/column/157939.html 逆向神奇IDA的使用

    http://www.freebuf.com/sectool/75529.html   逆向分析神器BinNavi开源了

    http://www.freebuf.com/news/topnews/40039.html  走进科学:对七夕“超级病毒”XX神器的逆向分析

    http://www.freebuf.com/articles/network/163233.html  通过逆向分析防御挖矿病毒

    http://www.freebuf.com/articles/system/53021.html  金玉其外败絮其中:百度杀毒“雪狼引擎”逆向分析

     

  • 相关阅读:
    C# TCP/IP 服务端 和 客户端
    (trigger)触发器的定义和作用
    AD账号登陆验证
    DES加密&解密字符串
    机器视觉(工业视觉)需要什么技能
    机器视觉对位贴合
    Halcon blob分析基本处理步骤
    cross_val_score 交叉验证与 K折交叉验证,嗯都是抄来的,自己作个参考
    50道SQL练习题及答案与详细分析(MySQL)
    MySQL8.0 ROW_NUMBER、RANK、DENSE_RANK窗口函数 分组排序排名
  • 原文地址:https://www.cnblogs.com/cmt110/p/9156403.html
Copyright © 2020-2023  润新知