真理教教会

学习是美德,知识是财富,求道是目的

0%

wanwan破解-心得

这是吾爱破解上的软件破解入门教程, https://www.52pojie.cn/thread-1358649-1-1.html
浅尝辄止了一下,记录一点小小的收获

软件破解是逆向工程的一个分支,是绕过软件创作者的使用限制的技术
要破解的有两个方面:

  1. 注册验证
  2. 反调试

注册验证

也就是向软件证明自己的身份,来告诉创作者:我是付过钱的

验证方法有:本地验证和网络验证
本地验证又有:

  1. 重启验证:注册不过期,例如使用注册码后,软件在注册表创建“已注册”的标志,每次软件打开都会先读取一次注册表
  2. 非重启验证:注册会过期,例如账号密码验证,每次重启软件都要重新输入账号密码

这套教程只讲解本地验证的破解方法

反调试

其手段大致四类:

  1. 通过环境查看手段,判断是否有调试器打开,例如看进程
  2. 对用户正在使用调试器的行为进行动态识别,是不是正在用调试器对软件进行调试和修改
  3. 对软件完整性进行检测,例如把加壳后的软件解壳,软件的体积和内容发生更改后,会被检测到
  4. 干扰处理:就是让你看不懂,加壳、加花、虚拟化代码

如何破解?

用反汇编器和调试器下断点,找关键代码,并进行适当的修改——打补丁
常用的工具例如ida和ollydbg
然后,要用吾爱破解专用ollydbg,因为有插件

怎么下断点?

  1. 关键字
    软件的内容分为指令和数据,在指令和数据区搜索“登录失败”之类的关键词就能锁定关键代码的位置
  2. api
    通常软件的弹窗、按钮等的功能都是对系统api的调用,而不是软件开发者花时间自己的写的
    搜索对应的api,下断点
    动态调试这个软件
    就能找打关键指令的位置

找到关键指令了,下一步?打补丁

阅读它,你需要能看懂汇编代码,你需要了解寄存器,你需要着重学习push、pop、call、ret、jmp和各种变体指令,如果你能懂call stack就更好了
PS: call stack 这个wanwan破解并没有教,如果你感兴趣,你可以穿越到几个月前访问begin.re学习这个知识,它下架了:(

假如这是个要本地登录的软件
你可能看指令的时候,看到“登录成功”和“登录失败”的弹窗指令,它们挨的很近
你只需要找到附近的je指令(也可能是jle或jge)改成jmp,跳过“登录失败”的弹窗指令,来到“登录成功”的指令

这会导致什么结果呢?你怎么登录都会显示“登录成功”,因为你无法“登录失败”

总之

破解的流程是:
找关键代码》分析〉跳过失败的指令》破解成功

我不太想在软件破解上更进一步,卖破解软件是要吃牢饭的

一杯咖啡钱能温暖一个人的心