Skip to main content
 首页 » 原创破解

PDF解密去除限制工具(RSA算法绕过破解)

2018年10月10日7007

博客很久都没动了,懒了。。


入正题:

1.png

    平时我们可能都有遇到过这种被加密的PDF,但我们又需要提取里面的内容或更改。这个时候就需要找PDF解密去除工具了,有人说网上在线破解的一大把,也是的,但如果文档有隐私你还会直接在网页上上传吗?


我直接搜了下,发现有很多这类的软件,我随手下了一个:http://app.pdfdo.com/download.aspx  (网上标价15元/永久)


可我是搞逆向破解爱好者啊,我肯定要练练手啊!

1.png

代码被.NET Reactor(4.5-4.7)混淆加密保护了。


1.png


第一想法,应该能做注册机。


先脱壳,用到的工具是:de4dot-Reactor5.0(因为是.NET Reactor(4.x),其他版本都没有脱掉壳)

1.png

脱壳后的程序能正常运行


丢进dnSpy-x86,简单的分析了下流程,发现注册机是没法做了(因为用了RSA非对称算法),只能尝试爆破。

1.png

1.png

1.png

//关键代码,注册逻辑

private void method_1()
        {

             //打开注册表 HKEY_CURRENT_USER\SoftWare\PDFdo\PasswordRemover
            RegistryKey registryKey = Registry.CurrentUser.OpenSubKey(BLL.strRegistry);

            if (registryKey != null)
            {

                //获取注册表中"NowTimes"的值

                object value = registryKey.GetValue("NowTimes");
                if (value != null)
                {
                    int.TryParse(value.ToString(), out this.reVal);
                }

                //获取注册表中"Register"的值,这个值不能为空,这个也就是注册码,如果为空一定是试用版
                value = registryKey.GetValue("Register");
                if (value != null)
                {

                    //将注册码赋值给s_Code变量
                    this.s_Code = value.ToString();
                }

                //获取机器码与"PWRemover_"字符串连接

                this.s_MKey = "PWRemover_" + RegisterBLL.getMNum();
            }


            if (this.s_Code != "" && this.s_MKey != "")
            {
                this.Rres = this.register_0.button2_Click(this.s_MKey, this.s_Code);
                if (this.Rres == RegType.Registered)
                {

                    //隐藏注册窗体
                    this.btnRegister.Visible = false;
                    return;
                }
            }
            if (this.Flag == "")
            {

                //弹出软件注册
                this.register_0.ShowDialog();
            }
        }

从上面的代码可以看出来,只要满足if (this.Rres == RegType.Registered)这个条件,那么软件就不会出现软件注册了。


1.png

先满足注册表的条件,手动加了一个Register


1.png

这段就是RSA的算法,但是这个只是验证部分,所以注册机是没法做了。

图中箭头指向的三个地方其实就是一个结构体。

Unregiste=0        //未注册

Registered =1     //已注册

Unknow=2          //未知

因为这个验证的返回值是regType,只要regType=1 就表示验证成功。

1.png

尝试把Unregiste赋值为1  Unknow赋值为1 ,这样return regType的时候就为1了

1.png

在return regType处下断点,然后需要改一下返回值

1.png

最后return regType 返回的都是1   就表示验证成功。


1.png

这个时候  F5运行,程序就破解了。


最后记得保存

1.png

1.png


15块的软件引发的一篇文章,这里我虽然没有写分析得过程,但破解的地方写的很详细了。



PDFdo_Password_Remover大小:26M | 来源:本站
已经过安全软件检测无毒,请您放心下载。


评论列表7条评论
伍园目录
伍园目录回复 千里之外不离开。
有意思吧
有意思吧回复 既然来了,就踩一下。
女装品牌
女装品牌回复 文章不错非常喜欢
王
回复 每隔段时间就来看看 哈哈终于更新了
发表评论
新浪微博
微信