Apktool 和 Jeb 给出的不同的smali语法
今天发现用Apktool和Jeb反编译出来的smali在语法上有一定区别,比如一个Java函数:
private void packageNameCheck()
{
com.example.testfor360.MainActivity mm = new com.example.testfor360.MainActivity();
mm.packageNameCheck();
}
用Jeb反编译出来是这样的:
.method private packageNameCheck()V
.registers 2
.prologue
00000000 new-instance v0, MainActivity
00000004 invoke-direct MainActivity-><init>()V, v0
.local v0, mm:Lcom/example/testfor360/MainActivity;
0000000A invoke-virtual MainActivity->packageNameCheck()V, v0
00000010 return-void
.end method
而用Apktool反编译出来是这样的:
.method private packageNameCheck()V
.locals 1 .prologue #代码起始指令
.line 80
new-instance v0, Lcom/example/testfor360/MainActivity; invoke-direct {v0}, Lcom/example/testfor360/MainActivity;-><init>()V .line 81
.local v0, mm:Lcom/example/testfor360/MainActivity;
invoke-virtual {v0}, Lcom/example/testfor360/MainActivity;->packageNameCheck()V .line 82
return-void #返回空
.end method
仅仅这一小段看来,有这些区别:
1.Apktool的smali中所有的类都用了完整路径名(L打头),并且以分号结束,包括后面;-><init>的之前,也加了分号;而Jeb只写了类名,并且不带分号
2.方法调用指令invoke-direct中,Apktool把寄存器放到了前面,并且用open brace "{" 和 close brace"}"括起来了;Jeb把寄存器放到了后面,没有大括号
另外,Apktool里的.line在Jeb里也没有出现。
再另外,APKIDE反编译出来的和Apktool基本一致,不同的地方是new出来的对象mm他给加了双引号。看了下APKIDE目录下就有APKTOOL文件夹,基本确定就是用Apktool反编译的,只是Apktool版本不同罢了。
Apktool 和 Jeb 给出的不同的smali语法的更多相关文章
- 练习题 --- 写出5种css定位语法
写出至少5种css语法(每种语法不一样)
- JEB 无源码调试 以dvm smali字节码方式,Demo尝试
关于调试器看不到进程,无法attach的问题,网上也有很多教程,基本是修改ro.debugable =1 ,ro.secure = 0 让adbd有root权限 attach到其他进程,涉及到要修改 ...
- apktool动态破解apk
那么今天我们就用另外一种方式来破解apk:动态方式,关于动态方式其实很广义的,因为动态方式相对于静态方式来说,难度大一点,但是他比静态方式高效点,能够针对更过的破解范围.当然动态方式很多,所以这里就分 ...
- ApkTool反编译和重新打包
有时会需要反编译APK,各人有各人的原因,你都懂的…… 准备工作: 下载APKTool,通过下面这个连接进行下载,https://code.google.com/p/android-apktool/d ...
- apktool介绍
apktool可以反编译出app的资源文件,apktool工具的下载路径:https://ibotpeaches.github.io/Apktool/ 下载后获取到一个jar文件,可以通过如下命令进行 ...
- Android stdio Apktool源码编译
Android Apktool源码编译 标签(空格分隔): Android Apktool 源码编译 需求 习惯NetBeans调试smali需要用Apktool反编译apk,需要用-d的参数才能生成 ...
- Ubuntu使用ApkTool进行APK反编译
1.Apktool下载 http://ibotpeaches.github.io/Apktool/ 下载最新版本Apktool_2.1.1.jar 2.新建一个apktool目录,将Apktool_2 ...
- 5. apktool 给XX手机卫士加广告页
一. 编写广告页 写一个广告页面,并调用其他页面的demo (1) 设计界面如下 (2) 编写代码如下 public class SplashActivity extends Activity { ...
- Android Studio 动态调试 apk 反编译出的 smali 代码
在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...
随机推荐
- sdut 面向对象程序设计上机练习九(对象指针)
面向对象程序设计上机练习九(对象指针) Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 建立对象数组,内放5个学生数据(学号是字符串类型.成绩是整型).设 ...
- Nutch学习笔记一 ---环境搭建
学习环境: ubuntu 概要: Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. 通过nutch,诞生了hadoop.tika ...
- 转: svn服务器路径名修改(不需要全部重新拉取文件)
svn路径名修改之后, 一大波的研发代码都可能面临变更.还有有一个svn relote神器 大家可以借助各自的SVN工具中哦relote命令完成路径的切换,而不需要全部重新download所有的新路径 ...
- nopCommerce从无到有01-初探nopCommerce
nopCommerce框架的基本结构: 该结构可以参考DDD(领域驱动设计)模式. (注:上图源自他人文章,具体出处不祥,在此引用,感谢原创) nopcommerce官方地址:http://www.n ...
- C# 操作摄像头
如有雷同,不胜荣幸,若转载,请注明 这个是大众普通方法,鉴于有网友和朋友问相同的问题.在这里将我的拙劣的代码关键部分贴出来.以便帮助很多其它的朋友们,不足之处甚多,我能够学习,交流,请教阁下 废话到此 ...
- cocos2d-x-3.x bringToFront & sendToBack实现
void Node::bringToFront(void) { auto parent = this->getParent(); if (parent != nullptr && ...
- basePath 方便
String path = request.getContextPath()+"/";String basePath = request.getScheme() + ": ...
- C结构体之位域(位段)(转)
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C语言又提供了一种数据结构 ...
- Objective-C中单例
单例模式,由于其简单好用容易理解.同时在出问题时也容易定位的特点,在开发中经常用到的一个设计模式. 一般在程序中,经常调用的类,如工具类.公共跳转类等,我都会采用单例模式 这个写法是苹果推荐的写法 ...
- 开关电路_MOS和三极管
https://blog.csdn.net/acelit/article/details/70171312 绍过一般的电源开关电路,控制电源的目的是省电,控制静态电流.不过以下的电路存在着几个缺点: ...