yyhd 发表于 2021-9-30 11:27

玩玩破解——小白实战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-13 18:49

本帖最后由 双面胶双皮奶 于 2022-2-14 09:19 编辑

简单说一下我的思路吧
先测试了假码 发现需要重启过后再给出结果 那一般会有两种情况:

1. 保存假码到注册表/文件 重启后读取假码验证
2. 用命令行参数运行程序 重启后读取命令行的参数来验证

我先试了第二种方法,因为很快就能知道它是不是这个方式验证的:密码输入123,任务管理器转到详细界面,查看命令行,发现确实是在路径后面多了我们输入的假码


这样的话大概思路就有了:通过下断 BP GetCommandLineA来跟踪到验证块 (我也不知道这个函数,只是百度了一下再在最后加了一个A就可以用了)

那么打开OD开始进行调试:

1. 在选取要调试的文件的时候,下方参数栏输入一个假码


2. 载入成功后下断 BP GetCommandLineA 然后回车,F9运行,在第二次中断的时候开始跟踪


3. F8跟下去过后 会发现他在读取我们输入的假码参数,在两个return后把我们输入的假码和真码对比(52pojie这个字符串是诱导项,真码为52popojie)


4. Nop掉关键跳转 破解成功 (注意关键跳转不是蓝色箭头)

bjxiaoyao 发表于 2021-9-30 12:03

内容精彩,感谢分享。

w83511326 发表于 2021-9-30 12:11

写的真好,详细!

杜先森 发表于 2021-9-30 12:25

大神 能科普一下 我的贴子的那个工具么。 重启验证。+时间限制

hanlaoshi 发表于 2021-9-30 12:32

世界如此奇妙,文章如此美妙!

xiaoxue58178 发表于 2021-9-30 12:56

又学习了一节,谢谢!

yyb1813 发表于 2021-9-30 13:39

谁在等我 发表于 2021-9-30 14:22

奇奇怪怪的技能又增加了

zqlong1988 发表于 2021-9-30 14:42

谢谢分享

shc1221 发表于 2021-9-30 14:53

感谢大佬分享{:1_921:}
页: [1] 2 3 4 5 6
查看完整版本: 玩玩破解——小白实战2,巧搜字符串