Jump to content

[Breaking Security]How to disable syscall (anti-debugging protection)


322 posts in this topic

Recommended Posts

Posted

I made this tutorial in April of 2015 for the cheaters here and after almost a year of it being private I decided to post it to the public.

 

Gameloft always uses syscall on their games, and while this was written in April, MC5 still has removable syscall and you can use MC5 to practice :)

 

Requirements:

- IDA Pro

- Modern Combat 5

- GNU Debugger from cydia.radare.org (repo)

- OpenSSH

- Clutch 1.4.7-2

- armv7 binary of MC5, crack it on a 32 bit device for it to be armv7. I won't post one here because of copyright issues.

 

Below this line is the exact text I wrote on April 10, 2015. Enjoy :)

 

------

Hidden Content

    What is syscall? Syscall is anti-debugging protection. This is what causes the Segmentation Fault: 11 when trying to attach to an app. But as hackers we need to attach to an app, and thats why I made this tutorial :snoop:

     

    Again, I'm using MC5.

     

    Let's get started :p

     

    1. Open up the binary in IDA and wait like four to five minutes so that you can actually xref.

     

    2. Once you have waited, click on the "Imports" tab and search for syscall.

    nvzZIjL.jpg

     

    3. Double click it and xref to syscall's location in the binary. Here is the function that you are looking for:

    nuc5Cfj.jpg

     

    It should have _getpid, _memset, and _sysctl there.

     

    4. Highlight the BLX _syscall (or BLX.W _syscall sometimes), and click "Hex View 1". The hex should be highlighted. Now right click before the beginning of the highlighted hex and click "edit".

    fLfnXh3.jpg

     

    5. Now type "C046C046". This means NOP, or no instruction/operation. Basically it makes the app ignore the instruction. The edited hex should have turned orange.

    Wpp9SuU.jpg

     

    6. Save your changes. Right click on the orange edited hex and click "Apply changes".

    0oIyscA.jpg

     

    7. After that, go back to IDA View A and confirm that the BLX _syscall and the instruction below it is NOP'ed.

     

    8. Apply your changes to the binary. Go to Edit --> Patch program --> Apply patches to input file. Create a backup if you want to.

    9Hrh8Xv.jpg

     

    9. Replace the original binary with the hacked binary and set the permissions to:

    Owner: mobile

    Group: mobile

     

    User: read, write, execute

    Group: read, write, execute

    World: read, write, execute

     

    Now you are done! Try to attach and it should work! :)

Proof: (me attaching to Modern Combat 5 in GDB)

 

xrLa6qY.jpg

Posted

Thanks for sharing ! ;)


One question.

when the app do not use _syscall what it could be ?

i searched for all methods that check if they had Cydia or etc.

 

Thanks.

  • Like 47
  • Winner 2
  • Thanks 3
  • Haha 3
  • Agree 8
  • Informative 2
Posted

Thanks for sharing ! ;)

One question.

when the app do not use _syscall what it could be ?

i searched for all methods that check if they had Cydia or etc.

 

Thanks.

 

It's ptrace. Try searching imports for ptrace

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • 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