zoukankan      html  css  js  c++  java
  • 逆向工程


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

    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  金玉其外败絮其中:百度杀毒“雪狼引擎”逆向分析

     

  • 相关阅读:
    Codeforces Round #344 (Div. 2) C. Report 其他
    Codeforces Round #344 (Div. 2) B. Print Check 水题
    Codeforces Round #344 (Div. 2) A. Interview 水题
    8VC Venture Cup 2016
    CDOJ 1280 772002画马尾 每周一题 div1 矩阵快速幂 中二版
    CDOJ 1280 772002画马尾 每周一题 div1 矩阵快速幂
    CDOJ 1279 班委选举 每周一题 div2 暴力
    每周算法讲堂 快速幂
    8VC Venture Cup 2016
    Educational Codeforces Round 9 F. Magic Matrix 最小生成树
  • 原文地址:https://www.cnblogs.com/cmt110/p/9156403.html
Copyright © 2011-2022 走看看