Jasi2169

Android Crackmes and keygemmes challenges

10 posts in this topic

Here are couple of crackmes and keygenmes i coded for android any beginner or want to test can test their hand in :-

1. App :- Android_Crackme1_TeamURET , Difficulty :- 0/10

2. App :- Android_Crackme2_TeamURET , Difficulty :- 1/10

3. App :- AndroidKeygenMe_1-URET , Difficulty :- 2/10

4. App :- URET Android Official KeygenMe 01 , Difficulty :- 5/10 (This Is Official KeygemMe Only Defeated By One Guy Yet)

Enjoy....

Files are attached

URET_Android_crackmes_Keygenmes.rar

3 people like this

Share this post


Link to post
Share on other sites

1. App :- Android_Crackme1_TeamURET , Difficulty :- 0/10

package acm.jasi2169.acm1;

public class Acm extends Activity
{
  String a = "2169";

2169 is the key.

I will check 2 son.
 

1 person likes this

Share this post


Link to post
Share on other sites
On 2/22/2017 at 2:37 AM, CodeCracker said:

1. App :- Android_Crackme1_TeamURET , Difficulty :- 0/10

package acm.jasi2169.acm1;

public class Acm extends Activity
{
  String a = "2169";

2169 is the key.

I will check 2 son.
 

great ,looking forward for Official Uret ANdroid Keygenme solution from you :)

Share this post


Link to post
Share on other sites

Posted (edited)

Patching Android_Crackme2_TeamURET.apk

class acm.jasi2169.acm2.AA

  String b = "Application Is Not Licensed";
  String c = "Application Is Licensed";

I've used ApkAnayser to get from where are used:
and both are used from:
acm.jasi2169.acm2.Aa.Aa() @ 5
This was just the constructor class method!

b ( "Application Is Not Licensed") is also used from:
acm.jasi2169.acm2.Aa.c() @ 3

  public void c()
  {
    d();
    b.a(this, this.b, this.d);
  }

c() method is the bad boy!

Local graph for c() method:
class b run() void
class Aa b() void
class Aa c() void

  public void b()
  {
    if (!a(this))
    {  // bad boy 1
      if (!this.f.getBoolean("a", false))
      {
        this.g.putBoolean("a", true);
        this.g.commit();
      }
      c();
    }
    for (;;)
    {
      return;
      if (!a(this))
      {
        d();
        moveTaskToBack(true);
        finish();
        i();
      }
      else if (!android.support.a.a.a.a(this))
      {
        this.g.putBoolean("a", true);    // bad boy 2
        this.g.commit();
        c();
      }
    }
  }
 


    public void m6b() {
        if (!m1a((Context) this)) {
            if (!this.f5f.getBoolean("a", false)) {
                this.f6g.putBoolean("a", true);
                this.f6g.commit();
            }
            m7c(); // call bad boy!
        } else if (!m1a((Context) this)) {
            m8d();
            moveTaskToBack(true);
            finish();
            m13i();
        } else if (!C0007a.m17a(this)) {
            this.f6g.putBoolean("a", true);
            this.f6g.commit();
            m7c();  // call bad boy!
        }
    }

classType = Lacm/jasi2169/acm2/Aa;

Method Size: 3
Method Code Offset: 37516
Method: a(Landroid/content/Context;)Z
{
const-string v0 "playstore is not installed means chinese user ?"
const-string v0 "playstore is required to check license :)"
invoke-virtual {v2} Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v0
invoke-virtual {v2} Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0,v1} Landroid/content/pm/PackageManager;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
if-eqz v0 :label_28
const-string v1 "com.android.vending"
invoke-virtual {v0,v1} Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0 :label_28
const/4 v0 1
label_27:
return v0
label_28:
const/4 v0 0 ; to replace 1200 with 1210 - to always return true
goto :label_27

}

929C is the body address!

android.support.a.a
method a

classType = Landroid/support/a/a/a;
Method Code Offset: 39764
Real body start: 9B64

Same changes as before: replace 1200 with 1210 - to always return true

ApkEditor - to be able to install the apk:
Select an Apk File, choose "Common Edit" option,
as "Internal Location" choose "Internal Only"
APK is stored on:
/storage/sdcard/ApkEditor/tmp/gen_signed.apk

Link download of solved crackme:
http://www33.zippyshare.com/v/BUSak2ZA/file.html
 

Edited by CodeCracker
3 people like this

Share this post


Link to post
Share on other sites

@CodeCracker

great work on second one,change at right place rather then modifying the string by some users who tried before.

looking for official keygenme thats the real challenge :)

Share this post


Link to post
Share on other sites

@Jasi2169: I've noticed that your crackmes are very small (great job), how you did it?
What android developer you use? (If I may know)
As for me solving the keygen me, that for sure require (android) coding skills, which currently I don't poses,
I am a beginner with android development.
 

Share this post


Link to post
Share on other sites

hi ,i used old sdk build tools i do not remember maybe they are of jellybean sdks 16 or 17 i guess,also they were built on Eclipse IDE

now the sdk tools is v25 nougat,even if you use v21 lollipop build tools your size will be more

why ? because the AppCompat support library is automatically added by android studio which takes 1.5-1.9mb space.

this is the reason uret patcher is 2.5mb,patcher is only 1mb 1.5 mb is taken by this support n design library added by sdk tools when compiling the debug or release build

 

i would suggest you keep using android studio as its easy and simple ,eclipse was good but nothing compare to Android studio built on modules of intelij idea

 

or try changing your Extends AppCompatActivity to Activity in all the activity and try removing extra libraries in dependancies of your build gradle module

1 person likes this

Share this post


Link to post
Share on other sites

Old android studios hanges.freezes and crashes alot :) i use v2.1.2 i did not updated to latest as it works great for me

so use latest Android studio but download old android sdk and push it to

C:\Users\JASI\AppData\Local\Android\sdk (this is default location)  ,make android folder in Local and put sdk folder there in username

and then go to android studio and in settings locate android studio folder and click apply and restart

 

we just need android build tools old and support library old for example in android sdk downloader download jellybean api 16 stuff and use that to compile the apk

i would suggest compatibility is most important over size

Share this post


Link to post
Share on other sites

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