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,选择要执行的脚本。
Hello World!
你好,JEB,我来也……
?? ?¥????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的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情