本文转载自: 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,我来也……

中文字符串前面加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的更多相关文章

  1. [转载] 4. JebAPI 之 jeb.api.ui

    本文转载自: https://www.zybuluo.com/oro-oro/note/145250 JebInstance可以通过getUI()方法来获得jeb.api.ui.JebUI. JebU ...

  2. [转载] 3. JebAPI 之 jeb.api.ast

    本文转载自: https://www.zybuluo.com/oro-oro/note/143651 0. 序 Jeb 本身是支持变量重命名的,所以,混淆了的变量名.类名可以修改. 实际上,它还可以做 ...

  3. [转载] 2. JebAPI 之 jeb.api.dex

    本文转载自: https://www.zybuluo.com/oro-oro/note/142842 1. jeb.api.dex.Dex 这个类代表正在被JEB处理的DEX文件. 要想更好的了解这个 ...

  4. [转载] ZooKeeper的Java客户端API

    转载自 http://www.cnblogs.com/ggjucheng/p/3370359.html http://zookeeper.apache.org/doc/trunk/javaExampl ...

  5. [转载]Java 8 日期&时间 API

    Java 8 日期和时间 声明 本文转自http://www.journaldev.com/2800/java-8-date-localdate-localdatetime-instant,以mark ...

  6. (转载) ASP.NET(C#) Web Api 通过文件流下载文件到本地实例

    下载文件到本地是很多项目开发中需要实现的一个很简单的功能.说简单,是从具体的代码实现上来说的,.NET的文件下载方式有很多种,本示例给大家介绍的是ASP.NET Web Api方式返回HttpResp ...

  7. (转载)Java8新的日期API LocalDate, LocalTime

    前言 由于Java Date的各种问题,Java8推出了新的日期API,很受一拨人的追捧. 为什么我们需要新的Java日期/时间API? 在开始研究Java 8日期/时间API之前,让我们先来看一下为 ...

  8. 转载LoadRunner的常用Java API

    Java API是访问Vuser函数的基础,通过LoadRunner的Java API可以在脚本中很容易地创建事务与并发点.获取用户信息等功能. 1. 事务函数(Transaction Functio ...

  9. 【转载】Asp .Net Web Api路由路径问题

    原文章地址:https://www.cnblogs.com/devtester/p/8897302.html MVC也好,WebAPI也好,据我所知,有部分人是因为复杂的路由,而不想去学的.曾经见过一 ...

随机推荐

  1. 第九课,T语言数组的定义与访问(版本5.0)

    数组的定义与访问 数组是一系列数据的集合,可以存储大量数据,通过数组的下标.key,可以实现对数据的快速访问. 为什么要使用数组呢? 如果您有一个项目列表(例如汽车品牌列表),在单个变量中存储这些品牌 ...

  2. 5X + 2Y +Z = 50 的所有非负整数解

    这种题的解题方法都差不多,不停的循环,不过如果做一下细分,效率应该可以提升很多,下面把最常规效率也最低的代码贴上,有时间再优化 #include <iostream> using name ...

  3. find命令学习

    find命令与locate命令的区别: locate: 非实时查找: 依赖于索引,而索引构建非常占用资源,索引的创建是在系统空闲时系统自动进行,可以用updatedb命令更新索引: 查找速度快: 非精 ...

  4. Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReference

    Java引用总结--StrongReference.SoftReference.WeakReference.PhantomReference 1 Java引用介绍 Java从1.2版本开始引入了4种引 ...

  5. JS和JQuery总结

    目录目录    2js部分一.词法结构    1.区分大小写    2.注意   // 单行      /*  多行注释  */    3.字面量(直接量  literal)        12  / ...

  6. 淘宝ip库接口调用

    function ip($ip) {     $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;     $ipi ...

  7. Sqlserver推荐参数配置及日志收缩问题

    最近不定期有项目反馈周期性的系统整体性能下降情况,经分析存在因数据库环境.参数配置不佳造成的.比如,sqlserver日志文件缺省按百分比增长,当日志文件已经比较大时,每次扩展时耗时较长,系统整体卡顿 ...

  8. php-fpm 老是warning 进程退出问题

    http://yangjunwei.com/a/723.html 分析Centos系统下LNMP频繁502 Bad Gateway问题 2012-01-28 杨俊伟 )     最近VPS总是出现 N ...

  9. C# 给某个方法设定执行超时时间 C#如何控制方法的执行时间,超时则强制退出方法执行 C#函数运行超时则终止执行(任意参数类型及参数个数通用版)

    我自己写的 /// <summary> /// 函数运行超时则终止执行(超时则返回true,否则返回false) /// </summary> /// <typepara ...

  10. NodeJs http.get 方法请求时间过长问题处理!

    NodeJs 获取网页内容 http.get 默认请求超时过长了,程序要卡死好一会. 根据网上资料现改造了一个带超时设置的获取网页内容方法. 主要方法使用 setTimeout 来超时, 代码如下: ...