Romaco Timeout是加拿大的一个免费软件,用于控制小孩使用电脑的时间,可以使用电脑的时间段,禁止某些程序,禁止某些网站(比如视频网站等)。
是广大家长的福音。
前一段时间因为小孩上网课,我设置了一些限制,但是一段时间后我忘记了密码,然后就搜索发现,没有办法恢复密码,其软件官网都说一旦忘记了密码,没有什么好办法。
即使卸载了软件,很多限制都还在,我确实尝试卸载了软件,发现果然如此。
难道要重装系统?
这不是我的风格,一个简单的软件还要我重装系统才能搞定?
1. 使用 DIE检测,其为.net4.0编译的,并且没有混淆,这就好办了。
2. 使用dnSpy打开,定位到Romaco Timeout | Controle Panel | btn_unlock_Click。
看流程很简单,程序内直接明文比较输入的密码和保存的密码。
[C#] 纯文本查看 复制代码
private void btn_unlock_Click(object sender, RoutedEventArgs e)
{
if (this.pb_password.Password == this.app.password)
{
this.unlockInterface();
this.pb_password.Password = "";
return;
}
MessageBox.Show("Incorrect Password", "Incorrect Password", MessageBoxButton.OK, MessageBoxImage.Exclamation);
this.pb_password.Password = "";
}
这就简单了,在这里直接一个MessagBox显示之前的密码即可,右键选择 “编辑方法(C#)"。
修改如下:
[C#] 纯文本查看 复制代码
private void btn_unlock_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(this.app.password, "Your password", MessageBoxButton.OK, MessageBoxImage.Exclamation);
if (this.pb_password.Password == this.app.password)
{
this.unlockInterface();
this.pb_password.Password = "";
return;
}
MessageBox.Show("Incorrect Password", "Incorrect Password", MessageBoxButton.OK, MessageBoxImage.Exclamation);
this.pb_password.Password = "";
}
保存,右键选择“编译”。
退回主界面,选择菜单 "文件" | "全部保存"
在弹出的窗口选择要保存的文件名,然后执行新的文件即可。
在Password文本框随便输入什么字符,再点 "Unlock",软件就直接弹出对话框告诉你原来的密码是多少,是不是够简单?
所以,.net开发的软件请混淆再发布,增加破解的难度。
|