Android逆向利器和smali代码修改出错举例-入参类型
当smali修改代码出错举例1,log如下:
虚拟机层次:
1.本身做出了预测,寄存器v2是符合要求入参,暗示你这个也许是你想要的。VFY: register1 v2 type 17, wanted ref
2.下一句:报参数1不对,应该是String类型。 VFY: bad arg 1 (into Ljava/lang/String;)
3.第三行,拒绝调用初始化。VFY: rejecting call to Ljava/lang/StringBuilder;.<init> (Ljava/lang/String;)V
4. 拒绝调用代码和偏移量。VFY: rejecting opcode 0x70 at 0x031f
5. 函数调用堆栈。VFY: rejected Lcom/dataviz/dxtg/common/android/AboutScreenActivity;.onCreate (Landroid/os/Bundle;)V
6.出错类,全路径。Verifier rejected class Lcom/dataviz/dxtg/common/android/AboutScreenActivity;
7.出错详细描述。Class init failed in newInstance call (Lcom/dataviz/dxtg/common/android/AboutScreenActivity;)
Android运行时日志:
略。
有的网络差(如我这)不好搞。
Baksmali - 使用最广泛的DEX反编译工具 (apktool/antilvl等使用)(https://code.google.com/p/smali/)
dex2jar - 可以把DEX反编译成jar的工具,然后通过JD-GUI查看。(http://code.google.com/p/dex2jar/)
IDA Pro - 利器(https://www.hex-rays.com/index.shtml)
androguard - 也行的。(https://code.google.com/p/androguard/),github托管:https://github.com/androguard/androguard/ 看雪文章 关于androguard那点事 Androguard软件安装方法
AndBug - 动态逆向分析工具(https://github.com/anbc/AndBug/), 看雪文章:Android动态逆向分析工具 : Andbug之基本操作 、Andbug扩展功能
jswat - java写的GUI。(https://code.google.com/p/jswat/), 看雪文章:jswat无源码动态调试工具
eclipse(Apktool )- 动态调试, 看雪文章:反编译apk+eclipse中动态调试smali
以下是引用:
dex2jar contains following compment
- dex-reader is designed to read the Dalvik Executable (.dex/.odex) format. It has a light weight API similar with ASM. An example here
- dex-translator is designed to do the convert job. It reads the dex instruction to dex-ir format, after some optimize, convert to ASM format.
- dex-ir used by dex-translator, is designed to represent the dex instruction
- dex-tools tools to work with .class files. here are examples:
- d2j-smali [To be published] disassemble dex to smali files and assemble dex from smali files. different implementation to smali/baksmali, same syntax, but we support escape in type desc "Lcom/dex2jar\t\u1234;"
- dex-writer [To be published] write dex same way as dex-reader.
About
smali/baksmali is an assembler/disassembler for the dex format used by dalvik, Android's Java VM implementation. The syntax is loosely based on Jasmin's/dedexer's syntax, and supports the full functionality of the dex format (annotations, debug info, line info, etc.)
The names "smali" and "baksmali" are the Icelandic equivalents of "assembler" and "disassembler" respectively. Why Icelandic you ask? Because dalvik was named for an Icelandic fishing village.
Curious what the smali format looks like? Here's a quick HelloWorld example to whet your appetite.
Got questions/comments? Need help? Come hang out in #smali on freenode.
News
2014-01-17 v2.0.3 is out
- More bugs being slaughtered in this release. Notably, smali's memory footprint should now be reduced, although it's still a good idea to use -JXmx512m when using multiple threads.
- We also managed to sneak in some new features as well. Thanks to whydoubt, it's now possible to add a comment with the resource name when a resource id is referenced in the bytecode as a constant, using the new -i flag.
- As a reminder, the googlecode downloads are deprecated and downloads are now hosted at bitbucket
Description
Androguard is mainly a tool written in python to play with :
- Dex/Odex (Dalvik virtual machine) (.dex) (disassemble, decompilation),
- APK (Android application) (.apk),
- Android's binary xml (.xml),
- Android Resources (.arsc).
Androguard is available for Linux/OSX/Windows (python powered).
Features
Androguard has the following features :
- Map and manipulate DEX/ODEX/APK/AXML/ARSC format into full Python objects,
- Diassemble/Decompilation/Modification of DEX/ODEX/APK format,
- Decompilation with the first native (directly from dalvik bytecodes to java source codes) dalvik decompiler (DAD),
- Access to the static analysis of the code (basic blocks, instructions, permissions (with database from http://www.android-permissions.org/) ...) and create your own static analysis tool,
- Analysis a bunch of android apps,
- Analysis with ipython/Sublime Text Editor,
- Diffing of android applications,
- Measure the efficiency of obfuscators (proguard, ...),
- Determine if your application has been pirated (plagiarism/similarities/rip-off indicator),
- Check if an android application is present in a database (malwares, goodwares ?),
- Open source database of android malware (this opensource database is done on my free time, of course my free time is limited, so if you want to help, you are welcome !),
- Detection of ad/open source librairies (WIP),
- Risk indicator of malicious application,
- Reverse engineering of applications (goodwares, malwares),
- Transform Android's binary xml (like AndroidManifest.xml) into classic xml,
- Visualize your application with gephi (gexf format), or with cytoscape (xgmml format), or PNG/DOT output,
- Integration with external decompilers (JAD+dex2jar/DED/fernflower/jd-gui...)
- ....
Downloads
Our new repository is hosted on github
Sublime Text 2 Plugin
Please read the documentation.
Android逆向利器和smali代码修改出错举例-入参类型的更多相关文章
- android逆向分析之smali语法
一 .smali数据类型 1.Dalvik字节码 Davlik字节码中,寄存器都是32位的,能够支持任何类型,64位类型(Long/Double)用2个连续的寄存器表示: Dalvik字节码有两种类型 ...
- Android逆向基础知识Smali
什么是Smali: 我们用工具反编译一些APP的时候,会看到一个smali文件夹,里面其实就是每个Java类所对应的smali文件.Android虚拟机Dalvik并不是执行java虚拟机JVM编译后 ...
- Android Studio动态调试smali代码
工具: Android Studio版本: 3.0.1 smalidea插件: https://github.com/JesusFreke/smali/wiki/smalidea. 反编译工具:本节先 ...
- 动态调试某个apk的smali代码,微信举例
本地环境: PC:windows 10,Intellij IDEA (android studio应该一样的) 手机:nexus5 8.1系统, 其他依赖:smalidea插件,xposed 插件 h ...
- Android调试系列—使用android studio调试smali代码
1.工具介绍 使用工具 android killer:用于反编译apk包,得到smali代码 android studio:调试smali代码工具,或者使用idea,android studio就是在 ...
- apk反编译(4)Smali代码注入
转自 : http://blog.sina.com.cn/s/blog_5674d18801019i89.html 应用场景 Smali代码注入只能应对函数级别的移植,对于类级别的移植是无能为力的.具 ...
- android smali代码注入 实战一
有同学在通服里面干活,最近一直忙着4g基站搭建的干活,测试设备(android)测量移动网络数据,没有自动保存记录的功能,只能手动记录各种测试参数,不知道测试软件供应商是怎样想的,竟然不提供的这样的功 ...
- 《Android逆向反编译代码注入》 - 逆向安全入门必看视频教程
适合人群: Android开发人员.逆向反编译开发人员.以及对Android逆向安全感兴趣的朋友. 视频地址: 51CTO学院:https://edu.51cto.com/course/24485 ...
- Android逆向之smali
Android逆向之smali 头信息 smail文件前三行 .class <访问权限> [关键修饰字] <类名>; .super <父类名>; .source & ...
随机推荐
- 织梦dedecms自定义表单设置必填项
1. 用php验证 在plus/diy.php的第 40行下加 //增加必填字段判断 if($required!=''){ if(preg_match('/,/', $required)) { $re ...
- 使用adb命令启查看已安装的Android应用的versionCode、versionName
列出已经安装的应用 adb shell pm list package C:\Users\CJTDEV003>adb shell pm list package package:com.sams ...
- DataTable排序
DataRow[] rows = dt.Select("", "name asc"); DataTable t = dt.Clone(); t.Clea ...
- EasyUI 动态生成列加分页
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...
- Quartz与Terracotta的集成
Quartz与Terracotta的集成 博客分类: Java&Socket 企业应用面临的问题 开源组件的应用 quartz任务集群数据库任务调度Terracotta Quartz与Ter ...
- 洛谷P3327 - [SDOI2015]约数个数和
Portal Description 共\(T(T\leq5\times10^4)\)组数据.给出\(n,m(n,m\leq5\times10^4)\),求\[\sum_{i=1}^n\sum_{j= ...
- annotation之@Autowired、@Inject、@Resource三者区别
一.@Autowired 1.@Autowired是spring自带的注解,通过‘AutowiredAnnotationBeanPostProcessor’ 类实现的依赖注入: 2.@Autowire ...
- linux文件夹作用
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基 ...
- 区间翻转(codevs 3243)
题目描述 Description 给出N个数,要求做M次区间翻转(如1 2 3 4变成4 3 2 1),求出最后的序列 输入描述 Input Description 第一行一个数N,下一行N个数表示原 ...
- Mysql常见配置说明
[mysqld]配置 default-storage-engine = MyISAM 默认选择某种表存储引擎 ignore-bulidin-innodb 忽略mysql自带的innodb引擎,使用这个 ...