有没有一种方法可以确定一个exe文件是否被UPX压缩了?
除此之外,用于确定一个exe文件是否已经被压缩的函数非常出色。但是我发现代码存在问题。如果调用IsUPXCompressed方法,然后尝试运行upx,upx无法保存修改后的文件。在该函数中,有些共享权限不正确。我已经测试了几个小时。如果我不调用这个方法,那么UPX就可以毫无问题地写入文件。如果你调用它,然后尝试运行UPX,它将无法保存文件。当尝试写入文件时,UPX会报告一个IOException权限被拒绝的错误。
请问有人能够发现导致这个问题的代码错误吗?
谢谢。
除此之外,用于确定一个exe文件是否已经被压缩的函数非常出色。但是我发现代码存在问题。如果调用IsUPXCompressed方法,然后尝试运行upx,upx无法保存修改后的文件。在该函数中,有些共享权限不正确。我已经测试了几个小时。如果我不调用这个方法,那么UPX就可以毫无问题地写入文件。如果你调用它,然后尝试运行UPX,它将无法保存文件。当尝试写入文件时,UPX会报告一个IOException权限被拒绝的错误。
请问有人能够发现导致这个问题的代码错误吗?
谢谢。
SectName
为AnsiString
(或者如果有的话,可以为UTF8String
),并将@pSectionHeader.Name
类型转换为PAnsiChar
。图像头名称采用UTF-8编码,而不是UCS-2。甚至可以使用StrLComp
来替换SetString
和Pos
函数,以便比较前三个字符。 - Rob KennedyResult := Pos('UPX',SectName)> 0; if Result then Break;
这样可以消除一个退出点(在我看来使代码更容易理解一些)。 - Ken White