动态生成水印文本保护软件产权

今天在看雪看到有人提出这样一个问题:delphi中treeview的修改

原文如下:

----------------------------------------------------------------------------------------------------------------------

最近朋友拿给我一个软件,其中有一个地方感觉很奇怪。
软件下载地址http://www.1and1-mail.com/download/1and1MailFree3.0.exe
运行程序后,在最左边有个1and1 mail的水印。通过资源查看工具得知是一个OnCustomDraw事件控制的。资源查看器中对应的代码如下:
    object trvTask: TTreeView
      Left = 0
      Top = 0
      Width = 153
      Height = 305
      Align = alClient
      AutoExpand = True
      BevelInner = bvNone
      BevelOuter = bvNone
      HideSelection = False
      Images = ResourceForm.SmallImageList
      Indent = 19
      ParentShowHint = False
      ReadOnly = True
      ShowHint = True
      ShowLines = False
      StateImages = ResourceForm.SmallImageList
      TabOrder = 0
      OnChange = trvTaskChange
      OnCustomDraw = trvTaskCustomDraw
      Items.NodeData = {
        0304000000260000005600000056000000FFFFFFFFFFFFFFFF00000000000000
        00000000000104636B2857D1530190240000005700000057000000FFFFFFFFFF
        FFFFFF0000000000000000000000000103F25DD1530190240000005900000059
        000000FFFFFFFFFFFFFFFF000000000000000000000000010349833F7AB17B24
        0000005800000058000000FFFFFFFFFFFFFFFF00000000000000000000000001
        03DE563665D97A}
    end
现在的问题是,怎么才能修改这个水印的内容或者颜色或者直接去掉这个水印。
我试过直接去掉OnCustomDraw = trvTaskCustomDraw这句,可以实现去掉的目的,但在他软件的地址薄中会提示出错。各位大侠有没有完美些的解决方法。

---------------------------------------------------------------------------------------------------------------------------------------

我分析的是:

Images = ResourceForm.SmallImageList 这句应该是关键,去ResourceForm看看SmallImageList里面是什么数据,估计水印是一个图片,把他去掉保留其他的就ok。

但实际把ImageList数据读出后发现没有水印这块,故猜测水印是动态生成的。

继续关注这个问题,至少学到一招,就是软件发布一定要加壳保护,另外动态生成产权保护的信息(如此例中的水印标签)

原文地址:https://www.cnblogs.com/delphi7456/p/1867247.html