如何正确地进入基于x86-64Bit Windows系统的商业软件破解领域

原创 2010年03月31日 21:16:00


[作者]
猪头三
个人网站:http://www.x86asm.com/

[序言]

从事Windows系统下的软件研发,已走过差不多9年的时光,在这段时间里认识不少朋友。在每认识一个新的朋友的时候,我都会被问到:如何学习破解,如何逆向,这类相关的问题。那么这篇文章我将会详细的介绍正确的方式。

[本内容适用领域]

1> 基于x86-64Bit Windows系统下的商业软件软件破解
2> 商业注册码破解
3> 商业软件脱壳
4> Windows版本的游戏破解

[内容贡献者]
fly [Unpack.cn社区]
songyi [Unpack.cn社区]
kings0527 [Unpack.cn社区]

[本内容讨论社区]
[Unpack.cn社区]http://www.unpack.cn/thread-47658-1-1.html

[学习破解/逆向之前的前提基本语言和开发工具]

1> 熟悉 x86-64 CPU体系的汇编语言   [参考书籍: 王爽汇编语言程序设计]
2> 熟悉 C/C++ 语言 [参考书籍: C Primer Plus, C++ Primer Plus]
3> 熟悉 VC DELPHI 等 可利用WIN32 API的开发的工具

[学习破解/逆向之前的自身Windows系统理论]

1> Windows核心编程 [参考书籍: Windows核心编程]
2> Windows系统原理和概念 [参考书籍: 深入解析Windows操作系统]
3> Windows套接字网络编程 [参考书籍: Windows网络编程[绝版]]
4> Windows系统的PE文件格式
5> Windows SDK开发入门 [参考书籍: Windows程序设计(第5版)]

[学习破解/逆向之前的必须经验]

1> 至少有编写程序的经验
2> 至少有用过 DELPHI 或 VC 开发软件的实战经验
......等

[进入破解/逆向之后常用工具]

1> PE文件观察软件 [比如:  PEid]
2> 动态调试软件 [比如: Windbg,OllyDbg]
3> 静态反编译软件 [比如: IDA]
4> 16进制查看工具 [比如: WinHEX]
5> 自动脱壳工具/脚本
......等

[进入破解/逆向之后建议添加调试理论]
1> Windows环境下的调试理论 [参考书籍: 软件调试,Windows高级调试,Windows 用户态程序高效排错]

[进入破解/逆向之后建议添加驱动理论]

1> Windows环境下驱动开发 [参考书籍: Windows驱动开发技术详解,寒江独钓:Windows内核安全编程]

[网友FAQ]
1> 进入破解领域时需要掌握什么语言?
答: 熟悉x86asm C/C++ 即可应付大部分的商业软件

2> 破解和逆向一个软件时看到的都是汇编源码,是不是只用学习汇编就可以了?
答: 要破解和逆向一个软件,只会汇编,是远远不够的。因为现代软件的编写大多数不是基于汇编来编写了,而是基于 C/C++ C# JAVA DELPHI 等高级语言来编码。作为一个破解/逆向人员来说,必须掌握2~3种高级语言,并有实际的开发经验。你才能明白一个软件的程序执行流程和原理,只要明白这些,你才能在茫茫的汇编代码中,找到对应的程序逻辑。这样才能方便你去有目的地去破解/逆向一个商业软件的功能。

3> 要进入破解/逆向领域需要多长时间?
答: 这个要看个人资质,有天赋的话,可以在1年时间基本明白破解/逆向 的思路。 资质不高,又不够努力,那么最好放弃这个领域的研究。破解/逆向是一个深奥的领域,需要一个人的 毅力+勤奋 才能找到这个领域的乐趣。

4> 现在要进入游戏外挂开发,是否还需要具备什么其他特殊技术吗?
答: 基于现在游戏的保护强度加大,要能开发一个合格的游戏外挂,我们必须还要会一些 Windows驱动开发 Windows套接字编程。当然游戏外挂开发是一个很庞大的工程,需要多工种配合。目前来说,以1个人完成一个商业游戏外挂,是非常困难的,但是不排除国内的卧虎藏龙的现象。因为,一个游戏外挂的开发需要涉及几个工种:
1> 游戏程序脱壳
2> 游戏网络通信协议加解密
3> 游戏认证码处理
4> 游戏内存数据搜索修改查询
5> 游戏数据导出封装
6> 游戏程序自我保护机制绕过[NP,HS,XTRAP,TP,APEX等]
......等
所以要认清事实,开一个游戏外挂,必须要面对以上这些繁琐的技术。

[修改补充]

如果你有什么建议和补充的话,请留言跟帖,好让我更加完善这篇文章,以造福更多的初学者。

正确选择数据类型

在C语言里面,
  • huadianyue
  • huadianyue
  • 2014年11月11日 20:59
  • 275

我该如何进入无人驾驶领域?

​KITTCAMP无人驾驶社区股权众筹工作正在火热进行当中,一经开始,很多业内外人士对此事产生了高度的关注。 无人驾驶汽车?不就是不需要人开的车吗!如果只是那样,事情该多么简单。真正的无人驾驶是...
  • KITTCAMP
  • KITTCAMP
  • 2017年10月26日 10:32
  • 75

如何进入大数据领域

大数据
  • qq_35828389
  • qq_35828389
  • 2017年06月18日 16:15
  • 133

火狐 此页面不能正确地重定向

事情发生在访问谷歌的时候。 当在搜索框输入数据之后,提示是这样的: 此页面不能正确地重定向 Firefox 检测到该服务器正在将此地址的请求循环重定向。     此问题可能...
  • loudyten
  • loudyten
  • 2014年05月15日 17:23
  • 15945

我的第一篇博客:我是怎么进入前端领域的

入坑经历 上大学前就一直对电脑方面的东西感兴趣,选专业时大部分选的都是计算机类相关专业,然而最后因为成绩不够,被调剂到了环境工程专业,本来有转专业的机会,但因为大一过于放纵以及其他一些原因,最后还是...
  • dpj514
  • dpj514
  • 2017年12月06日 10:53
  • 119

Qt的LGPL协议是否意味着可以自由用QT开发商业软件?

查过很多资料了,将商业软件与Qt LGPL的关系归结如下: 1. 必须使用Qt的LGPL许可版本; 2. Qt的库必须是动态链接,否则会有不必要的麻烦; 3. Qt的库最好不与产品同时发布[QT...
  • wi100sh
  • wi100sh
  • 2014年12月12日 10:42
  • 947

软件著作权和商业秘密权

王某原是X公司的项目经理,在X公司任职期间主持开发了某软件,但未与X公司签定劳动合同及相应的保密协议。X公司对该软件进行了软件著作权登记并获准。王某随后离职并将其在X公司任职期间掌握的该软件技术信息、...
  • cshilin
  • cshilin
  • 2016年07月07日 16:05
  • 379

快速进入陌生领域: HistCite 使用教程

快速进入陌生领域: HistCite 使用教程 1. 资料来源(致谢)     1) 罗昭锋老师的课程及资源;     2) 折腾不止(杨蔚的博客):http://www.ztever.com/hi...
  • u013894429
  • u013894429
  • 2017年05月04日 09:28
  • 786

国内人工智能行业全梳理

在东西方神话中,上古「智人」通过各种方法制造「人类」这一物种并赋予其智能;而到了中世纪的欧洲,古典哲学家们尝试着用机械符号处理的观点解释人类大脑的活动;直到 20 世纪 40 年代,来自数学,心理学,...
  • geekmanong
  • geekmanong
  • 2016年05月06日 15:26
  • 7436

领域模型和领域对象的概念

面向对象架构模式之:领域模型(Domain Model) 领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领...
  • wlanye
  • wlanye
  • 2016年08月18日 13:52
  • 4313
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何正确地进入基于x86-64Bit Windows系统的商业软件破解领域
举报原因:
原因补充:

(最多只允许输入30个字)