这两天看了个帖子
[原创工具] 马上熊孩子就要上网课了,写了一小工具防止熊孩子上课时玩游戏看视频 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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |