玩玩破解——小白实战2,巧搜字符串
本帖最后由 yyhd 于 2021-10-16 00:34 编辑搜关键字符串,是破解最通用的方法。
其实别小看这个方法,即使你不再是小白了,也建议你经常搜一搜。
一则方便你分析代码,另外可能会有惊喜!
本次拿吾爱论坛上一个坛友发的CM来玩玩看。
截图如下,对发CM的朋友表示尊敬和感谢!
下面我们来尝试破解吧,GO!
第一步:我们先运行一下,看看输入假码后会发生什么结果。
做为破解者来说,失败的结果才是我们破解成功的起点!
见下图:
有一个“密码错误!”的信息提示。
太好了,只要有反应就好,我们最怕就是什么反应都没有的情况。
第二步:搜字符串
我们把CM拖进OD里,会出现下图:
出现这样的提示,说明这个CM是加过壳的。
作者也说了是加了UPX壳,你可以用PEID查查壳,然后用UPX工具脱壳。
今天,我们不去管壳的问题,我们就带壳进行破解。
你直接点一下“否”就可以,然后F9运行程序,然后转到00401000处。
重要提醒:
遇到带壳的程序,你必须先把程序运行起来,然后转到401000处,再去搜字符串。
原因是你只有把带壳的程序运行起来,程序的代码才能恢复正常
然后你搜字符串,结果见下图:
没有我们想看到的“密码错误”字符串。
晕了,看样搜字符串这个办法不行了!
你脑子里一定在迅速想其他的办法?
还记得刚才到401000处,代码写的是 XOR EAX,EAX,说明这个CM是易语言编写的。
你会想到一些易语言专用的方法,比如字符串比较通杀命令(test edx,3)、按钮事件(FF55FC5F5E)。
当你脑子在高速运转的时候,我在你耳边轻轻的说一句:
别放弃,再试试搜字符串。
你大喊道:不是搜不到吗?要能搜到,我还急什么?
呵呵,你还可以用内存搜字符串的方法!
怎么操作?
第三步:内存搜字符串
看下图:
看到红色箭头指的那个M了吗?你点一下,就看到了这个CM的整个内存。
你点第一行,然后右键,选择查找,在ASCII这行输入“密码”,然后点确定。
搜到后,你再点查找下一个,如此反复操作,你会搜到CM内存里所有包含“密码”的字符串。
看看下图,我搜到了什么?
红色框内,在“密码正确”上面有一个字符串“52popojie”。
呵呵,我们猜想一下,这个会不会是真码呢?
你可以试一下,结果呢?
惊喜吗?兴奋吗?
你可能会说,这不是猜的吗?
呵呵,其实破解很多时候要靠猜,所谓猜,就是试一试。
比如某个跳转,原来跳的,你改成不跳,不是也要试一试吗?
当然,假定此刻我们看不到真码,这种内存搜字符串的方法就无用了吗?
不是!
你刚才是不是在内存里搜到了“密码错误”,你是不是可以对“密码错误”这个内存地址下一个内存访问断点呢?
意思就是当程序读取“密码错误”的时候就断下来,这样是不是也能定位到关键代码处。
总结一下:
当你用中文搜索插件搜不到关键字符串的时候,别轻言放弃。
可以继续用内存搜字符串的方法来试一下,可能有惊喜。
如果在内存里搜到了,你可以看看有没有敏感的字符串,可能就是真码。
你还可以用内存访问断点的方式去定位关键位置。
如果你以前忽略了这个方法,以后可以尝试一下。
再次说明,我是小白,没有什么水平,只是一点心得,想让新人能够更容易入门,粗浅之处,请大神们见谅!
如果您觉得我发的内容确实对您有所帮助,请麻烦您支持一个热心值,进行精神鼓励,也是我继续写下去的动力!
玩玩破解,写给新人看(第一集)
玩玩破解,写给新人看(第二集)
玩玩破解,写给新人看(第三集)
玩玩破解,写给新人看(第四集)
玩玩破解,写个新人看(第五集)
玩玩破解,写给新人看(第六集)
玩玩破解,写给新人看(第七集)
玩玩破解,写给新人看(第八集)
玩玩破解,写给新人看(第九集)
玩玩破解,写给新人看(第十集)
玩玩破解,写给新人看(第十一集)
玩玩破解,写给新人看(第十二集)
玩玩破解,写给新人看(阶段练习1)
玩玩破解,写给新人看(第十三集)
玩玩破解,写给新人看(第十四集)
玩玩破解,写给新人看(第十五集)
玩玩破解,写给新人看(第十六集)
玩玩破解,写给新人看(第十七集)
玩玩破解,写给新人看(第十八集)
玩玩破解,写给新人看(第十九集)
玩玩破解,写给新人看(第二十集)
玩玩破解,写给新人看(第二十一集)
玩玩破解,写给新人看(第二十二集)
玩玩破解,写给新人看(第二十三集)
玩玩破解,写给新人看(第二十四集)
闲谈如何破解软件?
玩玩破解——小白实战1,你也行!
玩玩破解——小白实战2,巧搜字符串
玩玩破解——小白实战3,易语言字符串比较通杀
玩玩破解——小白实战4,冰火两重天
对新人们学习《玩玩破解》系列教程的集中解答
玩玩破解—加点油,再前行! 本帖最后由 双面胶双皮奶 于 2022-2-14 09:19 编辑
简单说一下我的思路吧
先测试了假码 发现需要重启过后再给出结果 那一般会有两种情况:
1. 保存假码到注册表/文件 重启后读取假码验证
2. 用命令行参数运行程序 重启后读取命令行的参数来验证
我先试了第二种方法,因为很快就能知道它是不是这个方式验证的:密码输入123,任务管理器转到详细界面,查看命令行,发现确实是在路径后面多了我们输入的假码
这样的话大概思路就有了:通过下断 BP GetCommandLineA来跟踪到验证块 (我也不知道这个函数,只是百度了一下再在最后加了一个A就可以用了)
那么打开OD开始进行调试:
1. 在选取要调试的文件的时候,下方参数栏输入一个假码
2. 载入成功后下断 BP GetCommandLineA 然后回车,F9运行,在第二次中断的时候开始跟踪
3. F8跟下去过后 会发现他在读取我们输入的假码参数,在两个return后把我们输入的假码和真码对比(52pojie这个字符串是诱导项,真码为52popojie)
4. Nop掉关键跳转 破解成功 (注意关键跳转不是蓝色箭头)
内容精彩,感谢分享。 写的真好,详细! 大神 能科普一下 我的贴子的那个工具么。 重启验证。+时间限制 世界如此奇妙,文章如此美妙! 又学习了一节,谢谢! 奇奇怪怪的技能又增加了 谢谢分享 感谢大佬分享{:1_921:}