怎么学习逆向工程?

1、具备基本的编程能力,如c、c++,c、c++作为很基础的语言,不要求精通,但是必须会写,写个小工具完全没有问题,同时要对c++的类、继承、虚表虚函数等很熟悉,很多游戏都用c++开发,而且比较庞大,只有基础掌握好,才能更好的从汇编层来读懂代码,很多时候我们看单条汇编指令时完全没有问题的,但是一旦组合起来就会完全不知所云了,通过必须对高级语言对应的汇编语言实现要掌握,比如函数工作的原理,几种调用约定、参数传递方式以及返回值等都必须掌握,这方面网上很多资料。最好能懂python,python作为一种脚本语言,可以用来开发许多逆向调试工具的插件,可以帮我们节省很多的体力活。

2、对windows系统知识比较了解,因为外挂会设计比较多的windows系统知识,因此要对windows底层要一定的掌握,比如windows api,以及外观常用的注入、钩子技术还有windows系统的异常处理机制等,可以到广海论坛学习外挂常用的较按键精灵、加速齿轮以及注入等同用知识,书籍可以可以参见《windows核心编程》,对底层知识了解越多,分析外挂技术也越容易。

3、对逆向分析工具的熟练使用,我们平时工作中面对的是二进制可执行程序,要做外挂我们首先的分析目标程序,因此对常用的调试工具windbg、ollydbg、静态分析工具ida一定要熟练使用。网上教程也比较多,可以到看雪论坛上利用相关的crackme练手学习。

4、掌握外壳原理和技巧,熟悉常见的加解密算法、反调试技巧,我们分析程序时经常会遇到很多加壳程序,因此我们必须对外壳的原理和基本知识比较熟悉,熟练掌握同用的脱壳技巧,同时对各种反调试技巧也必须要很熟悉,在分析程序时,一般会遇到很多加解密算法,因此必须要对各种加解密算法的特征有一定的快速识别能力,这样能更快得帮助我们分析目标程序的核心功能。这方面可以参看《加密与解密》这本书,讲的非常好与详细。以上就是基本的学习思路,逆向和外挂都涉及比较多的知识,学习的东西会比较多,而且周期会比较长,不过相信一句话天道酬勤,只要努力就会有收获,其他方面如网络方面的知识也需要学习,我们学习逆向外挂技术,目的是更多的去除各种外挂,为我们游戏爱好者更好的服务,而不是利用这些技术来破坏游戏的公平。

时间: 2024-10-23 10:57:55

怎么学习逆向工程?的相关文章

MyBatis学习--逆向工程

简介 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml.po..).企业实际开发中,常用的逆向工程方式:由于数据库的表生成java代码.Hibernate也有逆向工程,这也可以减少程序员不少配置的事情,只需要在生成逆向工程文件的时候检查是否符合开发要求即可. MyBatis官网提供了多种逆向工程工具,如:使用eclipce插件.使用java程序方式等.建议使用java程序的

逆向工程普及篇

什么是逆向工程 欲知逆向,先懂正向!!! 我们正常写程序的过程,可以叫做正向,例如:用C++写一个程序,是从C++一层层编译到 0 1代码变成可执行程序的. 逆向工程就是和正向相反的,是从0 1 代码变成人类可懂的代码. 为什么需要逆向工程 随着互联网的发展和网络设备的普及,网络安全越发的重要,骇客的恶意软件层出不穷,所以安全人员需要分析他们的恶意代码,查找一些相关信       息,所以需要逆向分析他们软件的流程等等(因为看不到源码,只能逆向分析). 最近 方程式  那些 0day 漏洞,就是

2019年-下 > 学习计划预安排

计划学习原则 所有学习内容均最终总结为一篇技术随笔博客,以此积累个人知识库. 所有的学习计划安排原则上不做增减,只做提推. 所有的学习计划原则上依旧以安全技术为主,不以开发为主 计划实施 计划时长为五个月(9月~次年1月),共计150余天次 本计划预五个月完成所有学习任务和70%以上的实战操练计划 标为星号的计划安排采用:预安排,但是要根据实际计划进度决定是否安排 开发方面 C语言的阶段学习:[两周] 指针学习和研究探讨 完成C语言方面的IoT编程学习 进一步接触C++的类与对象的了解和编程思想

恶意代码分析实战

恶意代码分析实战(最权威的恶意代码分析指南,理论实践分析并重,业内人手一册的宝典) [美]Michael Sikorski(迈克尔.斯科尔斯基), Andrew Honig(安德鲁.哈尼克)著   <恶意代码分析实战>是一本内容全面的恶意代码分析技术指南,其内容兼顾理论,重在实践,从不同方面为读者讲解恶意代码分析的实用技术方法. <恶意代码分析实战>分为21章,覆盖恶意代码行为.恶意代码静态分析方法.恶意代码动态分析方法.恶意代码对抗与反对抗方法等,并包含了 shellcode分析

[译]如何开始CTF

[译]如何开始CTF Steve Vittitoe 发表于 2014.6.9 译者:wnng 英语水平很差,翻译纯粹是为了兴趣和练习英语. 如果我的翻译能帮到您,那真是太好了. 有不好的地方希望大佬们可以帮我指出来,多谢! 原文地址:How to Get Started in CTF 参考资料:CTF Wiki 原文: 在过去的两周里,我分析了第22届DEFCON大赛里的两道题:"shitsco"和"nonameyet",感谢每一条的评论和提问,其中被提过最多的问题

《iOS应用逆向工程》学习笔记(四)iOS程序类型

越狱iOS中最常见的程序有Application, Dynamic Library和Daemon三类. 1.Application 除了传统意义上的App外,越狱iOS平台上还有两种App形式的存在:WeeApp(依附于NotificationCenter的App)和PreferenceBundle(依附于Settings的App),常见于Cydia平台. 普通App的bundle中存放的是可执行程序和所需资源,而framework的bundle中存放的是动态链接库. 主要关注App中的三个部分

《iOS应用逆向工程》学习笔记(五)初尝越狱插件OpenSSH

首先在越狱机子上装上OpenSSH插件,然后查看设备的IP地址,这里假设为192.168.xxx.xxx. 然后用Mac上的Terminal通过Open SSH连接到设备上(初次登录密码是alpine,必须立即修改,否则任何人都可以连接到你的机子上搞破坏). 连接命令为:ssh [email protected]设备IP地址 修改密码命令为:passwd 例如: $ ssh [email protected] The authenticity of host '192.168.xxx.xxx (

《iOS应用逆向工程》学习笔记(六)使用dumpdecrypted砸壳

本来是打算用AppCrackr砸壳的,结果砸壳都是失败的,开始以为是App的加密太厉害了,后来才知道是因为AppCrackr太暴力了,引起公愤,结果被人投诉招致核心功能被迫关闭了. 幸好在RE官网搜到一个用dumpdecrypted砸壳的帖子.下面是我砸壳的经历. 一.造锤 1.下载dumpdecrypted源码 下载地址:https://github.com/stefanesser/dumpdecrypted/archive/master.zip,接着在Mac中解压. 2.确认iOS设备的版本

《iOS应用逆向工程》学习笔记(二)iOS系统目录结构(部分)

首先下载个iFile,可以用来直观地查看iOS系统的目录结构. 下面记录一些关键的iOS目录结构: /var:"variable"的简写,存放一些经常更改的文件,例如日志.用户数据.临时文件等.其中/var/mobile/Applications下存放了所有App Store App. /Applications:存放所有的系统App和来自Cydia的App,不包括App Store App.越狱的过程把/Applications变成了一个符号链接,实际指向/var/stash/App