aspose.cell是个非常好用的Excel插件,可不安装Excel使用。他是收费的,而且不便宜。
免费也是可以用的,但编辑保存后会多出现个sheet,说明是试用版。不商用的话没什么影响。我用了很多年了。
今天心血来潮,想试图去研究下如何去掉水印,还从来没搞过.net的逆向。
先去网上查查c#的反编译器,https://blog.csdn.net/kongwei521/article/details/54927689/ 这里介绍了几款,
装了一个免费的,一个收费的(还没免费的好用报错的厉害,脸呢)。
最后用dnspy试试,这个软件的功能我就不介绍了,我也接触不到1个小时。
开始准备:
1.nuget安装aspose.cell,我的版本是 20.9 目前的最新版
2.打开vs随便些几行代码,然后运行。
static void Main(string[] args)
{
Workbook wb = new Workbook();
wb.Worksheets[0].Cells[0, 0].Value = "tes55555t";
wb.Save("1232.xlsx");
}
执行成功,生成的1232.xlsx中带有水印的sheet,我就不截图了。
用dnspy加载这个exe程序,惊讶的发现,真没见过那么好用的反编译器,和以前在od里绕汇编比,简直就是天堂,界面非常友好,和vs很像,和vs的快捷键也一样,甚至你自己写的变量的命名都一模一样,而且他不是静态反编译的,还能调试!!
惊讶完开始做事,找到main函数,如下
internal class Program
{
// Token: 0x06000001 RID: 1 RVA: 0x00002050 File Offset: 0x00000250
private static void Main(string[] args)
{
Workbook wb = new Workbook();
wb.Worksheets[0].Cells[0, 0].Value = "tes55555t";
wb.Save("1232.xlsx");
}
在Workbook wb = new Workbook();下断,一步一步走。
调试可见,第一句没做什么,第二句是正常操作,那么水印在第三句中加的,F7 慢慢走吧。
到这里:
FileStream fileStream = File.Create(fileName);
try
{
this.Save(fileStream, saveOptions);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (fileStream != null)<

本文介绍了作者尝试通过反编译aspose.cell去除试用版水印的过程,使用了dnspy工具进行调试,发现在特定代码段删除IL指令即可成功移除水印,但建议找到判断试用版的源头以彻底解决问题。

3494

被折叠的 条评论
为什么被折叠?



