Skip to content

asLody/legend

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
art
 
 
 
 
 
 

Legend


logo

Projects are out of date, plese move to:

Whale Hook

What is Legend?

Legend is a Hook framework for Android Development, it allows you to Hook Java methods without ROOT. Even more exciting is that it supports both Dalvik and Art environment!

https://github.com/asLody/legend

1. What is the good

  • Programming more efficient
  • Dynamic debugging
  • HotFix and needn't reboot app
  • Fast dump Dex File in the shell
  • Software security penetration
  • Do some exciting things...

2. How to use

Example 1: Annotation type Hook

@Hook("android.widget.Toast::show")
public static void Toast_show(Toast thiz) {
  thiz.setText("XXXXXXXXX");
  //Call the origin method
  HookManager.getDefault().callSuper(thiz);
}

Example 2: Interception of startActivity

@Hook("android.app.Activity::startActivity@android.content.Intent")
public static void Activity_startActivity(Activity thiz, Intent intent) {
  if (!ALLOW_LAUNCH_ACTIVITY) {
    Toast.makeText(thiz, "I am sorry to turn your Activity down :)", Toast.LENGTH_SHORT).show();
  } else {
    HookManager.getDefault().callSuper(thiz, intent);
  }
}

Notice:

  • Write the following code down in where you want to your hooks enable.
HookManager.getDefault().applyHooks(YourClass.class);
  • You can also hook a method without annotation.
HookManager.getDefault().hookMethod(originMethod, hookMethod);

3. Compatibility

  • Dalvik & Android 4.2
  • Dalvik & Android 4.3
  • Art & Android 5.0
  • Art & Android 5.0.1
  • Art & Android 5.1
  • Art & Android 6.0
  • Art & Android 6.0.1
  • aliyunOS VM

4. Showcase

https://github.com/dodola/RocooFix

5. Help improve Legend

if (Country.China == your.country) {
  QQGroup.join(530497973);
} else {
  webView.loadUrl("https://github.com/asLody/legend/issues");
}

6. Author

Lody