飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 10629|回复: 20

[转贴] 我要的不多,只要爆破而已

[复制链接]

该用户从未签到

发表于 2006-5-11 18:56:09 | 显示全部楼层 |阅读模式
我是破解爱好者,但没有汇编基初,年龄也大了(35),纯爱好.我不是不想达到会算法作注册机程度,而是根据自身的情况,觉得不太可能
如果大多数软件我会爆破,我就很知足了(如能达到.obi-one 兄的水平,我就已经很高兴了)从网上下载了一篇文章,很受启发.

    对于暴破新手都有一个问题,暴破要如何准确找到下手的地方呢?我觉得关键是要理解作者的思路。比如一个程序,如果象书本上的例题程序一样,每一句用中文注释,当然是很好理解的。但对于一大堆的反汇编出来的代码,如何化微观为宏观,将把散乱的汇编代码划分成一块块的可以理解的、可以用中文注释的语句块,这就需要对汇编语言的理解和破解经验了。汇编语言可以边破边学,如果经验不足,看不出来,那可以背几种定式,我记得好象是豆豆兄前一阵有篇文章作了总结了,大家可以看一下。
不管是什么程序,只要是要求注册的,肯定要有判断注册特征(比如注册表里有没有注册信息或者某个保存注册信息的文件里保存的信息是否合法),程序中就一定会有(注意,是一定有)注册信息的计算比较过程,因为作者写程序时不可能未卜先知,知道哪个用户会注册,哪个不会注册,所以他的程序的每份拷贝里肯定都要有这个验证过程,所不同的是不同的程序有的隐藏得较深,有的隐藏得很浅罢了。这就是暴破能够成功的理论依据!!!

  一般常见的有两种形式(注意:可能用功能类似的指令替换,比如lea形式可以换成mov形式,反正是赋值,同理,寄存器使用也是这样,可以换成其它的寄存器)

  a)这种方式在计算程序段中计算出结果后直接比较处理,程序流程如下:
   取你输入的注册码到 eax
   计算注册码    <===可能在这里直接计算或者调用计算子程序计算,都是这一类
   把计算的注册码地址放到 edx
   比较
   相等则跳转到正常运行程序段    <===这里改成无条件跳转就OK
   出错提示,向后跳转让你重新输入或直接跳到退出
  正常程序段:
   XXXXXXX
  这种的改法是找出(或者大胆猜测)注册码正确时的跳转方向,直接修改成无条件跳到这里,就OK了。

  b)这种方式不是那么直接,会有一段公用程序来计算,计算的结果不返回,公用程序仅返回一个合法与否的标志(一般是放在ax/al/bx/bl中的一个值,常见是0或1),这是这一类的特点。偶的作业2就是这一类的一个例子。流程如下:
   取你输入的注册码到 eax
   调用计算公用子程序
   比较返回值是否为1
   相等则跳转到正常运行程序段   <===*
   出错提示,向后跳转让你重新输入或直接跳到退出
  正常程序段:
   XXXXXXXXX
  要暴破这种方式的,有人可以马上会说直接在它的比较下面的条件跳转je xxxx或jne/jg/jb xxxx处(打*号处)改成跳到正确的入口就OK了,是啊,有的程序确实这样,但这样改未免眼光太短浅了,你只是解决了眼下这个判断,往往程序会在开始运行时或者使用某些关键功能的地方还有类似的判断,当然也可以用同样的方法,把暗桩一个一个拔掉,不过这样不是费时费力吗?也不符合破解艺术化的要求。好比菜鸟可能要用一吨TNT来炸掉一栋摩天大楼,高手用2克就够了,那就是技术高低的区别了。真正完美的破法应该是看看程序用了哪个寄存器或者变量传回参数的(很简单,看下面紧跟的指令比较哪个就是了),然后跟到计算子程序里,中间计算过程如果闲得没事当然可以读一下,不过一般偶是不怎么读的,直接往下找,找到返回处,向上几条指令,找一条看起来顺眼的,修改它使子程序的返回址永远合法,就OK了。
  所谓看起来顺眼,是要求一:这条指令不能是call或jmp je之类的跳转指令,否则改它可能会影响程序的流程的;二是这条指令要占有足够的位置,足够是视你前面看的传回参数的变量或寄存器而定,比如要用BL传回0或1,那只要2字节就够了,把它改成“B0 01”[就是mov bl,01];如果要求用bx传回,那就多了,一条指令不够用的话,那只好找两条,如果位置比需要的多的话,剩下的用90补。

唉,码字好辛苦啊,算了,留些下次再说吧,今天就到这里



其实大家不要用另类的眼光来看暴破,破解是的目的是解除软件的保护,能正常使用软件的完全功能。为了达到这个目的,采用暴破是一种手段,采取研究注册码算法然后做出注册机是另一种手段,并非自古华山一条路的,只要能迅速、准确地达到目的,就是好方法。
有人担心暴破因为对原程序作了改动,会影响程序的正确结果,其实这种担心有道理但不必要,因为要实现完美的暴破,必须要对原软件流程和运算过程正确理解的基础上(同样理解原软件的注册算法也一样),对程序的关键判断点进行有选择的修改(比如有几处判断,在哪里改动最优、改动最少、改动最合理),只要满足这样的条件,可以肯定暴破的程序在正常使用中和算号注册的程序没有不同。所以请想当暴破手的同志要端正观念,不要以为暴破就不用读程序的算法,就很轻松。

再就是暴破也有其独到的用处和独到的功能。比如要上网验证注册码的程序,算号法算出的注册码也没办法,只能是暴破了,不信各位可以试试flashfxp,呵呵,就算算法100%正确,还是要被连网验证挡在注册成功的门外。而且暴破的程序,只要选择适当的地方改动,甚至可以跳过验证注册过程,加快程序运行的速度。

对于某些特别BT的作者,大家可千万别认死理,非要把他的算法整出来。否则会掉进作者的陷井里,万劫不复的。比如我举例写一程序,为描述方便,仅用中文描述,注册码分四段,每段五位,形如*****-*****-*****-*****。
  程序开始
  。。。。
  提示你输入注册码,并获得你输入的注册码

  取第一段五位
  ((((((第一位asc值 XOR 86H)+第二位)左移2位)-32)+第三位*5)右移3位-(第四位右移一位)+(第五位 and 68)//就这一过程写成汇编有一大段,你要是想读,就把你累得够呛了。保存结果一
  真正计算这五位的计算过程,保存结果A
  结果一 XOR 结果A  //这里是坚定你继续往下读的信心,计算出来的结果还是有用的嘛,有人甚至窃喜成功在望了

  取第二段五位
  一段同样复杂的计算,保存结果二  //恭喜你还能挺过来
  真正计算这五位的计算过程,保存结果B
  结果一 XOR 结果A
  结果二 XOR 结果B

  取第三段五位
  一段同样复杂的计算,保存结果三  //还没吐血吗?快了吧
  真正计算这五位的计算过程,保存结果C
  结果二 XOR 结果B
  结果三 XOR 结果C

  取第四段五位
  一段更加复杂的计算,保存结果四  //读完还没晕死的话,可能是神了
  真正计算这五位的计算过程,保存结果D
  结果三 XOR 结果C
  比较结果A、B、C、D,看注册码对不对,作相应跳转

大家看出来了吧,上面有几段用于迷惑跟踪者的计算,结果好象有用,但要注意啊,xor两次就是还原了啊!!呵呵,看你以后还敢不敢读算法啦,当然上面的迷惑计算段还可以搞得更加复杂,效果也更好。我想世界上比偶更毒的还是大有人在的,嘻嘻。如果是暴破可以大胆直接跳过上面的计算,直接在比较结果片改动1到2个byte,就可以收工了。

至于暴破好还是算号好,我觉得完全没有必要来争论,因为各人习惯不同,反正用得顺手就好了。同时也给大家提个醒,不要认死理被人家拖到陷井里哦。



------------------------------------------------------------------ 本教程集由北极熊[DFCG]整理,仅供研究学习使用,请不要用于非法目的!
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-5-11 20:10:49 | 显示全部楼层
    好比菜鸟可能要用一吨TNT来炸掉一栋摩天大楼,高手用2克就够了,那就是技术高低的区别了。


    ——————————————————————————————————————

    兄弟说得好呀!要是有多些例子就好啦!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-2-22 14:51
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2006-5-11 21:30:54 | 显示全部楼层
    还是根据因材施教的好,
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-5-12 08:42:50 | 显示全部楼层
    /fad/fad同飘云的一个教程(爆破位的灵活运用)有异曲同工之妙!fjnhwwx 兄,我们是互相学习而已,我真的水平一般,实话说了吧,我是做鞋子开发的,你们福建就有好多哦!对破解很感兴趣,今年2月底才开始学习,到网上找教程看人家为什么就那么轻松但自己却那么难!真是灰心啊!在OCN混了1个月,屁都没学到,那里的人都很屌对菜鸟更是不屑(所以到现在还很讨厌OCN),后来4月初转到飘云阁来偷书,这里有好多的高手和好多的教程,版主们都很热心,还算学了一点点东东。学破解有一点个人见解,不对不要笑:
    多看教程!!!!先不要学手动脱壳,(基本上大半的壳都有脱壳机)而是先破解一些简单的软件,提高自己的信心,先爆破成功了再尽量把明码比较的搞懂,关于算法没有一定的汇编水平,是不行的!对于这种东东,我们菜鸟的利器就是爆破!!/fad

    [ 本帖最后由 obi-one 于 2006-5-12 08:56 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-8-31 07:08
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-5-12 19:43:13 | 显示全部楼层
    有点意思~~支持~我们就应该学习这个
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-9-3 09:27:32 | 显示全部楼层
    这里的斑竹还是比较热心,以前去其他论坛,点击的多,却几天也没一个回复
    叫初学者破解组织是比较合适
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-9-4 18:15:34 | 显示全部楼层
    我顶,原来还有这么好的文章还没顶过,看了下时间2006-5-11 18:56  ,汗死!

    看来PYG里还有N多好文还没发掘,可惜咯~

    回首快一年的破解之旅,感觉学得很多,也学得很少。

    多就是老是听别人说,但自己却不做;少呢,发现自己离高手还很遥远,很遥远。。。

    我感觉我个人很懒,其实我对PJ的兴趣越来越暗淡了,不知道为什么。哎~

    很佩服obi-one对破解的浓厚兴趣,和猫兄、黑夜兄的实践能力,时间分配的很好,真的,真的很佩服~

    不知道哪一天我才能恢复以前的兴趣和分配好时间呢?

    呵呵,还是那句老话,开心就好!

    [ 本帖最后由 snetluck 于 2006-9-4 18:21 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2024-10-30 21:11
  • 签到天数: 453 天

    [LV.9]以坛为家II

    发表于 2006-9-5 02:40:33 | 显示全部楼层
    原帖由 obi-one 于 2006-5-12 08:42 发表
    /fad/fad同飘云的一个教程(爆破位的灵活运用)有异曲同工之妙!fjnhwwx 兄,我们是互相学习而已,我真的水平一般,实话说了吧,我是做鞋子开发的,你们福建就有好多哦!对破解很感兴趣,今年2月底才开始学习,到 ...

    晕,怎么是这个印像?
    OCN成员现在有点忙,基本上是潜水了,版主长期不在家,新进成员也不太喜欢发贴,所以才这么冷清,但不是你所说的那样呀,以前可不是这样的哟。只是大家都忙而已。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-12-18 17:37
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2006-9-6 22:20:01 | 显示全部楼层
    我也只想学这些个东西就够了
    也是自身原因呵呵
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    前天 12:05
  • 签到天数: 970 天

    [LV.10]以坛为家III

    发表于 2006-12-26 20:01:08 | 显示全部楼层
    谢谢,同意这个观点,没有好的基础要弄咚算法有点困难。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表