本系列文章为玩玩破解,写给新人看学习笔记。

万事开头难

  • 1 什么是破解
    • 1.1 破解对象
    • 1.2 破解什么
  • 2 怎么破解
  • 3 如何验证关键位置
  • 4 破解小实战
  • 总结

1 什么是破解

学习破解要知道我们的目标在哪?我们要去破解什么?

1.1 破解对象

破解的对象是软件的使用验证
什么是使用验证?
比如你花了一个月写了一个软件,你想让其他人花钱才可以用,你怎么办?当然,你要给你写好的软件再增加一个使用验证,就像你租房,你当然要先上锁,谁花钱租房,你就给他钥匙。锁就是房子使用的验证。

1.2 破解什么

我们破解的破的不是可用的软件,而是限制使用软件的那把锁。所以找到锁的位置和锁的构造才是破解的关键!
锁的位置称为关键位置验证,锁的构造称为验证机制。
所以,学习破解就是学两步,第一步是学习如何找到关键位置,第二步时能够分析出验证机制。

2 怎么破解

工欲善其事必先利其器。
在破解的过程中,破解的工具有很多,最基本的有三个。
PEIDDIE64OD
PEID的作用是查软件又没加壳。

DIE64的作用是识别软件是什么语言写的,通常来说有C、VC、VB、DELPHI、易语言等。

OD的作用是分析软件,通过分析来找出验证的关键位置,分析验证机制。

在我们破解的时候,三个软件以此上阵就可以了。

3 如何验证关键位置

首先我们换位思考下,如果是我们要对自己的软件增加使用验证,我们最简单的做法就是在我们的软件窗口打开之前,增加一个窗口,这个窗口我们叫做验证登陆窗口,必须输入正确的密码后登陆窗口消失、软件使用窗口打开。
这个验证登陆窗口怎么实现验证的呢?就是当我们输入密码以后,然后点击登陆按钮,会产生两种结果,成功的结果和失败的结果。
我们破解的目的当然是要获得成功的结果。我们先看一下这个验证流程。获取我们输入的假码——真假码比较——结果。换句话说验证流程可分为三步:验证前、验证中、验证后。这三步,关键位置当然是验证中,这个位置是真假码的比较。如果能直接到达第二步当然是最好,可惜很难直接找到,因为一个程序里面有很多不同的判断。我们要找关键位置是不是必须依靠线索。最直接的线索就是验证后的不同结果。所以我们搞破解,最常用的办法就是通过验证后的结果来反查到关键位置。一种结果是有提示的字符串,比如“成功”“失败”等,我们的破解思路就在程序代码中先定位到这些字符串,然后往前找关键比较代码。如何定位这些字符串呢?OD里面有一个“中文搜索引擎”工具,可以用于查找定位。一种结果是弹出正确或者错误的对话框。你可以搜索对话框里面的字符串,你还可以在程序中定位弹出对话框的代码,然后再反查到关键位置。如何定位弹出对话框呢?编程中弹出对话框要用到一个命令,叫做MessageBox,你在这个函数上下断点,让程序暂停,然后再反查即可。通过结果来反查是我们最主要的做法,对于不同的结果,要用不同的办法。比如有提示字符串,有错误对话框,有窗口,让程序退出等等。最怕的是没有错误结果,那我们就需要从验证前的线索入手了。

4 破解小实战

了解了这么多,来做个小小的实战吧。
第一步,把要破解的软件拖到PEiD上。
图一为无壳,图二是有壳。


我们今天实战这个无壳的程序。(柿子要挑软的捏)

第二步,把这个无壳的程序拖到DIE上。

其实,我们在第一步的时候就发现了该程序是由VC编写的,对于无壳的程序就不需要这一步操作,直接拖到OD里面分析就完事。

第三步,拖到OD里面分析。
首先,我们这个程序是有验证的,输错了会提示登陆失败。

把程序拖到OD分析。

然后右键—>中文搜索引擎—>智能搜索

找什么呢?就是去找刚才登陆失败界面弹出来的提示消息。
Ctrl+F调出搜索框进行搜索

找到了!这就是我们要找的关键程序代码处。然后双击进去
观察左上角框中代码,我们可以看到有CALL指令,还有JMP指令。

我们虽然找到了关键代码的位置,但是这段代码是验证后的结果的位置(因为我们搜的是登陆失败的字样,然后找到的代码)。
我们要找的是验证中的代码的位置。所以我们要往上继续找关键代码。

我们在上面看到了“恭喜你,你破解成功了”的字样,当然,这也是验证后的结果代码,但是我们在上面看到CALL指令和JE指令。

JE指令是条件跳转指令,当我们选中这条指令,它就会跳到下面去,所以这里就是我们要找的关键代码位置。
我们把它修改为NOP,NOP是空指令,当代码执行到这是无论如何都会继续往下走,执行登陆成功这段代码。
在JE指令那一行右键,然后选择二进制,选择用NOP填充。

修改成功

再次右键,把修改后代码保存为可执行文件。

点击左上角运行,输入账号和密码,破解成功!

总结

  1. 破解软件的第一步就是要找出突破口,验证后的结果是最常用的。拿到一个软件后要先试着登陆一下,看看登陆验证后出现什么结果,是出现了字符串,还是信息框,还是其他,这些就是突破口。
  2. 通过突破口找到验证后结果的代码位置后,找位置上面的跳转,然后修改跳转,目标就是“无论如何跳向成功,无论如何跳过失败”。
  3. 关键跳转上面不远处就是验证中的关键代码位置,如果你要分析验证机制或者要找正确的账号密码就在那里。

玩玩破解 01——入门相关推荐

  1. 【分享】 [教学]破解完全入门篇

    [分享] [教学]破解完全入门篇 3PtVw f   q85y)_c?   #r."#)pD   第一章--前言 /.$hZ$ q   好多哥们儿说看教程跟老大的书都看不太明白,所以,我尽量 ...

  2. 暴力破解测试入门到放弃

    ▼ 更多精彩推荐,请关注我们 ▼ 免责声明:本文所用所测试的环境均为自己搭建并提醒小伙伴们切勿对未授权的系统进行测试. 本文原创作者:3s_Nwgeek 原创投稿详情:重金悬赏 | 合天原创投稿等你来 ...

  3. javaSE学习笔记01 入门篇

    javaSE学习笔记01 入门篇 java语言概述 Java背景知识 java是 美国 sun 公司 在1995年推出的一门计算机高级编程语言. java早期称为Oak(橡树),后期改名为Java. ...

  4. 破解完全入门篇(转载)

    转自CCU论坛 exky大作 第一章--前言 好多哥们儿说看教程跟老大的书都看不太明白,所以,我尽量把话说到最容易理解的份上,本文写给那些刚入门和尚未入门的朋友们... 目录 no.1-------- ...

  5. 破解完全入门篇 第六章--爆破软件

    第六章--爆破软件 爆破其实很简单,最起码比你能一下把你家的牙膏给全挤出来要容易多了.你只要先到大街上买几根雷管,然后放到你的显示器上再点着就OK了(不难吧,记的点着后跑远点儿) 爆破的原理我也说过了 ...

  6. 【ECharts系列|01入门】 从入门到天黑【入门级教程实战】

    ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求. ECharts 遵循 Apache-2.0 开源协议,免费商用. ECharts 兼容当前绝大部分 ...

  7. 三天时间, 无线破解从入门到放弃

    最近接了个奇怪的活儿, 有点儿偏门, 故事是这样的, 一个好哥们想破解一个无线的收发器, 我正好手上有个千年金刚钻: 一直在吃灰, 心想正好找机会玩玩. 于是让他们把东西发过来, 我瞅瞅先. 好家伙, ...

  8. 破解完全入门篇,第七章-寻找软件的注册码

    第七章-寻找软件的注册码 我们来寻找软件真正的注册码! 寻找软件的注册码就像你小时玩的躲猫猫一样,简单又有趣,虽然后来你会不这样觉的 好的,我们开始. 我不知道你有没有明白我前面在原理中讲的那些东西, ...

  9. 破解完全入门篇,第五章--破解原理

    第五章--破解原理 从本章开始,我们来一步一步学习Crack软件(80%读者昏死过去,且不省人世...另有20%在寻找附近可以用来打人的东西) 不可不说一下学习破解的三个阶段: 初级,修改程序,用ul ...

最新文章

  1. docker的网络架构配置
  2. Android实现网页的放大与缩小
  3. python PyQt5 QtWidgets.QWidget.size()函数 QSize
  4. 数据结构学习笔记(五):重识字符串(String)
  5. 【最新合集】编译原理习题(含答案)_8-10语法制导翻译_MOOC慕课 哈工大陈鄞
  6. Linux内核0.12完全注释
  7. 循环神经网络_小孩都看得懂的循环神经网络
  8. MySQL 聚类合并算法_聚类算法-近邻聚类算法
  9. java基于ssm的房屋租赁管理系统
  10. 物联网:互联网的终结者?
  11. position:relative的用法
  12. ubuntu借助windows的网络共享上网
  13. PHP微信商户支付 - 企业付款到零钱功能(即提现)技术资料汇总
  14. 两片74161实现60进制_用二进制计数器集成芯片74161设计:(1)60进制计数器 (2)6×10进制计数器 (3)10×6进制计数器的实验思路...
  15. 【Java】基于TA-Lib技术分析指标研究
  16. 浙江大学SEL实验室
  17. 直接存储器存取(DMA)有哪3种工作方式?
  18. echart象形图-三角锥形/山峰形/三角形--柱子渐变色,x轴换行显示,加单位显示
  19. access令两列运算得到新属性_大学Access期末各章课后复习题
  20. 网络运维基础知识梳理

热门文章

  1. 网页图片上传到服务器
  2. android充电指示灯颜色修改
  3. 华为交换机ERROR DOWN解决办法
  4. pychram+python 看源码: 按住crtl,点击函数
  5. WordSequence API
  6. CRM一站式管理,助力健身会所C位出道!
  7. 为企业微信“服务商应用”更改微信插件中的消息弹出样式
  8. Adobe Audition CC 2019 下载安装教程
  9. VS2015编译时“ The POSIX name for this item is deprecated.”的分析
  10. Worktile 中百万级实时消息推送服务的实现