Farming Simulator 18 IAP CRACK

Step into the exciting world of farming with Farming Simulator 20! Harvest many different crops, tend to your livestock of pigs, cows, and sheep, and now ride your own horses, letting you explore the vast land around your farm in a brand-new way. Sell your products in a dynamic market to earn money which you can invest in additional machinery and the expansion of your farm.

In Farming Simulator 20 you take control of over 100 vehicles and tools faithfully recreated from leading brands in the industry. For the first time on mobile platforms this includes John Deere, the largest agriculture machinery company in the world. Drive other famous farming brands such as Case IH, New Holland, Challenger, Fendt, Massey Ferguson, Valtra, Krone, Deutz-Fahr and many more.

下载链接:

https://www.iphonecake.com/app_1478611992_.html


关键代码:

//  fs18iapDylib.m
//  fs18iapDylib
//
//  Created by obaby on 2017/8/24.
//  Copyright (c) 2017年 obaby. All rights reserved.
//

#import "fs18iapDylib.h"
#import "CaptainHook.h"
#import 
#import 
#import "CydiaSubstrate.h"
#import 
#import "BABYStringEncoding.h"

static __attribute__((constructor)) void entry(){
    NSLog(@"\n               🎉!!!congratulations!!!🎉\n👍----------------insert dylib success----------------👍");
    
    [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidFinishLaunchingNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
        
        CYListenServer(6666);
    }];
}

/*
CHDeclareClass(CustomViewController)

CHOptimizedMethod(0, self, NSString*, CustomViewController,getMyName){
    //get origin value
    NSString* originName = CHSuper(0, CustomViewController, getMyName);
    
    NSLog(@"origin name is:%@",originName);
    
    //get property
    NSString* password = CHIvar(self,_password,__strong NSString*);
    
    NSLog(@"password is %@",password);
    
    //change the value
    return @"AloneMonkey";
    
}
 */

CHDeclareClass(IOSInAppPurchase)

CHMethod2(void, IOSInAppPurchase, paymentQueue, id, que, updatedTransactions, id, trans){
    for(SKPaymentTransaction *tran in trans){
        NSLog(@"payment result:%ld",(long)tran.transactionState);
        
        
        switch (tran.transactionState) {
            case SKPaymentTransactionStatePurchased:
            {
                NSLog(@"payment result:交易完成");

            }
                break;
            case SKPaymentTransactionStatePurchasing: //
            {
                NSLog(@"payment result:商品添加进列表");
            }
                break;
            case SKPaymentTransactionStateRestored:
            {
                NSLog(@"payment result:已经购买过商品");

            }
                break;
            case SKPaymentTransactionStateFailed: //2
            {
                NSLog(@"payment result:交易失败");
                //SKPaymentTransaction * newTrans = [[SKPaymentTransaction alloc] init];
                //newTrans.transactionState = 1;
                
                //memset((uintptr_t)newTrans.transactionState, 0x1, 1);
                
                //memset(newTrans.transactionState, 0x1, 1);
                [tran setValue:[NSNumber numberWithInt:1] forKey:NSStringFromSelector(@selector(transactionState))];
                NSLog(@"payment result:buy changed");

                
                NSLog(@"payment2 result:%ld",(long)tran.transactionState);
            }
                break;
            default:
            {

            }
                break;
        }
    }
    CHSuper(2,IOSInAppPurchase, paymentQueue, que, updatedTransactions, trans);
}

NSInteger _logos_method$_ungrouped$SKPaymentTransaction$transactionState();
NSInteger _logos_method$_ungrouped$SKPaymentTransaction$transactionState()
{
    return 1LL;
}

NSInteger (*__logos_orig$_ungrouped$SKPaymentTransaction$transactionState)();


CHConstructor{
    //CHLoadLateClass(IOSInAppPurchase);
    //CHClassHook(0, CustomViewController, getMyName);
    //CHClassHook2(IOSInAppPurchase, paymentQueue, updatedTransactions);
    id hookedClass = objc_getClass("SKPaymentTransaction");
    if (hookedClass){
        MSHookMessageEx(hookedClass, @selector(transactionState), _logos_method$_ungrouped$SKPaymentTransaction$transactionState, &__logos_orig$_ungrouped$SKPaymentTransaction$transactionState);
        NSLog(@"congratulations!! hook success");
    }
    NSLog(@"congratulations!! hook finished");
}


github链接:

https://github.com/obaby/fs18-iap-crack

github链接:

https://github.com/obaby/fs18-iap-crack

☆版权☆

* 网站名称:obaby@mars
* 网址:https://lang.ma/
* 个性:https://oba.by/
* 本文标题: 《Farming Simulator 18 IAP CRACK》
* 本文链接:https://nai.dog/2020/10/7716
* 短链接:https://oba.by/?p=7716
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注