最近我发现这个有用的帖子How to detect “LocallAPStore” – new iap cracker并用它来保护我的一些应用内购买.
现在我发现了一个新的破解来源-in-app -…你知道.所以我安装了这个名为IAPFree的新调整,这是一种破解IAP的新方法.我在一些应用程序和我自己的应用程序上测试它,它工作,这是不好的!
我尝试通过与IAPCracker相同的方式检测它:
if ([[NSfileManager defaultManager] fileExistsAtPath:@"/library/MobileSubstrate/DynamiclibrarIEs/iap.dylib"]){ NSLog(@"IAP Cracker detected");}
但不幸的是,该文件的名称已更改为“iapfree.core.dylib”
(我打开了Ifile并在同一目录中找到了该文件).
现在我想我可以简单地替换目录.但是,它不起作用!
我用这段代码以某种方式检测它:
if ([[NSfileManager defaultManager] fileExistsAtPath:@"/library/MobileSubstrate/DynamiclibrarIEs/iapfree.core.dylib"]){ NSLog(@"IAPfree detected");}else{NSLog(@"No IAPFree found");}
我认为这将是一个随机错误,我尝试与同一目录中的其他文件.他们确实奏效了!
我无法弄清楚这个文件的问题是什么.我认为它可能是由“.core”引起的,但实际上我不知道.
您知道如何解决问题或以其他方式检测问题吗?
解决方法 解决问题的最佳方式(也是“Apple批准”的唯一方法)是使用外部服务器检查应用内购买收据,而不是存在黑客!有很多第三方服务很容易做到这一点,有些甚至是免费的.作为替代方案,您可以在本地检查收据,如here和here所示(完全披露,这是我的博客;)).它有一些优点(更简单,即使验证服务器脱机或无法访问也可以工作)但当然新的破解系统可能会欺骗它.
这里有一些代码:当你检查paymentQueue(inApp协议的回调)时,你可以这样做:
- (voID)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions{ for (SKPaymentTransaction *transaction in transactions) { switch (transaction.transactionState) { case SKPaymentTransactionStatePurchased: case SKPaymentTransactionStateRestored: { [self checkReceipt:[_productIDentifIErList objectAtIndex:0] transazione:transaction]; [self finishPaymentTransaction:transaction]; } break; case SKPaymentTransactionStateFailed: { [UIVIEw msgBox:@"Transaction Error" Title:@"Errore"]; [self finishPaymentTransaction:transaction]; } break; default: break; } }}- (voID) checkReceipt:(SKProduct *)prodotto transazione:(SKPaymentTransaction *)transaction{ Nsstring*ricevuta = [[Nsstring alloc] initWithData:transaction.transactionReceipt enCoding:NSUTF8StringEnCoding]; NSRange HackTest = [transaction.transactionIDentifIEr rangeOfString:@"com.urus.iap"]; // ok if this not found NSRange HackTest2 = [transaction.transactionIDentifIEr rangeOfString:@"PUT HERE YOUR INAPP ID"]; // Todo: PUT HERE YOUR INAPP ID if (HackTest.location == NSNotFound && HackTest2.location == NSNotFound) { // it pass the local test: receipt is probably good } else { // invalID receipt,fake for sure,cancel buying... }}
请注意,你必须将你的inApp代码放在“HackTest2”检查中:所以如果你有多个产品,你可能会循环…
总结以上是内存溢出为你收集整理的ios – 如何检测IAPFree和IAPCracker全部内容,希望文章能够帮你解决ios – 如何检测IAPFree和IAPCracker所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)