我目前正在Delphi中开发一个应用程序,我必须在源代码中隐藏(混淆)一个字符串str := 'Example String'
.
为什么?因为如果我在文本编辑器中打开EXE并搜索Example String
我会在第二个中找到该字符串...
我尝试使用基本的HEX转录,#$65#$78#$61#$6d#$70#$6c#$65
但它在编译时被清楚地重新转录.
我找了包装工,但这不是最好的解决方案(PECompact可以被检测为误报恶意软件,UPX太容易de-UPX,......).我希望在我的内部代码中有一个想法......
有人会让我走上正确的道路.
我有一个自定义键盘,带有宽度和高度的WKWebView.我已经禁用了滚动浏览器wkWebView!.scrollView.scrollEnabled = false
但是我仍然在WKWebView底部双击时有一个奇怪的滚动行为.这里是我尝试加载的简单网页的源代码:http://is.gd/gt8h2q(非常简单,只是带有背景绿色和一行文本的div全屏).下面是GIF的解释.以下是我创建WKWebView的方法:
class KeyboardViewController: UIInputViewController, WKScriptMessageHandler {
var wkWebView: WKWebView?
override func loadView() {
super.loadView()
let contentController = WKUserContentController()
contentController.addScriptMessageHandler(self, name:"callbackTestOne")
let config = WKWebViewConfiguration()
config.userContentController = contentController
self.wkWebView = WKWebView(frame:self.view.frame, configuration:config)
self.view = self.wkWebView!
}
override func viewDidLoad() {
super.viewDidLoad()
(...)
wkWebView!.scrollView.bounces = false
wkWebView!.scrollView.scrollEnabled = false
wkWebView!.scrollView.backgroundColor = UIColor(red:248, green:248, blue:248, alpha:1)
wkWebView!.scrollView.opaque = true
wkWebView!.scrollView.showsHorizontalScrollIndicator = false
wkWebView!.scrollView.showsVerticalScrollIndicator = false
wkWebView!.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal
}
(...)
Run Code Online (Sandbox Code Playgroud)
对于未来的项目,我需要了解Apple iOS IPA文件(iPhone/iPad)的协同处理过程是如何工作的.我的项目的目标是构建(在Delphi中)一个Windows工具来编码一个IPA文件(之前通过XCode 编译为" 不代码签名 ").
可以肯定的是,只能在Windows上对IPA文件进行编码; 就像Adobe使用AIR/Flash CS5一样.此外,Epic Games,Inc.使用第三方工具构建了UDK(虚幻开发工具包),用于协调IPA文件.
最后一个是用C#/ .NET编写的,所以我试着探索源代码来了解代码签名过程是如何工作的,但是,哇,代码是相当进化的,即使C#/ .NET和Delphi之间有很大的相似之处,我很快就模糊了......
UDK的iPhonePackager非常接近我想做的事情(功能较少).
根据我的研究:证书和密钥可以通过命令行中的OpenSSL"生成"; Apple使用X509证书对二进制文件进行编码(?); 像Bouncy Castle Crypto API 这样的组件可用于管理证书.
关于苹果的代码签名过程中的一个有趣的文章:http://developer.apple.com/library/mac/#technotes/tn2206/_index.html
我还要生成" CodeResources "; 来自Mobile Provisioning文件的" embedded.mobileprovision "; 和" CodeSignature/CodeResources "具有所有文件的层次结构,如:
<key>MainWindow.nib</key>
<data>GTBfZPINlJlD7HXjMRAKgfAztXU=</data>
Run Code Online (Sandbox Code Playgroud)
如果你读到目前为止,你肯定会头疼:)
所以,下面几个问题开始...
是否可以重新签名已编译并使用" 不代码签名 " 签名的二进制文件?
你认为我的项目真的很难......?
您认为雇用开发人员会更好吗?我可以为这个项目预算,但理想情况下我当然希望自己做...:D
非常感谢您提出建议和/或建议.
贝尼
有没有办法通过JavaScript或PHP检测iPhone 6和6 Plus?我需要一个if else
jQuery 条件的布尔值.它适用于Safari(或UIWebView)中的Web应用程序.我试图检测屏幕分辨率,但由于元视口或像素比例(我真的不知道),iPhone 5,iPhone 6和6 Plus的输出值相同.提前致谢 !
我希望从大型TListBox中删除重复的项目.为此,我使用了一种经典的简单方法.它有效,但需要19分钟.我读了很多,显然我应该使用TFileStream(?).但我不知道怎么做.
我的经典方法是这样的:
procedure NoDup(AListBox : TListBox);
var
i : integer;
begin
with AListBox do
for i := Items.Count - 1 downto 0 do
begin
if Items.IndexOf(Items[i]) < i then
Items.Delete(i);
Application.ProcessMessages;
end;
end;
Run Code Online (Sandbox Code Playgroud)
我怎样才能提高速度?
我正在尝试制作一个带有一些按钮的小型iPhone应用程序来播放WAV声音.我的按钮工作,但我有一个小延迟(~0.5秒).
这是我的.m文件:
#import "buttonSoundViewController.h"
@implementation buttonSoundViewController
//@synthesize player;
-(IBAction) playSoundA:(id)sender{
NSString *path = [[NSBundle mainBundle] pathForResource:@"a" ofType:@"wav"];
AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
[theAudio play];
}
-(IBAction) playSoundB:(id)sender{
NSString *path = [[NSBundle mainBundle] pathForResource:@"b" ofType:@"wav"];
AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
[theAudio play];
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag {
[player release];
}
-(void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error {
}
-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)player {
}
-(void)audioPlayerEndInterruption:(AVAudioPlayer *)player {
}
- (void)didReceiveMemoryWarning {
[super …
Run Code Online (Sandbox Code Playgroud) 这是我第一次使用Delphi处理多线程应用程序,所以对我来说仍然很好,但我读了很多.
我的线程很简单,简而言之我只是使用Indy(IdHTTP)来获取网页的内容,然后我验证内容是否包含字符串.这里没问题.
现在,为了终止线程,我使用带有WHILE DO的布尔值.它似乎有效但问题就在于:就像我在Indy中使用Timeout一样,有时我必须等待线程结束前的超时时间结束(例如服务器没有响应时)...
这很烦人,特别是当我使用+200线程时.使用其他软件使用多线程和类似的程序,当我点击"停止"时,所有都在几秒钟内停止,这就是我需要的.
我读到我应该使用AntiFreeze,以允许IdHTTP"阅读我的指示"......
所以,我在这里有点迷失.我不认为这是非常必要的,但这是我的代码:http://pastebin.com/G7De8bgb
在此先感谢灯光:)
贝尼
大家好,
我在PHP中有一个小代码,我想在Delphi中转换,我有一些麻烦......
这是PHP代码:
$from = "121.198.0.0";
$to = "121.198.255.255";
$arry1 = explode(".", $from);
$arry2 = explode(".", $to);
$a1 = $arry1[0];
$b1 = $arry1[1];
$c1 = $arry1[2];
$d1 = $arry1[3];
$a2 = $arry2[0];
$b2 = $arry2[1];
$c2 = $arry2[2];
$d2 = $arry2[3];
while ($d2 >= $d1 || $c2 > $c1 || $b2 > $b1 || $a2 > $a1) {
if ($d1 > 255) {
$d1 = 1;
$c1++;
}
if ($c1 > 255) {
$c1 = 1;
$b1++;
}
if ($b1 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将一个StringList内容分成多个部分(在Delphi中)...
听起来很简单,但我被愚蠢地阻止:o
例如,StringList包含1001行,我想将内容拆分为2个StringLists.因此,一个将有500行,另一个将有501行.
无论第一个是501还是第二个500,反之亦然.
如果有人能以正确的方式推动我......
提前致谢!
贝尼
delphi ×6
ios ×2
iphone ×2
listbox ×2
audio ×1
cocoa-touch ×1
code-signing ×1
double-click ×1
duplicates ×1
indy ×1
javascript ×1
jquery ×1
latency ×1
obfuscation ×1
objective-c ×1
openssl ×1
php ×1
scroll ×1
split ×1
string ×1
swift ×1
viewport ×1
wkwebview ×1
x509 ×1