相关疑难解决方法(0)

如何在Delphi EXE中隐藏或隐藏字符串?

我目前正在Delphi中开发一个应用程序,我必须在源代码中隐藏(混淆)一个字符串str := 'Example String'.
为什么?因为如果我在文本编辑器中打开EXE并搜索Example String我会在第二个中找到该字符串...

我尝试使用基本的HEX转录,#$65#$78#$61#$6d#$70#$6c#$65但它在编译时被清楚地重新转录.
我找了包装工,但这不是最好的解决方案(PECompact可以被检测为误报恶意软件,UPX太容易de-UPX,......).我希望在我的内部代码中有一个想法......

有人会让我走上正确的道路.

delphi string obfuscation

14
推荐指数
1
解决办法
6356
查看次数

是否有适用于> = Delphi 2007的Delphi混淆器

我曾经使用Pythia来混淆我的D6程序.但似乎Pythia不再适用于我的D2007.这是Pythia的链接(自2007年初以来没有更新):http://www.the-interweb.com/serendipity/index.php?/ archives/86-Pythia-1.1.html

从上面的链接,这是我想要实现的

替代文字

delphi obfuscation

8
推荐指数
1
解决办法
3934
查看次数

防止枚举类型的数组的调试信息出现在EXE中

我打开Delphi IDE并创建一个新项目。这是该应用程序的全部代码:

program EnumSymbolsInExeTest1;

type
  tMyEnum = ( A );

begin
end.
Run Code Online (Sandbox Code Playgroud)

我生成了应用程序,然后在EXE中搜索“ tMyEnum”。找到了。这并不奇怪,因为我在链接器选项中将“调试信息”设置为“开”。

我关闭调试信息。我重建。我再次搜索EXE,现在没有提及tMyEnum。到目前为止,一切都如预期。

然后,我更改代码。我添加一个变量。

program EnumSymbolsInExeTest1;

type
  tMyEnum = ( A );

var
  Z : tMyEnum;

begin
end.
Run Code Online (Sandbox Code Playgroud)

我重建。仍然没有惊喜。我得到一个未使用变量的提示,而EXE仍然没有提及TMyEnum

然后,我进行另一个小更改:

type
  tMyEnum = ( A );

var
  Z : array of tMyEnum;

begin
end.
Run Code Online (Sandbox Code Playgroud)

我将变量更改为数组。我重建。我搜索EXE,发现tMyEnumEXE文件中现在出现“ ”。

我的问题是:为什么?

我该如何阻止它?我不希望任何内部标识符出现在发送给客户的可执行文件中。

我正在使用Delphi 10.2

为了响应David Heffernan,我添加了这些编译器指令。

program EnumSymbolsInExeTest1;

{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}

type
  tMyEnum = ( A );

var
  Z : array …
Run Code Online (Sandbox Code Playgroud)

delphi

7
推荐指数
1
解决办法
110
查看次数

标签 统计

delphi ×3

obfuscation ×2

string ×1