这两天看了个帖子
[原创工具] 马上熊孩子就要上网课了,写了一小工具防止熊孩子上课时玩游戏看视频 https://www.52pojie.cn/thread-1105777-1-1.html
觉得挺有意思,我也下载了试试,刚开始感觉挺好用。但输入了几次密码后,突然cracker精附体,就想怎么能破解了密码。
先PEID查了下,C#编写的,这类的没破解经验。
在程序目录中看到pass.cfg,估计是放密码的地方,打开看看
果然,后面那串数字估计就是加密后的密码,感觉像哈希算法的密码,在网上找个hash生成工具验算了初始密码8888,发现不对。
过几天又看到这两篇帖子,大受启发
[调试逆向] 教熊孩子怎么破解父母给他们设置的重重关卡 https://www.52pojie.cn/thread-1110187-1-1.html
[调试逆向] 教熊孩子怎么破解父母给他们设置的重重关卡2https://www.52pojie.cn/thread-1110244-1-1.html
我也用dnspy反编译,研究了一下作者的思路
在输入密码窗口程序中,找到比较密码的部分
再找到Class1.smethod_0
发现是用HMACMD5加密,密匙是string_0,加密的文本是输入的密码加string_1
再找string0,1
string_0是‘disprocess’
string_1是输入的密码+‘。,、;’
再次验证,正确!!
加密方法知道了,但是MD5方法是没法逆向的,还得想别的办法。
首先,可以更改pass.cfg文件,修改成默认密码的MD5值,输入8888就行,但这种方法,家长一下就发现了,白改了,还得挨顿打
第二可以更改frmpass比较的地方,把if条件去掉或者设成真,直接爆破,这样家长输入正确密码时能正常运行,自己随便输入一个密码也可以破解
唯一的缺点就是万一家长输错了,竟然也能运行,就暴露了,还得挨顿打
第三个我还没试,我觉得可以把比较的那部分再或一个超级密码,类似这样
if ((Class6.gbsave_0.gPass.CompareTo(Class1.smethod_0(text + Class6.string_1, Class6.string_0)) == 0) || text.Equals("5678"))
应该是比较安全了
但所有的想法,得有一个前提,熊孩子得会破解,还得上52pojie。难!难!难!
刚才验证了一下,超级密码没有问题,熊孩子有救了!
考虑到熊孩子估计也没有那么多工具软件,我把编译好的放这儿,赠与有缘孩子吧!
disprocess5678.zip
来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |