AliCrackme_2, alicrackme_2

Source: Internet
Author: User

AliCrackme_2, alicrackme_2

Author: Fly2015

AliCrackme_2.apk ,.


First, use the android decompiler jebto analyze the Java-Layer Code of alicrackme_2.apk.


Fortunately, the securityCheck function of the user registration code of the apk program is found and implemented at the Native layer. Next we will go to the so library of the program to find the Native Implementation of the function.


The registration of the Native-layer securityCheck function is not registered using the JNI_OnLoad function. Therefore, we are lucky to find the implementation of the securityCheck function. The analysis is as follows:


Static Analysis of Native code shows that _ lpSaveBuffer = off_628C stores the correct registration code string. Therefore, to obtain the registration code of this apk, you must perform dynamic debugging on it, you can obtain the content of the string stored in _ lpSaveBuffer to crack the apk.

 

Debug the Android Application dynamically. In other words, Android applications generally perform reverse debugging in the JNI_OnLoad function to prevent dynamic debugging of their apps. After several rounds of dynamic debugging experiments, it is found that the Android Application will call the pthread_create function to create a thread for reverse debugging. Therefore, the method to crack a breakpoint under the Java_com_yaotong_crackme_MainActivity_securityCheck function cannot be achieved directly.


Therefore, the code of the App is modified to prevent anti-debugging of the App ., Locate the location of the ARM assembly command BLX R7 at A8CE 9C58 in the memory, and then change the Assembly command BLX R7 to the Assembly command MOV R0, and RO means that the NOP drops the BLX R7 command.


For the conversion between ARM Assembly commands and machine code, use the following tool. However, you must place this tool on the desktop before it can be used normally.


When the anti-debugging obstacle is successfully crossed, the next step is to bring up and down the breakpoint in the Java_com_yaotong_crackme_MainActivity_securityCheck function, and go straight to the topic.


On the Password Input page, enter a string password. The Java_com_yaotong_crackme_MainActivity_securityCheck function is called.


The program will be disconnected from the Java_com_yaotong_crackme_MainActivity_securityCheck function, and then find the assembly code LDR R2, [R1, R7] corresponding to _ lpSaveBuffer = off_628C in this function. When the next instruction in the assembly code LDR R2, [R1, R7] is broken up or down, the address of the password string pointer saved by R2 is A8CEC450, then, synchronize the R2 value in the program data memory to locate the aiyou and bucuoo strings at the address A8CEC450. Obviously, aiyou and bucuoo are the passwords to be obtained.


AliCrackme_2 analysis documentation and apk: http://download.csdn.net/detail/qq1084283172/8897059






Copyright Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.