Delphi编译后的Exe的问题(200分)

  • 主题发起人 主题发起人 guojun
  • 开始时间 开始时间
G

guojun

Unregistered / Unconfirmed
GUEST, unregistred user!
我发现Delphi编译后的Exe文件包含了Form上的资源,或者说
是直接将.dfm文件包含进了Exe文件(不知说的对不对).于是,
一个Label的Caption可以在Exe文件中清楚地看到,也可以改
掉,有些时候这不是希望的。比如你写的一些个人信息。
有什么办法可以让Delphi编译的exe文件看不出那些窗体资源。
我说的是用Delphi本身,不是用其它的压缩可执行文件的软件。
我凭空设想,Delphi应该有编译指示符来指出怎样link .dfm
 
你说的基本正确.
好办法没有,这是Delphi自己的编译方法,没有办法改掉.
不过你可以用Delphi 4,5的多语言支持或者其他多国语言包
对此稍加掩盖.
 
不太明白。
你的label本来就是显示用的,为什么有不给人看?
如果说不启动的form的label不给人看,那启动后再赋值。
 
动态赋值,赋值的时候使点花招。
 
我倒觉得这是Delphi编译的优点!
 
link .dfm,那不更容易改了
 
不管怎么赋值,总有办法看到的,不过有什么用呢?
 
用aspack压缩以下就什么也看不到了.
 
to walala
如果我用Label.Caption := 'CopyRight Guojun'
过几天我看到Abort里显示的是 CopyRight walala,我是不是很高兴?
to lha
关键的地方我都用算法来赋值,但如果多一点字串,这工作量也太大了。
所以才提出这个问题。
toCAkk
我也用过压缩执行文件的软件,但是,压缩后的执行文件经常会在执行
时出问题。
to SuperMMX
你说的对,如果不使用点手段,总是能看到,近而能改掉。
to all
再找找看,兴许Delphi有什么未公开的Tip.
 
>>压缩后的执行文件经常会在执行时出问题。
我几乎所有的软件都压缩,从来没出过错.
 
自己写个编码的小程序和一个解码的函数,很容易实现,也不需要增加什么时间
我早就这么干了。
编码也不用太复杂,因为只要直接搜索不到字符串,别人(不是太高手的话)就不容易改
 
使用位图来代替Label显示名字.
 
to Pipi
要显示的字串是静态的,总要放在程序的什么地方,不论是全局或中过程变量,
只要是这样 S:='guojun',那么我在Dos下用Find "guojun" exe.exe 就可以找
到它,问题是,原始字串放在哪里?因为,先有字串,才可以变换啊。如果你把
字串放到程序外部,开销就大了些。使用上也不方便。
to cAkk
你用的是什么软件,有Tip吗,指点指点。
to windz
用位图,成本太高,程序太大。显示小量内容尚可,多了... ...
to all
看来要是Delphi不行,使用压缩可执行文件的方法倒也是没有办法的办
法,我想问的是,即然可以打包,那么,别人是否可以可以容易地解包,
因为,一但别人解了包装,一切就回到问题的开头了。cAkk多讲讲!!
 
简单的编码很多,比如运行时全部加一: a 变成 b , x 变 y
比如 -a-b-c-d-e 运行时恢复为 abcde ,
搜索是找不到的,需要写一个函数运行时专门解码。
当然上面的编码太简单,你可以用xor之类搞复杂点
 
使用windows的注册表,将要显示的字符串放到注册表的某一角落,程序启动时
加载到TStringList或string array中。
 
如果在放到注册表的过程中再使用加密算法的话... :)
 
你不把個人信息放進去就行了呀
 
to Emperor
那... ...我放哪呀?
to cAkk
有哪些压缩可执行文件的软件,介绍一下,多谢。
 
用xor的方法去加密你要显示的字符串,然后在程序中解密就行了,这不会很复
杂的,效果也不错(除非有人有意去解密)。
 
后退
顶部