ios – 如何检测IAPFree和IAPCracker

ios – 如何检测IAPFree和IAPCracker,第1张

概述我正在寻找一种方法来检测我的应用程序中使用IAPCracker的人. 最近我发现这个有用的帖子How to detect “LocallAPStore” – new iap cracker并用它来保护我的一些应用内购买. 现在我发现了一个新的破解来源-in-app -…你知道.所以我安装了这个名为IAPFree的新调整,这是一种破解IAP的新方法.我在一些应用程序和我自己的应用程序上测试它,它工作 我正在寻找一种方法来检测我的应用程序中使用IAPCracker的人.

最近我发现这个有用的帖子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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1039734.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存