取名软件另一种方法爆破
本帖最后由 377610458 于 2015-10-25 18:02 编辑基于上一位发的宝宝取名软件,去除了限制,并且绿化了。我这里按照另一种更简单的方法,不去限制,因为好多处限制太麻烦,直接找真码!最适合新手来学习咯。大神别笑我{:301_978:}
用PEID查询的结果为无壳,VC++6.0编写的。(因为第一次用PEID查壳的时候显示了,第二次查不到了所以没上图。)
好,OD载入,先搜索下看有没有可用的字符串
查找下注册试试看。
找到了两处注册,第一个显然不是我们在输入注册码的时候会提示的信息,当然第二个也不是,第二个有可能是程序在刚运行的时候进行读取注册码的判断,或者是窗口的标题啥的。
好,在第二个这个地方下断点,试试。
载入程序,停在这里了。
发现跳转成立,这里当然不能让它跳咯。所以呢就二进制NOP填充。
好,我们运行起来。
但是好像触发了程序的暗装,因为在注册成功以后他一开始会读文件或者读注册表之类的,因为我们没有注册没有生成注册信息的文件或者注册表,所以它就直接判定我们为非法使用,结束了我们的程序。{:301_978:}
这里可能有同学会想了,你怎么不下个程序退出的断点,当他判断为非法程序要退出的时候,改下跳转不就行了?这样虽然可以使程序运行起来,显示为注册版,但是功能不能用哦,所以又更麻烦了对不。{:17_1062:}
好,接下来我们换种方法。
在OD空处,右键选择查找,所有命令
输入sub eax,0a 点查找 注意 sub eax 后面的个逗号是英文的,中文的就会出错!(syb eax , 0a 也就是VC++按钮事件的断点)
来到了这个窗口,然后右键,选择,在每个命令上设置断点。
然后运行!
发现程序还没有运行起来就被断下来了,我们就把它双击去掉,让程序运行起来!
运行起来后点注册,好接下来就是重点咯!
返回OD,在刚刚去掉那个断点的地方,下断点,双击也行。
就像这样的,然后点注册!
发现断下来了,然后单步步过往下跟,也就是F8。
没走几步就到这个CALL这里来了,好这个就是关键点
然后单步步入,也就是F7,进去看看!
看见没有,程序在比较呢,发现貌似真码的字符串,好复制粘贴在记事本上。
然后重新载入软件,不用OD打开也行,打开注册页面
OK,已经成功。就算程序重启验证,我们输入的是真码也不用怕了!
软件注册成功后关闭再点开重复几次他就会出现试用版,原因是软件有个网络的验证,这里可以断网就行了,如果你有啥更好的方法可以在下方回帖哦!{:301_1003:}{:301_978:}
这里我也还是不上软件的地址了,我只是说下方法,下次遇到能够举一反三,不局限于一种方法,这个方法不行就换种方法,都是可行的。{:301_975:}
最后说下啊,此帖子只是用来学习和研究的目的,帮助作者找到漏洞,提升软件安全性,提升自己的计算机技术,大家可千万不要用于商业用途!{:301_993:}
如果有违规了,或者发错板块的请管理处理咯。{:301_978:}
动物凶猛 发表于 2015-10-26 22:13
恭喜您,您已经是正式版注册用户,请注意及时下载最新版本哦!----直接搜索这个下断就可以出注册码的
我只是说说以后搜索不到字符串了可以用这种方法试试哦,当然搜索字符串更简单!{:301_1009:} 马到功成 发表于 2015-10-25 19:05
我想知道楼主是怎么知道那个CALL是关键抠的?
你可以试试不在那个call步入直接走,会发现会弹错误的提示,所以。。。 欢迎分析讨论交流,吾爱破解论坛有你更精彩! 非常好,用到了按钮事件,这个以前我都没有用过,大部分是暂停法 此文写的图文并茂,并且比较祥细,在此支持一下。写得好,很适合新手学习,新手也可举一反三。 按钮事件是不是通用呢?
其他编译器写的也都有对应按钮事件断点吗? 不错,学习了 谢谢分享,学习了 →_→涨姿势了 学习一下,练练手~ 我想知道楼主是怎么知道那个CALL是关键抠的?
页:
[1]
2