吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2289|回复: 27
上一主题 下一主题
收起左侧

[.NET逆向] 通过反射注入去除Spire.Office的PDF水印

  [复制链接]
跳转到指定楼层
楼主
千人千面 发表于 2022-9-22 14:33 回帖奖励
本帖最后由 千人千面 于 2022-9-22 14:44 编辑

上一篇帖子通过dnSpy逆向爆破了Spire.Xls的水印
然后有大佬@cdj68765 提供了更加简单粗暴的思路和方法,就是通过反射直接赋值激活信息。
我根据大佬提供的代码片段和思路写了一个简单的拓展类,每次New Workbook或者New Document的时候直接调用即可注入激活信息。
使用最新的Nuget包:Spire.Office 7.9.0
目前已知的激活信息有2个分别是:
[C#] 纯文本查看 复制代码
Spire.Spreadsheet
Spire.DocViewer.Wpf 

如果有大佬能提供更多的激活字符串
下面是调用和拓展方法
Excel
[C#] 纯文本查看 复制代码
Workbook wb = new Workbook();
wb.Crack();
//或者
Workbook wb = InjectLicense(new Workbook());

Word
[C#] 纯文本查看 复制代码
 
Document dc = new Document();
dc.Crack();
//或者
Document dc = InjectLicense(new Document());


[C#] 纯文本查看 复制代码
    public static class SpireOfficeHelpers
    {
        /// <summary>
        /// 注入激活信息
        /// </summary>
        /// <param name="workbook"></param>
        public static void Crack(this Workbook workbook)
        {
            InjectLicense(workbook);
        }
        /// <summary>
        /// 注入激活信息
        /// </summary>
        /// <param name="document"></param>
        public static void Crack(this Document document)
        {
            InjectLicense(document);
        }
        /// <summary>
        /// 注入激活信息,并返回该类型
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        /// <returns></returns>
        public static T InjectLicense<T>(T t) where T : class
        {
            var InternalLicense = t.GetType().GetProperty("InternalLicense", BindingFlags.NonPublic | BindingFlags.Instance);
            var TypeLic = InternalLicense.PropertyType.Assembly.CreateInstance(InternalLicense.PropertyType.GetTypeInfo().FullName);
            foreach (var item in TypeLic.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance))
            {
                if (item.FieldType.IsArray)
                {
                    item.SetValue(TypeLic, new string[] { "Spire.Spreadsheet", "Spire.DocViewer.Wpf" });
                }
                else if (item.FieldType.IsEnum)
                {
                    item.SetValue(TypeLic, 3);
                }
            }
            InternalLicense.SetValue(t, TypeLic);
            return t;
        }
    }

免费评分

参与人数 10吾爱币 +17 热心值 +9 收起 理由
hxd97244 + 1 + 1 用心讨论,共获提升!
lvyiwuhen + 1 + 1 热心回复!
huaxi233 + 1 + 1 用心讨论,共获提升!
岔路ko + 2 + 1 给你提供一个更NB的思路,我自己已经实现了,申请一个试用密钥,然后hook比.
xzqsr + 1 + 1 谢谢@Thanks!
goldli + 1 + 1 我很赞同!
AprioriAcquit6 + 1 + 1 谢谢@Thanks!
vipcrack + 1 + 1 用心讨论,共获提升!
zjkedy + 1 用心讨论,共获提升!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
寒冰流火 发表于 2022-9-24 07:26
去水印  好点子  厉害的大佬
推荐
lvyiwuhen 发表于 2022-9-25 19:12
好想法,不错,之前用过,感觉有水印不方便,就不再用了
沙发
lwp72495lwp 发表于 2022-9-22 14:57
3#
email123 发表于 2022-9-22 16:33
咋使用哦,不会哦,lz来个成品学习下
4#
zhang120300 发表于 2022-9-22 16:43
学习了。
5#
XiaoZouYu 发表于 2022-9-22 17:04
正好要用这个,谢谢楼主
6#
wsf994 发表于 2022-9-22 18:00
学习了。
7#
zjkedy 发表于 2022-9-22 19:32
支持技术帖 ,
8#
nuxingxp 发表于 2022-9-22 19:51
没看有懂呢,楼主。
9#
sololdz 发表于 2022-9-23 07:34
学习了,感谢,研究研究
10#
varm 发表于 2022-9-23 09:50
确实可用,感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2022-9-26 09:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表