1. JebAPI 之 jeb.api

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了 1. JebAPI 之 jeb.api相关的知识,希望对你有一定的参考价值。

本文转载自: 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,选择要执行的脚本。

  1. Hello World!
  2. 你好,JEB,我来也……
  3. ?? ?¥????JEB????????¥?1?a?|a?|

中文字符串前面加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界面接口

以上是关于 1. JebAPI 之 jeb.api的主要内容,如果未能解决你的问题,请参考以下文章

4. JebAPI 之 jeb.api.ui

3. JebAPI 之 jeb.api.ast

面向面试编程代码片段之GC

前端面试题之手写promise

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

JAVA之AOP