apk反编译(2)smali语言及文件
Smali语言是Davlik的虚拟机使用的一种语言,用toolapk反编译apk后,可以见到大量的.smali文件。
可以按照smali语法对其修改,然后重新生成一个未签名的apk。
下面是一个示例:
.class final Lcom/tencent/smtt/sdk/QbSdk$;
.super Ljava/lang/Object;
.source "SourceFile" # interfaces
.implements Lcom/tencent/smtt/sdk/QbSdk$b; # annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/tencent/smtt/sdk/QbSdk;
.end annotation .annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = null
.end annotation # direct methods
.method constructor <init>()V
.locals .prologue
.line
invoke-direct {p0}, Ljava/lang/Object;-><init>()V sget-boolean v0, Lcom/tencent/mm/BuildConfig;->SKIP:Z if-nez v0, :cond_0 invoke-static {}, Lcom/tencent/mm/A;->a()V :cond_0
return-void
.end method # virtual methods
.method public final onDownloadFinish(I)V
.locals .prologue
.line
const/ v0, 0x0 sput-boolean v0, Lcom/tencent/smtt/sdk/k;->llf:Z .line
invoke-static {}, Lcom/tencent/smtt/sdk/QbSdk;->bgT()Lcom/tencent/smtt/sdk/n; move-result-object v0 if-eqz v0, :cond_0 .line
invoke-static {}, Lcom/tencent/smtt/sdk/QbSdk;->bgT()Lcom/tencent/smtt/sdk/n; move-result-object v0 invoke-interface {v0, p1}, Lcom/tencent/smtt/sdk/n;->onDownloadFinish(I)V .line
:cond_0
sget-object v0, Lcom/tencent/smtt/sdk/QbSdk;->mTbsListenerDebug:Lcom/tencent/smtt/sdk/QbSdk$b; if-eqz v0, :cond_1 .line
sget-object v0, Lcom/tencent/smtt/sdk/QbSdk;->mTbsListenerDebug:Lcom/tencent/smtt/sdk/QbSdk$b; invoke-interface {v0, p1}, Lcom/tencent/smtt/sdk/QbSdk$b;->onDownloadFinish(I)V .line
:cond_1
return-void
.end method .method public final onDownloadProgres(I)V
.locals .prologue
.line
sget-object v0, Lcom/tencent/smtt/sdk/QbSdk;->mTbsListenerDebug:Lcom/tencent/smtt/sdk/QbSdk$b; if-eqz v0, :cond_0 .line
sget-object v0, Lcom/tencent/smtt/sdk/QbSdk;->mTbsListenerDebug:Lcom/tencent/smtt/sdk/QbSdk$b; invoke-interface {v0, p1}, Lcom/tencent/smtt/sdk/QbSdk$b;->onDownloadProgres(I)V .line
:cond_0
return-void
.end method .method public final onInstallFinish(I)V
.locals .prologue
const/ v0, 0x0 .line
invoke-static {v0}, Lcom/tencent/smtt/sdk/QbSdk;->setTBSInstallingStatus(Z)V .line
sput-boolean v0, Lcom/tencent/smtt/sdk/k;->llf:Z .line
invoke-static {}, Lcom/tencent/smtt/sdk/QbSdk;->bgT()Lcom/tencent/smtt/sdk/n; move-result-object v0 if-eqz v0, :cond_0 .line
invoke-static {}, Lcom/tencent/smtt/sdk/QbSdk;->bgT()Lcom/tencent/smtt/sdk/n; move-result-object v0 invoke-interface {v0, p1}, Lcom/tencent/smtt/sdk/n;->onInstallFinish(I)V .line
:cond_0
sget-object v0, Lcom/tencent/smtt/sdk/QbSdk;->mTbsListenerDebug:Lcom/tencent/smtt/sdk/QbSdk$b; if-eqz v0, :cond_1 .line
sget-object v0, Lcom/tencent/smtt/sdk/QbSdk;->mTbsListenerDebug:Lcom/tencent/smtt/sdk/QbSdk$b; invoke-interface {v0, p1}, Lcom/tencent/smtt/sdk/QbSdk$b;->onInstallFinish(I)V .line
:cond_1
return-void
.end method
apk反编译(2)smali语言及文件的更多相关文章
- apk反编译、smali修改、回编译笔记
最近下了一个apk程序,但是一启动会弹出一个流氓广告.这个广告不是原厂商加的,而是有人在原有apk程序的基础上,加了一个壳,让apk先启动他加的广告,再启动原来的程序,很恶心.于是想去掉它. 试了几个 ...
- apk反编译(4)Smali代码注入
转自 : http://blog.sina.com.cn/s/blog_5674d18801019i89.html 应用场景 Smali代码注入只能应对函数级别的移植,对于类级别的移植是无能为力的.具 ...
- apk反编译(3)smali语法
from http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html Dalvik opcodes Author: Gabor Paller Vx ...
- [Android逆向]APK反编译与回编译
一.先查壳,再反编译看验证首先打开.apk文件==>反编译apk(dex/配置文件/资源文件(apk反编译失败)>修改关键文件实现自己的目的>重新打包签名(无法重新打包)==> ...
- APK反编译之一:基础知识—APK、Dalvik字节码和smali文件
refs: APK反编译之一:基础知识http://blog.csdn.net/lpohvbe/article/details/7981386 APK反编译之二:工具介绍http://blog.csd ...
- apk反编译生成程序的源代码和图片、XML配置、语言资源等文件
Android应用的UI越来越漂亮,遇到喜欢的我们可以通过反编译,得到应用的源代码借鉴下别人的思想. 具体步骤: 1.下载 apktool 下载地址:https://code.google.com/p ...
- Android Studio 动态调试 apk 反编译出的 smali 代码
在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...
- apk反编译工具
反编译工具: apktool:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar:将apk反编译成Java源码(classes.dex转化成jar文件) jd-gui:查看APK中 ...
- apk 反编译
http://blog.csdn.net/vipzjyno1/article/details/21039349/ [置顶] Android APK反编译就这么简单 详解(附图) 标签: android ...
随机推荐
- Mysql ubuntu下的安装卸载
删除 mysql sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get remove mysql-serversudo apt-ge ...
- 【js】 流式布局 页面
<!DOCTYPE html><html><head> <meta content="text/html; charset=utf-8" ...
- .net speed up
Ngen.exe http://www.cnblogs.com/yukaizhao/archive/2011/11/07/how-to-use-ugen.html Merge.exe Merge dl ...
- python学习小结1:for循环控制语句
用一个列表来确定for循环的范围 >>> x = [0,1,2,3,4] >>> for i in x: print i, 0 1 2 3 4 循环一个字符串 & ...
- 那些我用过的Android开源项目
1.RefreshActionItem 基于ActionBarSherlock库的一个扩展,在标题栏右边显示多种刷新效果的UI按钮. 项目主页: https://github.com/ManuelPe ...
- hadoop历史服务器配置问题
作者:sdjnzqr 出处:http://www.cnblogs.com/sdjnzqr/ 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须在文章中给出原文连接 ...
- 【BZOJ】【2844】albus就是要第一个出场
高斯消元解XOR方程组 srO ZYF Orz 膜拜ZYF…… http://www.cnblogs.com/zyfzyf/p/4232100.html /******************** ...
- NS记录
NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析. 1名词简介 您注册域名时,总有默认的DNS服务器,每个注册的域名都是由一个DNS域名服务器来进行解析的 ...
- 如何使用yum来下载RPM包而不进行安装
如何使用yum来下载RPM包而不进行安装 2015-03-23 13:15 theo-l译 linux.cn 字号:T | T yum是基于Red Hat的系统(如CentOS.Fedora.RHEl ...
- poj 2387 Til the Cows Come Home (最短路,dijkstra模版题)
题目 #define _CRT_SECURE_NO_WARNINGS #include<string.h> #include<stdio.h> #include<math ...