玩玩破解——小白实战3,易语言字符串比较通杀
本帖最后由 yyhd 于 2021-10-16 00:35 编辑当遇到易语言编写的软件,采取字符串比较通杀命令是破解的捷径!
注意:这种方法仅限易语言程序。
我们今天就一起来玩玩。
我们拿吾爱论坛上的一个CM练习一下,见下图,感谢CM作者。
我们怎么操作呢?
这个方法很简单。
把CM拖进OD,然后转到401000处。
鼠标右键选择“查找命令”,输入“test edx,3”。见下图:
点“查找”后,到下图这个位置:
看到红色方框里的代码了吗?
只要是长成这个样子的,就是易语言字符串比较的关键位置。
你可以在test edx,edx这句代码上下一个断点。
当你输入假码登录后,很多情况是这样的:
程序暂停下来,你可以在寄存器区看到真码和假码。真码放在ECX里,假码放在EDX里。
我们这个CM,也可以断下,但是看不到真码。
别灰心,这个方法还非常有用。
怎么办呢?
我们想一想,这个代码段的目地就是进行字符串比较。
那么,比较以后是不是要有一个比较的结果。
相等会返回真,不相等返回假。
好,我们现在在段尾(RETN)下断。
我们不知道输入假码后,程序会走到哪一个RETN。
所以,我们先把程序运行起来,
然后两个RETN都先下断。见下图:
当我们输入假码登录后。程序暂停,见下图:
此时,我们看OD右上角寄存器窗口。看到下图:
此时,EAX=1。(函数的返回值放在EAX里)
意思就是如果输入假码,比较后返回的结果是EAX=1。
我们可以猜想一下,如果我们让返回的结果变成EAX=0,是不是就改变了比较的结果。
怎么改呢?
在00405327处改为MOV EAX,0
在0040532C处改为RETN。
这么改的意思就是当程序执行到比较字符串这段代码的时候,
我们直接就给EAX赋值为0,然后就返回,不执行下面具体的比较代码了。
我们要的就是一个比较的结果,对吗?
重新用假码登录一下,试试看?
你会看到:
总结一下:
1、遇到易语言程序,字符串比较通杀命令是个捷径。
2、对于验证CALL而言,非常省事的办法是在段首直接修改EAX的值。这样就不用去修改多处的跳转了。
你试着做一下,如果成功了,截图和大家分享一下吧!
补充:
刚在论坛上又看到一个CM。
用以上的方法,试试看?
呵呵,又成功了!
这个CM断下来后,可以直接看到真码。
还记得真码放在哪里吗?对,ECX的值。
这个方法是新人们破解易语言程序的利器。
我把两个CM都放在附件里,大家玩玩看。
如果您觉得我发的内容确实对您有所帮助,请麻烦您支持一个热心值,进行精神鼓励,也是我继续写下去的动力!
玩玩破解,写给新人看(第一集)
玩玩破解,写给新人看(第二集)
玩玩破解,写给新人看(第三集)
玩玩破解,写给新人看(第四集)
玩玩破解,写个新人看(第五集)
玩玩破解,写给新人看(第六集)
玩玩破解,写给新人看(第七集)
玩玩破解,写给新人看(第八集)
玩玩破解,写给新人看(第九集)
玩玩破解,写给新人看(第十集)
玩玩破解,写给新人看(第十一集)
玩玩破解,写给新人看(第十二集)
玩玩破解,写给新人看(阶段练习1)
玩玩破解,写给新人看(第十三集)
玩玩破解,写给新人看(第十四集)
玩玩破解,写给新人看(第十五集)
玩玩破解,写给新人看(第十六集)
玩玩破解,写给新人看(第十七集)
玩玩破解,写给新人看(第十八集)
玩玩破解,写给新人看(第十九集)
玩玩破解,写给新人看(第二十集)
玩玩破解,写给新人看(第二十一集)
玩玩破解,写给新人看(第二十二集)
玩玩破解,写给新人看(第二十三集)
玩玩破解,写给新人看(第二十四集)
闲谈如何破解软件?
玩玩破解——小白实战1,你也行!
玩玩破解——小白实战2,巧搜字符串
玩玩破解——小白实战3,易语言字符串比较通杀
玩玩破解——小白实战4,冰火两重天
对新人们学习《玩玩破解》系列教程的集中解答
玩玩破解—加点油,再前行! 这样的破解方法有很大的弊端,那就是破坏软件的功能执行流程。
比较字符串是一个比较常用且重要的功能
这样是可以进行一些破解行为但是软件的运行流程也会受到很大的影响
你会发现你用这方法破解的软件有很大一部分执行各种出错..
跟着楼主跑了一遍,结果如下图显示,无法破解:
然后尝试着用其他的方法去做,还是无法破解:
然后就是一直在call里面循环了,一直找不到破解的点,不知道其他人有没有遇到这种情况
感谢大佬
感谢大佬的扫盲文章。。。。。。 仿佛回到了5年前,1字节爆破,,,,,,追忆 感谢大佬分享{:1_921:} 学习了 ,以后试试 大佬,OD的时候 ,直接被软件拉黑+自动删除软件,该从何下手啊 感谢大佬,非常感谢 身为小白的我正在看第十集教程受益匪浅,非常感谢 感谢分享 谢谢 感谢楼主