本文转载自: https://www.zybuluo.com/oro-oro/note/142707
JEB API
官方地址:https://www.pnfsoftware.com/apidoc/
本地路径:jeb/doc
1. IScript
这是Jeb脚本的接口,它支持Java和Python,后面的例子都会以Python为例子讲解。
任何Jeb脚本都必须实现这个接口。而任何一个脚本的类,必须跟文件名一样,跟Java类似。
IScript 下面只有一个方法,脚本的入口,相当于main函数。
run(JebInstance instance) Script entry point.
写一个 hello world。
- Hello.py
# coding:utf-8 from jeb.api import IScript class hello(IScript): def run(self, jeb): jeb.print("Hello World!") jeb.print(u"你好,JEB,我来也……") jeb.print("你好,JEB,我来也……")
打开Jeb,File -> Run Script,选择要执行的脚本。
Hello World!
你好,JEB,我来也……
ä½ å¥½ï¼JEBï¼ææ¥ä¹â¦â¦
中文字符串前面加u,否则显示会乱码。
2. JebInstance
run 方法传入的是一个JebInstance
对象。
它就是Jeb的实例化,也就是在Jeb中操作,如反汇编、反编译、重命名方法名、重命名类名等,都是通过这个类实现的。
下面列出了感兴趣的方法,其他详细参考JebAPI文档。
方法 | 说明 |
---|---|
getDex() | 获取Dex对象,jeb.api.dex.Dex |
print(java.lang.String s) | 在JEB终端打印字符串 |
renameClass(java.lang.String partial_sig, java.lang.String new_name) | 重命名类名 |
renameField(java.lang.String partial_sig, java.lang.String new_name) | 重命名变量名 |
renameMethod(java.lang.String partial_sig, java.lang.String new_name) | 重命名方法名 |
getUI() | 获取JEB界面接口 |