Jump to content

myDonuts

Member
  • Posts

    11
  • Joined

  • Last visited

Posts posted by myDonuts

  1. Hi,

    I have tried what you suggested me but the gold isn't freeze. I tough that a STR would put the value in x20 into [x21, 0x20] why would it change something in coins ? I followed your tips and explore the function around and I found a MOV x20, x0 at 0x10098b9d0 modifying it to anything else freeze the gold and crown to 0 even if I move any other register.

    Spoiler
    
                ;-- func.10098b978:                                                                                                                                                          
                0x10098b978      f657bda9       stp x22, x21, [sp, -0x30]!                                                                                                                   
                0x10098b97c      f44f01a9       stp x20, x19, [sp, 0x10]                                                                                                                     
                0x10098b980      fd7b02a9       stp x29, x30, [sp, 0x20]                                                                                                                     
                0x10098b984      fd830091       add x29, sp, 0x20                                                                                                                            
                0x10098b988      ff8300d1       sub sp, sp, 0x20                                                                                                                             
                0x10098b98c      f30301aa       mov x19, x1                                                                                                                                  
                0x10098b990      680a40f9       ldr x8, [x19, 0x10]        ; [0x10:4]=-1 ; 16                                                                                                
                0x10098b994      e9230091       add x9, sp, 8                                                                                                                                
                0x10098b998      081940f9       ldr x8, [x8, 0x30]         ; [0x30:4]=-1 ; 48                                                                                                
                0x10098b99c      f30b00f9       str x19, [sp, 0x10]                                                                                                                          
                0x10098b9a0      150540f9       ldr x21, [x8, 8]           ; [0x8:4]=-1 ; 8                                                                                                  
                0x10098b9a4      a83240f9       ldr x8, [x21, 0x60]        ; [0x60:4]=-1 ; 96                                                                                                
                0x10098b9a8      e80700f9       str x8, [sp, 8]                                                                                                                              
                0x10098b9ac      a93200f9       str x9, [x21, 0x60]                                                                                                                          
                0x10098b9b0      001440f9       ldr x0, [x0, 0x28]         ; [0x28:4]=-1 ; 40                                                                                                
            ,=< 0x10098b9b4      000400b4       cbz x0, 0x10098ba34        ; unlikely                                                                                                        
            |   0x10098b9b8      080840f9       ldr x8, [x0, 0x10]         ; [0x10:4]=-1 ; 16                                                                                                
            |   0x10098b9bc      014d40f9       ldr x1, [x8, 0x98]         ; sym.entry17810                                                                                                  
            |                                                              ; [0x98:4]=-1                                                                                                     
            |   0x10098b9c0      280840f9       ldr x8, [x1, 0x10]         ; [0x10:4]=-1 ; 16                                                                                                
            |   0x10098b9c4      082940f9       ldr x8, [x8, 0x50]         ; [0x50:4]=-1 ; 80                                                                                                
            |   0x10098b9c8      00013fd6       blr x8                     ;[?] ; 0xffffffffffffffff(0xffffffffffffffff, 0xffffffffffffffff, 0x0, 0x0)                                       
            |   0x10098b9cc      680e40f9       ldr x8, [x19, 0x18]        ; [0x18:4]=-1 ; 24                                                                                                
            |   0x10098b9d0      f40300aa       mov x20, x0                                                                                                                                  
            |   0x10098b9d4      080940f9       ldr x8, [x8, 0x10]         ; [0x10:4]=-1 ; 16                                                                                                
            |   0x10098b9d8      091940f9       ldr x9, [x8, 0x30]         ; [0x30:4]=-1 ; 48                                                                                                
            |   0x10098b9dc      281142f9       ldr x8, [x9, 0x420]        ; [0x420:4]=-1 ; 1056                                                                                             
           ,==< 0x10098b9e0      a80000b5       cbnz x8, 0x10098b9f4       ; likely                                                                                                          
           ||   0x10098b9e4      20811091       add x0, x9, 0x420                                                                                                                            
           ||   0x10098b9e8      e1230091       add x1, sp, 8                                                                                                                                
           ||   0x10098b9ec      4894ef97       bl sym.func.100570b0c      ;[2] ; sym.func.100570b0c(0x41f, 0x28, 0x0, 0x0)                                                                  
           ||   0x10098b9f0      e80300aa       mov x8, x0                                                                                                                                   
           `--> 0x10098b9f4      084940f9       ldr x8, [x8, 0x90]         ; sym.entry17542                                                                                                  

     

    So I have look for when I spent coins I try changing everywhere SUB but only one affect gold but make the game crash when I spent some. I looked around the function and found a MOV on the gold register but can only get the gold to 0. What should I do next now.

    Huge thanks for all of the tips and the help. There no problem for the late reply.

  2. Hi,

    After following this tutorial and being successful to hack Ammo. I wanted to hack the gold like the tutorial suggest  but after long time of trial and error I still cannot get it t work.

     

    So I found the memory address of the coins and find the address when I spent some and the register.

    Offset = 0x10098b948
    Coins Register = x20

    All the register

    Spoiler
    
    General Purpose Registers:
            x0 = 0x0000000000000004
            x1 = 0x0000000000008cd8
            x2 = 0x0000000109407b58
            x3 = 0x000000000000850e
            x4 = 0x0000000103898510
            x5 = 0x0000000000000000
            x6 = 0x0000000000000032
            x7 = 0x0000000000000002
            x8 = 0x000000016fb8c738
            x9 = 0x0000000000000000
           x10 = 0x0000000000000006
           x11 = 0x0000000103cd008a
           x12 = 0x000000000000000e
           x13 = 0x000000000000003a
           x14 = 0x0000000000000009
           x15 = 0x0000000103dc7460
           x16 = 0x0000000000000000
           x17 = 0x0000000045000000
           x18 = 0x0000000000000000
           x19 = 0x00000001038b9000
           x20 = 0x00000000000010a1
           x21 = 0x0000000108bfaca0
           x22 = 0x0000000108c058a8
           x23 = 0x000000000000850e
           x24 = 0x0000000000008cde
           x25 = 0x000000010899b290
           x26 = 0x0000000103d71970
           x27 = 0x0000000108c7af12
           x28 = 0x0000000109198901
            fp = 0x000000016fb8c790
            lr = 0x0000000100bfb944  Bloody Harry`___lldb_unnamed_function49893$$Bloody Harry + 388
            sp = 0x000000016fb8c730
            pc = 0x0000000100bfb948  Bloody Harry`___lldb_unnamed_function49893$$Bloody Harry + 392
          cpsr = 0x40000000
    

     

    And the ARM disasembly

    Spoiler
    
            ,=< 0x10098b900      980300b4       cbz x24, 0x10098b970
            |   0x10098b904      080b40f9       ldr x8, [x24, 0x10]        ; [0x10:4]=-1 ; 16
            |   0x10098b908      e00318aa       mov x0, x24
            |   0x10098b90c      e10319aa       mov x1, x25
            |   0x10098b910      e2031aaa       mov x2, x26
            |   0x10098b914      048540f9       ldr x4, [x8, sym.entry17989] ; [0x108:4]=-1
            |   0x10098b918      880840f9       ldr x8, [x4, 0x10]         ; [0x10:4]=-1 ; 16
            |   0x10098b91c      082940f9       ldr x8, [x8, 0x50]         ; [0x50:4]=-1 ; 80
            |   0x10098b920      00013fd6       blr x8
            |   0x10098b924      a01640f9       ldr x0, [x21, 0x28]        ; [0x28:4]=-1 ; 40
           ,==< 0x10098b928      400200b4       cbz x0, 0x10098b970
           ||   0x10098b92c      080840f9       ldr x8, [x0, 0x10]         ; [0x10:4]=-1 ; 16
           ||   0x10098b930      e10317aa       mov x1, x23
           ||   0x10098b934      025140f9       ldr x2, [x8, 0xa0]         ; sym.entry16703
           ||                                                              ; [0xa0:4]=-1
           ||   0x10098b938      480840f9       ldr x8, [x2, 0x10]         ; [0x10:4]=-1 ; 16
           ||   0x10098b93c      082940f9       ldr x8, [x8, 0x50]         ; [0x50:4]=-1 ; 80
           ||   0x10098b940      00013fd6       blr x8
           ||   0x10098b944      b42200b9       str w20, [x21, 0x20]
           ||   0x10098b948      e80740f9       ldr x8, [sp, 8]            ; [0x8:4]=-1 ; 8
           ||   0x10098b94c      e0031e32       orr w0, wzr, 4
           ||   0x10098b950      683200f9       str x8, [x19, 0x60]
           ||   0x10098b954      bf0301d1       sub sp, x29, 0x40
           ||   0x10098b958      fd7b44a9       ldp x29, x30, [sp, 0x40]
           ||   0x10098b95c      f44f43a9       ldp x20, x19, [sp, 0x30]
           ||   0x10098b960      f65742a9       ldp x22, x21, [sp, 0x20]
           ||   0x10098b964      f85f41a9       ldp x24, x23, [sp, 0x10]
           ||   0x10098b968      fa67c5a8       ldp x26, x25, [sp], 0x50
           ||   0x10098b96c      c0035fd6       ret
           ``-> 0x10098b970      e00316aa       mov x0, x22
                0x10098b974      b034f097       bl sym.func.100598c34
                ;-- func.10098b978:
                0x10098b978      f657bda9       stp x22, x21, [sp, -0x30]!
                0x10098b97c      f44f01a9       stp x20, x19, [sp, 0x10]
                0x10098b980      fd7b02a9       stp x29, x30, [sp, 0x20]
                0x10098b984      fd830091       add x29, sp, 0x20
                0x10098b988      ff8300d1       sub sp, sp, 0x20
                0x10098b98c      f30301aa       mov x19, x1
                0x10098b990      680a40f9       ldr x8, [x19, 0x10]        ; [0x10:4]=-1 ; 16
                0x10098b994      e9230091       add x9, sp, 8
                0x10098b998      081940f9       ldr x8, [x8, 0x30]         ; [0x30:4]=-1 ; 48
    

     

    I think that the close that I got from it to work was by modifying the ARM at the address 0x10098B988 to MOV x20, #0 RET wich put infinite amount of gold and crown but crash every time I buy something. I would really enjoy explanation of why it put huge amount in crown and gold because it don't make sense in my head?

    Huge thanks for the help in advance.

    • Like 1
  3. HI,

    On the Patcher nothing change still not able to make my tweak work.

     

    On the Ted2 Menu I was able to make it work by making a new project and use switches that @dj_TK send me. Huge thanks to him it really helped me out. He tell me that on the menu the patch need to 8 byte instead of 4 byte. But after some other testing when I compile the project on the first it seem like the Tweak.xm is saved in .theos to reduce time on other compilation. So I tried it with 4 byte and it still work.

    Spoiler
    
    [switches addOffsetSwitch:@"Infinite Ammo" 
                  description:@"Get Infinite Ammo" 
                    offsets:{0x10092DEE8}                                                       
                      bytes:{0x1F2003D521C140F9}]; 

     

     

    On the last one after verifying file place it was all good. But after searching, in the file $THEOS/lib/libsubstrate.tbd i added _MSHookMemory in the symbols list. And it now working fine.

    Spoiler
    
    ---
    archs:           [ armv7, armv7s, arm64, i386, x86_64 ]
    platform:        ios
    install-name:    /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate
    current-version: 0.0.0
    compatibility-version: 0.0.0
    exports:
      - archs:            [ armv7, armv7s, arm64, i386, x86_64 ]
        symbols:          [ _MSDebug,
                            _MSFindSymbol, _MSGetImageByName,
                            _MSHookFunction, _MSHookMessageEx, _MSHookMemory ]
    ...
    

     

     

    Anyway huge thanks for the people that helped me out.

  4. Hi,

    Thanks for the help.

    On the Patcher I checked the key they are they same. I have just modify the example in the Tweak.xm but here the line that I modified anyway.

    Spoiler
    
    if(GetPrefBool(@"key1")) {                                                                                                                                                          
          vm_writeData(0x10092DEE8, 0x1F2003D5); //                                                                                                                                         
        } 

     

     

    On your amazing menu I was able to compile it but every time I try too shoot the game crash. I double check the address and they are good since I tested them with the Live Patcher.

    Spoiler
    
    [switches addOffsetSwitch:@"Infinite Ammo" 
                  description:@"Get Infinite Ammo" 
                    offsets:{0x10092DEE8}                                                       
                      bytes:{0x1F2003D5}];

     

     

    And the last I verified the file that I had moved they are all in the good place but still not working same error.

     

    Huge thanks for the help.

  5. Hi,

    I have been trying to make my own hack with this well made guide. Huge thanks to the author it extremely helpful.

    But on the final step of making the package I am still unable to make a tweak. I have been able to make it work with the Custom Live Offset Patcher. I am using theos SDK 10.3 on iPad Air 2. I have tried multiple nic template from you the awesome community.

     

    The first I tried, I have followed all instruction it able to compile and install but the game is not hacked my ammo are still limited verified everything and I turned on the hack in settings.

     

     

    Spoiler
    
    ld: warning: text-based stub file /var/theos/lib/libsubstrate.tbd and library file /var/theos/lib/libsubstrate.dylib are out of sync. Falling back to library file for linking.
    Undefined symbols for architecture arm64:
      "__Unwind_Resume", referenced from:
          patchOffset(unsigned long long, unsigned long long) in Tweak.xm.46c8fa26.o
          setupMenu() in Tweak.xm.46c8fa26.o
          ____ZL18didFinishLaunchingP22__CFNotificationCenterPvPK10__CFStringPKvPK14__CFDictionary_block_invoke in Tweak.xm.46c8fa26.o
          ____ZL18didFinishLaunchingP22__CFNotificationCenterPvPK10__CFStringPKvPK14__CFDictionary_block_invoke_2 in Tweak.xm.46c8fa26.o
          -[Menu initWithTitle:titleColor:titleFont:credits:headerColor:switchOffColor:switchOnColor:switchTitleFont:switchTitleColor:infoButtonColor:maxVisibleSwitches:menuWidth:] in Menu.mm.46c8fa26.o
          -[Menu touchesBegan:withEvent:] in Menu.mm.46c8fa26.o
          -[Menu menuDragged:] in Menu.mm.46c8fa26.o
          ...
      "std::terminate()", referenced from:
          ___clang_call_terminate in Menu.mm.46c8fa26.o
          ___clang_call_terminate in SwitchesTemplate.mm.46c8fa26.o
      "operator delete(void*)", referenced from:
          __gnu_cxx::new_allocator<unsigned long long>::deallocate(unsigned long long*, unsigned long) in Menu.mm.46c8fa26.o
          __gnu_cxx::new_allocator<MemoryPatch>::deallocate(MemoryPatch*, unsigned long) in Menu.mm.46c8fa26.o
          __gnu_cxx::new_allocator<unsigned char>::deallocate(unsigned char*, unsigned long) in Menu.mm.46c8fa26.o
          __gnu_cxx::new_allocator<unsigned long long>::deallocate(unsigned long long*, unsigned long) in SwitchesTemplate.mm.46c8fa26.o
          __gnu_cxx::new_allocator<unsigned char>::deallocate(unsigned char*, unsigned long) in MemoryPatch.cpp.46c8fa26.o
      "operator new(unsigned long)", referenced from:
          __gnu_cxx::new_allocator<unsigned long long>::allocate(unsigned long, void const*) in Menu.mm.46c8fa26.o
          __gnu_cxx::new_allocator<MemoryPatch>::allocate(unsigned long, void const*) in Menu.mm.46c8fa26.o
          __gnu_cxx::new_allocator<unsigned char>::allocate(unsigned long, void const*) in Menu.mm.46c8fa26.o
          __gnu_cxx::new_allocator<unsigned long long>::allocate(unsigned long, void const*) in SwitchesTemplate.mm.46c8fa26.o
          __gnu_cxx::new_allocator<unsigned char>::allocate(unsigned long, void const*) in MemoryPatch.cpp.46c8fa26.o
      "___cxa_begin_catch", referenced from:
          MemoryPatch* std::__uninitialized_copy_aux<__gnu_cxx::__normal_iterator<MemoryPatch const*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, MemoryPatch*>(__gnu_cxx::__normal_iterator<MemoryPatch const*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, __gnu_cxx::__normal_iterator<MemoryPatch const*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, MemoryPatch*, std::__false_type) in Menu.mm.46c8fa26.o
          ___clang_call_terminate in Menu.mm.46c8fa26.o
          unsigned long long* std::vector<unsigned long long, std::allocator<unsigned long long> >::_M_allocate_and_copy<__gnu_cxx::__normal_iterator<unsigned long long const*, std::vector<unsigned long long, std::allocator<unsigned long long> > > >(unsigned long, __gnu_cxx::__normal_iterator<unsigned long long const*, std::vector<unsigned long long, std::allocator<unsigned long long> > >, __gnu_cxx::__normal_iterator<unsigned long long const*, std::vector<unsigned long long, std::allocator<unsigned long long> > >) in Menu.mm.46c8fa26.o
          std::vector<MemoryPatch, std::allocator<MemoryPatch> >::_M_insert_aux(__gnu_cxx::__normal_iterator<MemoryPatch*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, MemoryPatch const&) in Menu.mm.46c8fa26.o
          unsigned char* std::vector<unsigned char, std::allocator<unsigned char> >::_M_allocate_and_copy<__gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char> > > >(unsigned long, __gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char> > >) in Menu.mm.46c8fa26.o
          MemoryPatch* std::__uninitialized_copy_aux<MemoryPatch*, MemoryPatch*>(MemoryPatch*, MemoryPatch*, MemoryPatch*, std::__false_type) in Menu.mm.46c8fa26.o
          void std::vector<unsigned long long, std::allocator<unsigned long long> >::_M_range_insert<unsigned long long const*>(__gnu_cxx::__normal_iterator<unsigned long long*, std::vector<unsigned long long, std::allocator<unsigned long long> > >, unsigned long long const*, unsigned long long const*, std::forward_iterator_tag) in SwitchesTemplate.mm.46c8fa26.o
          ...
      "___cxa_end_catch", referenced from:
          MemoryPatch* std::__uninitialized_copy_aux<__gnu_cxx::__normal_iterator<MemoryPatch const*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, MemoryPatch*>(__gnu_cxx::__normal_iterator<MemoryPatch const*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, __gnu_cxx::__normal_iterator<MemoryPatch const*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, MemoryPatch*, std::__false_type) in Menu.mm.46c8fa26.o
          unsigned long long* std::vector<unsigned long long, std::allocator<unsigned long long> >::_M_allocate_and_copy<__gnu_cxx::__normal_iterator<unsigned long long const*, std::vector<unsigned long long, std::allocator<unsigned long long> > > >(unsigned long, __gnu_cxx::__normal_iterator<unsigned long long const*, std::vector<unsigned long long, std::allocator<unsigned long long> > >, __gnu_cxx::__normal_iterator<unsigned long long const*, std::vector<unsigned long long, std::allocator<unsigned long long> > >) in Menu.mm.46c8fa26.o
          std::vector<MemoryPatch, std::allocator<MemoryPatch> >::_M_insert_aux(__gnu_cxx::__normal_iterator<MemoryPatch*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, MemoryPatch const&) in Menu.mm.46c8fa26.o
          unsigned char* std::vector<unsigned char, std::allocator<unsigned char> >::_M_allocate_and_copy<__gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char> > > >(unsigned long, __gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char> > >) in Menu.mm.46c8fa26.o
          MemoryPatch* std::__uninitialized_copy_aux<MemoryPatch*, MemoryPatch*>(MemoryPatch*, MemoryPatch*, MemoryPatch*, std::__false_type) in Menu.mm.46c8fa26.o
          void std::vector<unsigned long long, std::allocator<unsigned long long> >::_M_range_insert<unsigned long long const*>(__gnu_cxx::__normal_iterator<unsigned long long*, std::vector<unsigned long long, std::allocator<unsigned long long> > >, unsigned long long const*, unsigned long long const*, std::forward_iterator_tag) in SwitchesTemplate.mm.46c8fa26.o
      "___cxa_guard_acquire", referenced from:
          findMSHookMemory(void*, void const*, unsigned long) in KittyMemory.cpp.46c8fa26.o
      "___cxa_guard_release", referenced from:
          findMSHookMemory(void*, void const*, unsigned long) in KittyMemory.cpp.46c8fa26.o
      "___cxa_rethrow", referenced from:
          MemoryPatch* std::__uninitialized_copy_aux<__gnu_cxx::__normal_iterator<MemoryPatch const*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, MemoryPatch*>(__gnu_cxx::__normal_iterator<MemoryPatch const*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, __gnu_cxx::__normal_iterator<MemoryPatch const*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, MemoryPatch*, std::__false_type) in Menu.mm.46c8fa26.o
          unsigned long long* std::vector<unsigned long long, std::allocator<unsigned long long> >::_M_allocate_and_copy<__gnu_cxx::__normal_iterator<unsigned long long const*, std::vector<unsigned long long, std::allocator<unsigned long long> > > >(unsigned long, __gnu_cxx::__normal_iterator<unsigned long long const*, std::vector<unsigned long long, std::allocator<unsigned long long> > >, __gnu_cxx::__normal_iterator<unsigned long long const*, std::vector<unsigned long long, std::allocator<unsigned long long> > >) in Menu.mm.46c8fa26.o
          std::vector<MemoryPatch, std::allocator<MemoryPatch> >::_M_insert_aux(__gnu_cxx::__normal_iterator<MemoryPatch*, std::vector<MemoryPatch, std::allocator<MemoryPatch> > >, MemoryPatch const&) in Menu.mm.46c8fa26.o
          unsigned char* std::vector<unsigned char, std::allocator<unsigned char> >::_M_allocate_and_copy<__gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char> > > >(unsigned long, __gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char> > >, __gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned char, std::allocator<unsigned char> > >) in Menu.mm.46c8fa26.o
          MemoryPatch* std::__uninitialized_copy_aux<MemoryPatch*, MemoryPatch*>(MemoryPatch*, MemoryPatch*, MemoryPatch*, std::__false_type) in Menu.mm.46c8fa26.o
          void std::vector<unsigned long long, std::allocator<unsigned long long> >::_M_range_insert<unsigned long long const*>(__gnu_cxx::__normal_iterator<unsigned long long*, std::vector<unsigned long long, std::allocator<unsigned long long> > >, unsigned long long const*, unsigned long long const*, std::forward_iterator_tag) in SwitchesTemplate.mm.46c8fa26.o
      "___gxx_personality_v0", referenced from:
          patchOffset(unsigned long long, unsigned long long) in Tweak.xm.46c8fa26.o
          setupMenu() in Tweak.xm.46c8fa26.o
          ____ZL18didFinishLaunchingP22__CFNotificationCenterPvPK10__CFStringPKvPK14__CFDictionary_block_invoke in Tweak.xm.46c8fa26.o
          ____ZL18didFinishLaunchingP22__CFNotificationCenterPvPK10__CFStringPKvPK14__CFDictionary_block_invoke_2 in Tweak.xm.46c8fa26.o
          -[Menu initWithTitle:titleColor:titleFont:credits:headerColor:switchOffColor:switchOnColor:switchTitleFont:switchTitleColor:infoButtonColor:maxVisibleSwitches:menuWidth:] in Menu.mm.46c8fa26.o
          -[Menu touchesBegan:withEvent:] in Menu.mm.46c8fa26.o
          -[Menu menuDragged:] in Menu.mm.46c8fa26.o
          ...
      "_bzero", referenced from:
          KittyMemory::read2HexStr(void const*, unsigned long) in KittyMemory.cpp.46c8fa26.o
      "_memcpy", referenced from:
          KittyMemory::memWrite(void*, void const*, unsigned long) in KittyMemory.cpp.46c8fa26.o
          KittyMemory::memRead(void*, void const*, unsigned long) in KittyMemory.cpp.46c8fa26.o
          ___32-[SCLAlertView slideOutToCenter]_block_invoke in SCLAlertView.m.46c8fa26.o
          ___34-[SCLAlertView slideOutFromCenter]_block_invoke in SCLAlertView.m.46c8fa26.o
          -[SCLAlertView slideInFromCenter] in SCLAlertView.m.46c8fa26.o
          ___33-[SCLAlertView slideInFromCenter]_block_invoke in SCLAlertView.m.46c8fa26.o
          -[SCLAlertView slideInToCenter] in SCLAlertView.m.46c8fa26.o
          ...
      "_memmove", referenced from:
          unsigned long long* std::__copy<true, std::random_access_iterator_tag>::copy<unsigned long long>(unsigned long long const*, unsigned long long const*, unsigned long long*) in Menu.mm.46c8fa26.o
          unsigned char* std::__copy<true, std::random_access_iterator_tag>::copy<unsigned char>(unsigned char const*, unsigned char const*, unsigned char*) in Menu.mm.46c8fa26.o
          unsigned long long* std::__copy<true, std::random_access_iterator_tag>::copy<unsigned long long>(unsigned long long const*, unsigned long long const*, unsigned long long*) in SwitchesTemplate.mm.46c8fa26.o
          unsigned long long* std::__copy_backward<true, std::random_access_iterator_tag>::__copy_b<unsigned long long>(unsigned long long const*, unsigned long long const*, unsigned long long*) in SwitchesTemplate.mm.46c8fa26.o
          unsigned char* std::__copy<true, std::random_access_iterator_tag>::copy<unsigned char>(unsigned char const*, unsigned char const*, unsigned char*) in MemoryPatch.cpp.46c8fa26.o
          unsigned char* std::__copy_backward<true, std::random_access_iterator_tag>::__copy_b<unsigned char>(unsigned char const*, unsigned char const*, unsigned char*) in MemoryPatch.cpp.46c8fa26.o
      "_memset", referenced from:
          restoreLastSession() in Menu.mm.46c8fa26.o
          -[Menu hackClicked:] in Menu.mm.46c8fa26.o
          std::fill(unsigned char*, unsigned char*, unsigned char const&) in MemoryPatch.cpp.46c8fa26.o
          KittyMemory::read2HexStr(void const*, unsigned long) in KittyMemory.cpp.46c8fa26.o
          -[SCLAlertView viewWillLayoutSubviews] in SCLAlertView.m.46c8fa26.o
          -[SCLAlertView handleTap:] in SCLAlertView.m.46c8fa26.o
          -[SCLAlertView addButton:] in SCLAlertView.m.46c8fa26.o
          ...
    ld: symbol(s) not found for architecture arm64
    clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation)
    make[3]: *** [/var/theos/makefiles/instance/library.mk:33: /var/root/bloodyharry_ted2/.theos/obj/debug/arm64/bloodyharry_ted2.dylib] Error 1
    make[2]: *** [/var/theos/makefiles/instance/library.mk:33: /var/root/bloodyharry_ted2/.theos/obj/debug/arm64/bloodyharry_ted2.dylib] Error 2
    make[1]: *** [/var/theos/makefiles/instance/library.mk:24: internal-library-all_] Error 2
    make: *** [/var/theos/makefiles/master/rules.mk:111: bloodyharry_ted2.all.tweak.variables] Error 2
    
    

     

    Never able to fix the linking error

     

    Spoiler
    
    ==> Linking tweak bloodyharry (arm64)…
    Undefined symbols for architecture arm64:
      "_MSHookMemory", referenced from:
          __logosLocalCtor_a4702759 in Tweak.x.61a8032e.o
    ld: symbol(s) not found for architecture arm64
    clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation)
    make[3]: *** [/var/theos/makefiles/instance/library.mk:33: /var/root/bloodyharry/.theos/obj/debug/arm64/bloodyharry.dylib] Error 1
    make[2]: *** [/var/theos/makefiles/instance/library.mk:33: /var/root/bloodyharry/.theos/obj/debug/arm64/bloodyharry.dylib] Error 2
    make[1]: *** [/var/theos/makefiles/instance/library.mk:24: internal-library-all_] Error 2
    make: *** [/var/theos/makefiles/master/rules.mk:111: bloodyharry.all.tweak.variables] Error 2

     

    Finally I tried without nic template but still got an error in the linking.

     

    Huge thanks for any help as I already you are an amazing community.

×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines