[关闭]
@oro-oro 2015-08-18T11:16:19.000000Z 字数 945 阅读 2767

1. JebAPI 之 jeb.api

JebAPI

JEB API
官方地址:https://www.pnfsoftware.com/apidoc/
本地路径:jeb/doc

1. IScript

这是Jeb脚本的接口,它支持Java和Python,后面的例子都会以Python为例子讲解。

任何Jeb脚本都必须实现这个接口。而任何一个脚本的类,必须跟文件名一样,跟Java类似。

IScript 下面只有一个方法,脚本的入口,相当于main函数。

  1. run(JebInstance instance)
  2. Script entry point.

写一个 hello world。
- Hello.py

  1. # coding:utf-8
  2. from jeb.api import IScript
  3. class hello(IScript):
  4. def run(self, jeb):
  5. jeb.print("Hello World!")
  6. jeb.print(u"你好,JEB,我来也……")
  7. jeb.print("你好,JEB,我来也……")

打开Jeb,File -> Run Script,选择要执行的脚本。

  1. Hello World!
  2. 你好,JEB,我来也……
  3. 你好,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界面接口
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注