Skip to content

asLody/legend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3b8787a · Jan 30, 2019

History

16 Commits
Aug 3, 2016
Feb 8, 2016
Feb 8, 2016
Jan 30, 2019

Repository files navigation

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