smali注入常用代码
注入代码需要注意寄存器个数。1.插入log信息 const-string v2,"SN" invoke-static {v2,v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I2.弹出消息框 new AlertDialog.Builder(self).setTitle("普通对话框").setMessage("你好,Android!").show(); new-instance v1,Landroid/app/AlertDialog$Builder; invoke-direct {v1,p0}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)Vconst-string v2,"\u666e\u901a\u5bf9\u8bdd\u6846" invoke-virtual {v1,v2}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; const-string v2,"\u4f60\u597d\uff0cAndroid!" invoke-virtual {v1,v2},Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; invoke-virtual {v1},Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog; move-result-object v2invoke-virtual {v2},Landroid/app/AlertDialog;->show()V将上述smali代码插入MainActivity.smali中的create函数的return-void语句前面3.卡住程序运行方法一:try{Thread.sleep(60*1000); } catch(InterruptedException e){e.printStackTrace();}.line 69const-wide/32 v1,0xeff0:try_start_0#v1=(LongLo);v2=(LongHi);invoke-static {v1,v2},Ljava/lang/Thread;->Sleep(J)V:try_end_0.catch Ljava/lang/InterruptedException; {:try_start_0 .. try_end_0} :catch_0.line 87:goto_0#v0=(Conflicted);#此后面是try后的内容return-void.line 70:catch_0#v0=(Uninit);move-exception v0.line 72.local v0, e:Ljava/lang/InterruptedException;#v0=(Reference);invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()Vgoto :goto_0方法二: android.os.SystemClock.sleep(60*1000);const-wide/32 v0, 0xea60 invoke-static {v0, v1}, Landroid/os/SystemClock;->sleep(J)V4.栈跟踪(调用关系) #new Exception("print trace").printStackTrace();new-instance v0,Ljava/lang/Exception; const-string v1,"print trace" invoke-direct {v0,v1}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V栈跟踪信息记录了程序从启动到printStackTrace()被执行期间所有被调用过的方法。从下往上查看栈跟踪信息, 找到第一条以com.android.stackTrace开头的信息。栈跟踪信息是WARN级别,而且Tag名称被系统命令为System.err. 命令行:adb logcat -s System.err:V *:W5.Method Profiling(调用关系) #android.os.Debug.startMethodTracing("123"); "123"为文件名 #a(); #android.os.Debug.stopMethodTracing();Android-Manifest.xml添加SD卡写入权限 <user-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />#android.os.Debug.startMethodTracing("123"); const-string v0, "123" invoke-static {v0}, Landroid/os/Debug;->startMethodTracing(Ljava/lang/String;) V#android.os.Debug.stopMethodTracing(); invoke-static {}, Landroid/os/Debug;->stopMethodTracing() VSD卡的根目录生成123.trace 分析命令: adb pull /mnt/sdcard/123.trace traceview 123.trace5.添加BroadcastReceiver.# static fields.field private intentFilter:Landroid/content/IntentFilter;.field private reciver:Lcom/example/mytest/MyReciver;method protected onCreate(Landroid/os/Bundle;)Vnew-instance v0, Landroid/content/IntentFilter;invoke-direct {v0}, Landroid/content/IntentFilter;-><init>()Viput-object v0, p0, Lcom/test/SearchActivity;->intentFilter:Landroid/content/IntentFilter;iget-object v0, p0, Lcom/test/SearchActivity;->intentFilter:Landroid/content/IntentFilter;const-string v1, "android.intent.action.search"invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)Vnew-instance v0, Lcom/example/mytest/MyReciver;invoke-direct {v0, p0}, Lcom/example/mytest/MyReciver;-><init>(Landroid/app/Activity;)Viput-object v0, p0,Lcom/test/SearchActivity;->reciver:Lcom/example/mytest/MyReciver;iget-object v0, p0, Lcom/test/SearchActivity;->reciver:Lcom/example/mytest/MyReciver;iget-object v1, p0, Lcom/test/SearchActivity;->intentFilter:Landroid/content/IntentFilter;invoke-virtual {p0, v0, v1}, Lcom/test/SearchActivity;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;..method public onDestroy()Viget-object v0, p0, Lcom/test/SearchActivity;->reciver:Lcom/example/mytest/MyReciver;invoke-virtual {p0, v0}, Lcom/test/SearchActivity;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V 6.等待调试器附加 invoke-static {}, Landroid/os/Debug;->waitForDebugger()V 7.加载so
const-string/jumbo v0, "native-lib"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
转载于:https://www.cnblogs.com/fply/p/8301088.html
smali注入常用代码相关推荐
- 常用android的smali注入代码,android smali代码注入 实战一
有同学在通服里面干活,最近一直忙着4g基站搭建的干活,测试设备(android)测量移动网络数据,没有自动保存记录的功能,只能手动记录各种测试参数,不知道测试软件供应商是怎样想的,竟然不提供的这样的功 ...
- 5 款阿里常用代码检测工具,免费用!
作者 | 喻阳 面临问题 在日常研发过程中,我们通常面临的代码资产问题主要分为两大类:代码质量问题和代码安全漏洞. 1.代码质量问题 代码质量其实是一个老生常谈的话题,但问题是大家都知道它很重要,却又 ...
- android 环境配置和安装, Android系统包说明,基本控件,常用代码,ADB 命令行,APK文件确解,小技艺,...
一. 环境配置和安装(Android2.2) 参考文章:这里 1.1 JDK 1.2 SDK 下载地址:http://dl.google.com/android ...
- 【SpringBoot】 SpringBoot项目常用代码配置
[SpringBoot] SpringBoot项目常用代码配置 1. MyBatis Plus 1.1 分页插件 MP的分页插件几乎每个项目都拥有,基本代码配置如下: @Configuration p ...
- mysql注入报错函数_MySQL注入常用函数
注入的分类 仁者见仁,智者见智. 基于从服务器接收到的响应 ▲基于错误的 SQL 注入 ▲联合查询的类型 ▲堆查询注射 ▲SQL 盲注 •基于布尔 SQL 盲注 •基于时间的 SQL 盲注 •基于报错 ...
- pytorch常用代码
20211228 https://mp.weixin.qq.com/s/4breleAhCh6_9tvMK3WDaw 常用代码段 本文代码基于 PyTorch 1.x 版本,需要用到以下包: impo ...
- 一、PyTorch Cookbook(常用代码合集)
PyTorch Cookbook(常用代码合集) 原文链接:https://mp.weixin.qq.com/s/7at6y2NcYaxGGN8syxlccA 谢谢作者的付出.
- GitHub上7000+ Star的Python常用代码合集
作者 | 二胖并不胖 来源 | 大数据前沿(ID:bigdataqianyan) 今天二胖给大家介绍一个由一个国外小哥用好几年时间维护的Python代码合集.简单来说就是,这个程序员小哥在几年前开始保 ...
- 收藏!PyTorch常用代码段合集
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Jack Stark,来源:极市平台 来源丨https://zhu ...
最新文章
- 2022斯坦福AI指数报告出炉!中国霸榜AI顶会,但引用量最低
- win7 php mysql扩展名_Win7 iis php mysql 开发环境配置(详细)
- 【深度学习】ResNet——CNN经典网络模型详解(pytorch实现)
- flask第一章:项目环境搭建
- (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节2:I/O控制器
- c#.net实体类序列化方法 为什么要序列化
- logStash收集日志并存储到Elasticsearch
- Android/ios手机销售榜信息
- 重读《JavaScript DOM编程艺术》(第一版)
- 入门级XML学习(三)
- html获取xml的数据,xml格式获取值
- ESP32-CAM 摄像头学习
- 阿里云虚拟主机备案期间网站调试
- Universal Source_free Domain Adaption论文阅读笔记
- 转载:ultraiso制作超过4G的系统U盘启动盘教程
- Zynga发布魔法三消手游《Harry Potter: Puzzles Spells》
- 1205 Lock wait timeout exceeded; try restarting transaction处理
- 广州外贸童装批发市场
- 怎样修改计算机用户文件名,win10修改用用户文件夹名字怎么操作_win10更改用户文件夹名称方法...
- Maya: 菜单Create Subdiv Primitives Sphere
热门文章
- java过滤html相关标签
- oracle内与外连接,Oracle (内连接)与(外连接)区别
- pythongetattribute_Python __getattribute__ vs __getattr__ 浅谈
- vue项目 构建 打包 发布 三部曲
- 主从复制面试之作用和原理
- python可以用来写导航吗_在python中使用selenium进行导航
- Python 语言程序设计(4-1)分支循环语句
- 非法使用java_java中的非法远程方法
- KNN(五)--层次Kmean
- 用python提取图片主要颜色_用Python提取图片主要颜色