本文转载自: 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. python built-in delattr()

    delattr(object,name) 使用此函数必须保证name是可以被删除,即先调用setattr(object,name,value) name必须是字符串并且是object的属性. 函数的作 ...

  2. [hdu 2686]Matrix

    网上说这道题的题解是费用流 我粗粗看了一下数据范围,觉得出题者似乎是让我们用 “大(d)屁(p)” 的样子,为了尊重出题人,我还是写一写吧喵~ 首先,一条回路可以看做是两条路齐头并进,这是 大屁 和 ...

  3. lua的栈

    lua的栈是从栈底到栈顶: lua_pushstring(L, "test1");lua_pushstring(L, "test2");lua_pushstri ...

  4. LNMP编译安装教程

    LNMP编译安装教程 此次安装在Centos上,我采用的CentOS的版本是:CentOS release 6.5 (Final) 可以通过以下命令查看:lsb_release -a 一.准备工作: ...

  5. Python for loop and while loop

    #!pyton2 #-*- coding:utf-8 -*- for letter in "Python": print "Current letter is:" ...

  6. [转]centos 下 autoconf版本升级

    首先查看当前版本 #rpm -qf /usr/bin/autoconf autoconf-2.63-5.1.el6.noarch 卸载当前版本 rpm -e --nodeps autoconf-2.6 ...

  7. 钉钉的收费 [钉钉深圳研发团队 denny/2016.01.06/ 59888745@qq.com]

    普通用户(个人) 团队 企业 1.免费额度为每月通话100分钟.每天发DING 5次. 1.   每月通话300分钟,每天发DING   10次. 2.   群组最多可达1500人 1.   该公司所 ...

  8. State Machine.(状态机)

    What is a State Machine? Any device that changes its state from one to another due to some actions a ...

  9. 【知识点】业务连接服务(BCS)认证概念整理

    业务连接服务(BCS)认证概念整理 I. BDC认证模型 BDC服务支持两种认证模型:信任的子系统,模拟和代理. 在信任的子系统模型中,中间层(通常是Web服务器)通过一个固定的身份来向后端服务器取得 ...

  10. quartus II PIN脚相关之一

    FPGA设计中有时候会改变输入输出名称,但是会带来一个问题,在PIN 叫配置页面上会有余留的久名称的Pin脚.如实例中,把 FPGA_CLK_50MHZ 名称修改为 FPGA_CLK,经过编译综合之后 ...