xh4528 发表于 2016-1-4 19:09

xx统计2.0-破解思路

本帖最后由 H夜 于 2019-6-6 18:20 编辑

百度搜的词频工具2.0,论坛有追码的,可以去看看那帖子,这个帖子只是分析暴破方法,对于一些没有追到注册码想暴破的软件提供一种思路

查壳是VB写的,无壳,直接进行下面步骤

一:注册暴破
打开后发现要注册,说明带启动校验,随便输入注册码,提示注册失败,用OD查看字符串,可以找到 注册成功和失败


从"注册失败"进去往上点有个跳过失败的没有跳转,将je改成jmp,跟着jmp往下看,又有个跳转跳过了成功,将这个je,nop掉,保存文件为第一步.exe


打开第一步.exe,先试试功能看看有什么什么限制,当点击"词频统计",弹出未注册,说明这里校验了


OD打开上一步修改后的程序,OD下BP rtcMsgBox断点,输入注册码,提示成功,断下来了,这是注册的窗口,直接f9运行,进到主界面
然后尝试刚才提示未注册的地方,断下来后,在堆栈窗口第一行按回车键,返回到用户代码


往上看看是哪一步跳到这,或者跳过这
找到了一个跳过这的跳转, test了 43202c的值,选中43202c常量这一行,右键--查找参考-地址常量,可以看到很多
地方test了这个常量值,再来判断怎么跳转,可以猜测每次都是校验43202c的值


二,启动校验暴破
OD重新载入程序,右键--查找--所有常量--输入43202C--确定,然后右键--在每个命令上设置断点,f9运行程序



00425AAA   .66:A3 2C20430>mov word ptr ds:,ax
断到这一步,是赋值,继续f9

00425D9D   .0FBF0D 2C2043>movsx ecx,word ptr ds:
断到这一步,然后f8单步走

00425DA6   . /0F85 A1020000 jnz 第一步.0042604D
发现00425DA6有大跳转,先不跳f8看看

00425E85   .FF92 B0020000 call near dword ptr ds:                     这个是弹出注册界面
结果走到这一步,弹出了启动注册窗口,说明启动校验,那么我们把00425DA6的jne改成jmp,保存文件为第二步.exe


三:程序内功能校验暴破
打开第二步.exe,发现启动注册的窗口没了,说明方法是正确的,od打开第二步.exe

右键--查找--所有常量--输入43202C--确定,然后右键--在每个命令上设置断点,f9运行程序,几次f9后启动到主页面

我们一个功能一个功能试,只要断在没有弹窗的地方就继续f9,注意观察程序是运行,还是被OD断下来

从上面步骤发现点击"词频统计"弹出注册框,开始

先添加文件,这一步会断下来几次,不用管直接f9

再选择输出路径,点"词频统计",断下来后单步f8,每到跳转时,先观察下跳转里面的内容,再决定跳不跳

00412881   . /0F85 0F030000 jnz 第二步.00412B96
到这个跳转,发现里面代码出现了"您现在使用的是未注册试用版",所以一定要跳,把jnz改成jmp,f8跳过去再f9继续

0041CE10   .0FBF05 2C2043>movsx eax,word ptr ds:
又断到了这

0041CE19   . /0F85 20010000 jnz 第二步.0041CF3F
f8到这个跳转,先看看跳转里面代码

0041CEF8   .FF91 B0020000 call near dword ptr ds:                     这个是弹出注册界面
发现有一行这个代码,这个不就是上面发现的弹出注册界面代码么,所以0041CE19的jnz改成jmp,f8跳过去,再f9运行

0041CE10   .0FBF05 2C2043>movsx eax,word ptr ds:
f9后发现又断到了这个地方,再f9还是这,说明有个循环,再看软件主界面的进度 %,发现每按一次f9,进度就+1%,所以先把这个断点f2取消掉,再f9运行

0041EBEA   . /74 17         je short 第二步.0041EC03
现在观察程序主界面,没有跳出注册界面,直接开始转换了,到99%od断下来了,f8到跳转,发现je是跳到选择前10行,所以je要nop掉,f9运行,软件提示完成,这个校验就去除了


接着点"添加目录",被断下来

0040FA8A   . /0F85 AA010000 jnz 第二步.0040FC3A
单步f8到这一行,观察跳转里面有"非注册版本不能使用此功能",那就jnz改jmp,f8后f9运行,这一步去校验完成

接着点"移除文件"和"全部清空"没有校验

0042A4F4   .66:8B0D 2C204>mov cx,word ptr ds:
接着点"指定统计",输入了内容后被断下来,还是和上面一样,单步f8往下走到跳转,先观察跳转内内容再决定跳不跳

0042A51F   . /0F84 BA010000 je 第二步.0042A6DF
这个跳转里面有"您现在使用的是未注册的试用版",所以je改jmp,f8后f9运行

f9又停到这个地方,和前面一样是个循环,把断点f2取消掉,f9运行,这一步去校验完成

00428714   . /0F85 6C010000 jnz 第二步.00428886
接着点"清空",被断下来了,单步f8到跳转,跳转里面是"试用版不能使用此功能",所以jnz改jmp,f8后f9运行,这一步去检验完成

0042EB68   . /0F84 B1010000 je 第二步.0042ED1F
继续点其他功能,在"自定义词库"里面的"新增"被断下来了,单步f8到这个跳转,跳转里面是"试用版只能在自定义词库中放入一个词汇!"
所以je改jmp,f8后f9继续运行,这一步取校验完成

点击"删除"没反应,点"导入"被断下

0042F90F   . /0F85 2B010000 jnz 第二步.0042FA40
单步f8到跳转,跳转里面是"试用版不能使用此功能!",所以jnz改jmp,f8后f9继续运行,这一步去校验完成

接着选择"输出方式"被断下

0042A1D9   /0F85 F1010000 jnz 第二步.0042A3D0                         ;改jmp
单步f8到跳转,跳转里面是"您现在使用的是未注册的试用版。"所以jnz改jmp,f8后f9继续运行,这一步去校验完成

最后点"关于"被断下,

00428967|. /0F85 80000000 jnz 第二步.004289ED
004289CF|.FF97 B0020000 call near dword ptr ds:                     这个是弹出注册界面
f8到跳转,观察跳转里面有弹出注册界面代码,所以jnz改jmp,f8后f9继续运行,这一步去校验完成

现在应该校验都去除了,如果有我没发现的,方法都是一样的,保存文件就OK了

如果是追码或懂算法的方式还是比较好的,不用一路暴破下来,这帖子只是一种方法,新手学破解,有不对的地方,还请指正



Sound 发表于 2016-1-4 22:26


不错, 对于一般VB的程序来说 很详细 适合新手 ,就是排版不敢恭维。

manbajie 发表于 2016-1-4 23:18

来看看学习一下

xh4528 发表于 2016-1-4 23:25

Sound 发表于 2016-1-4 22:26
不错, 对于一般VB的程序来说 很详细 适合新手 ,就是排版不敢恭维。

本来想每步都截图的,结果校验的地方太多了,截图太乱没有文字清晰,又不会弄别人那样的滚动代码,所以.....{:1_908:}

hhbb979 发表于 2017-11-12 12:30

本帖最后由 hhbb979 于 2017-11-12 14:06 编辑

多年前的新手学习好帖,通过学习,又可掌握不少操作的步骤与方法!居然没有人顶!

Quincy379 发表于 2017-11-18 10:57

顶下,非常好的学习资料!!!

92013 发表于 2018-11-19 19:42

感谢分享!

92013 发表于 2018-12-1 20:00

膜拜啊!学习中{:300_950:}{:301_971:}{:300_947:}
页: [1]
查看完整版本: xx统计2.0-破解思路