好友
阅读权限30
听众
最后登录1970-1-1
|
本帖最后由 ciker_li 于 2020-2-19 22:38 编辑
这两天看了个帖子
[原创工具] 马上熊孩子就要上网课了,写了一小工具防止熊孩子上课时玩游戏看视频 https://www.52pojie.cn/thread-1105777-1-1.html
觉得挺有意思,我也下载了试试,刚开始感觉挺好用。但输入了几次密码后,突然cracker精附体,就想怎么能破解了密码。
先peid查了下,C#编写的,这类的没破解经验。
在程序目录中看到pass.cfg,估计是放密码的地方,打开看看
passcfg
果然,后面那串数字估计就是加密后的密码,感觉像哈希算法的密码,在网上找个hash生成工具验算了初始密码8888,发现不对。
过几天又看到这两篇帖子,大受启发
[调试逆向] 教熊孩子怎么破解父母给他们设置的重重关卡 https://www.52pojie.cn/thread-1110187-1-1.html
[调试逆向] 教熊孩子怎么破解父母给他们设置的重重关卡2https://www.52pojie.cn/thread-1110244-1-1.html
我也用dnspy反编译,研究了一下作者的思路
在输入密码窗口程序中,找到比较密码的部分
frmpass
再找到Class1.smethod_0
class1
发现是用HMACMD5加密,密匙是string_0,加密的文本是输入的密码加string_1
再找string0,1
class6
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
(15.66 KB, 下载次数: 21)
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|