smali过滤特定字符串
过滤插入代码:
const-string/jumbo v0, "aaaaaaa"
invoke-static {v0}, Lcom/bihu/insurancerobot/util/filterlog;->bshow(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_0
const-string v0, "aaatag"
const-string v1, "msg"
invoke-static {v0,v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
:cond_0
bshow所在smali代码:
.class public Lfilterlog;
.super Ljava/lang/Object;
.source "filterlog.java" # static fields
.field static list_filter:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field # direct methods
.method static constructor <clinit>()V
.locals 1 .prologue
.line 21
invoke-static {}, Lfilterlog;->read()Ljava/util/List; move-result-object v0 sput-object v0, Lfilterlog;->list_filter:Ljava/util/List; return-void
.end method .method public constructor <init>()V
.locals 0 .prologue
.line 15
invoke-direct {p0}, Ljava/lang/Object;-><init>()V return-void
.end method .method public static bshow(Ljava/lang/String;)Z
.locals 5
.param p0, "clsname" # Ljava/lang/String; .prologue
.line 25
const/4 v0, 0x0 .line 27
.local v0, "bret":Z
sget-object v4, Lfilterlog;->list_filter:Ljava/util/List; invoke-interface {v4}, Ljava/util/List;->size()I move-result v2 .line 28
.local v2, "size":I
const/4 v1, 0x0 .local v1, "i":I
:goto_0
if-ge v1, v2, :cond_0 .line 30
sget-object v4, Lfilterlog;->list_filter:Ljava/util/List; invoke-interface {v4, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/lang/String; .line 31
.local v3, "substr":Ljava/lang/String;
invoke-virtual {p0, v3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v4 if-eqz v4, :cond_1 .line 33
const/4 v0, 0x1 .line 40
.end local v3 # "substr":Ljava/lang/String;
:cond_0
return v0 .line 28
.restart local v3 # "substr":Ljava/lang/String;
:cond_1
add-int/lit8 v1, v1, 0x1 goto :goto_0
.end method .method public static getInnerSDCardPath()Ljava/lang/String;
.locals 1 .prologue
.line 18
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File; move-result-object v0 invoke-virtual {v0}, Ljava/io/File;->getPath()Ljava/lang/String; move-result-object v0 return-object v0
.end method .method public static read()Ljava/util/List;
.locals 10
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation .prologue
.line 46
new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V .line 47
.local v0, "_list":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
invoke-static {}, Lfilterlog;->getInnerSDCardPath()Ljava/lang/String; move-result-object v6 .line 48
.local v6, "sdpath":Ljava/lang/String;
new-instance v8, Ljava/lang/StringBuilder; invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V invoke-virtual {v8, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v8 const-string/jumbo v9, "/filter" invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v8 invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 .line 49
.local v3, "filterpath":Ljava/lang/String;
new-instance v2, Ljava/io/File; invoke-direct {v2, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V .line 50
.local v2, "f":Ljava/io/File;
const/4 v4, 0x0 .line 51
.local v4, "reader":Ljava/io/BufferedReader;
const/4 v7, 0x0 .line 54
.local v7, "tempstr":Ljava/lang/String;
:try_start_0
new-instance v5, Ljava/io/BufferedReader; new-instance v8, Ljava/io/FileReader; invoke-direct {v8, v2}, Ljava/io/FileReader;-><init>(Ljava/io/File;)V invoke-direct {v5, v8}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
:try_end_0
.catch Ljava/io/FileNotFoundException; {:try_start_0 .. :try_end_0} :catch_3
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_1 .line 55
.end local v4 # "reader":Ljava/io/BufferedReader;
.local v5, "reader":Ljava/io/BufferedReader;
:try_start_1
invoke-virtual {v5}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String; move-result-object v7 .line 56
:goto_0
if-eqz v7, :cond_0 .line 58
invoke-interface {v0, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_1
.catch Ljava/io/FileNotFoundException; {:try_start_1 .. :try_end_1} :catch_0
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_2 goto :goto_0 .line 61
:catch_0
move-exception v1 move-object v4, v5 .line 63
.end local v5 # "reader":Ljava/io/BufferedReader;
.local v1, "e":Ljava/io/FileNotFoundException;
.restart local v4 # "reader":Ljava/io/BufferedReader;
:goto_1
invoke-virtual {v1}, Ljava/io/FileNotFoundException;->printStackTrace()V .line 70
.end local v1 # "e":Ljava/io/FileNotFoundException;
:goto_2
return-object v0 .end local v4 # "reader":Ljava/io/BufferedReader;
.restart local v5 # "reader":Ljava/io/BufferedReader;
:cond_0
move-object v4, v5 .line 67
.end local v5 # "reader":Ljava/io/BufferedReader;
.restart local v4 # "reader":Ljava/io/BufferedReader;
goto :goto_2 .line 64
:catch_1
move-exception v1 .line 66
.local v1, "e":Ljava/io/IOException;
:goto_3
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V goto :goto_2 .line 64
.end local v1 # "e":Ljava/io/IOException;
.end local v4 # "reader":Ljava/io/BufferedReader;
.restart local v5 # "reader":Ljava/io/BufferedReader;
:catch_2
move-exception v1 move-object v4, v5 .end local v5 # "reader":Ljava/io/BufferedReader;
.restart local v4 # "reader":Ljava/io/BufferedReader;
goto :goto_3 .line 61
:catch_3
move-exception v1 goto :goto_1
.end method
smali过滤特定字符串的更多相关文章
- asp正则过滤重复字符串的代码
asp下过滤重复字符串的代码,有时候我们需要过滤一些重复的字符串,下面的代码即可解决这个问题 比如 1223445677777778aabbcccccccccc 经过过滤之后就是12345678abc ...
- spyder里的"查找文件里的特定字符串"非常方便
spyder里的"查找文件里的特定字符串"非常方便 快捷键是: ^+shift+F 使用方法: 输入被查找的字符串: 比如: .rcParam, 注意大小写敏感的(默认设置) 回车 ...
- 在Linux下查找文件内容包含某个特定字符串的文件
如何在Linux下查找文件内容包含某个特定字符串的文件? 我的目录下面有test1和test2两个文件夹,里面都含有很多文件,其中test2里面还包含一个test文件夹 我想请问的是,如何通过查找关键 ...
- Linux查找含有特定字符串的文件
Linux查找含有特定字符串的文件命令为grep.以下为详细的使用方法 grep [OPTIONS] PATTERN [FILE...] #实例:递归查找当前文件夹下所有含有test的文件,并显示行号 ...
- 【转载】 C#使用string.Join快速用特定字符串串联起数组
在C#中有时候我们的数组元素需要通过一些特定的字符串串联起来,例如将整形Int数组通过逗号快速串联起来成为一个字符串,可以使用String.Join方法.或者一个字符串string类型数组所有元素快速 ...
- bat批处理 查找替换:批处理如何查找并替换文本里特定字符串中的部分内容
批处理如何查找并替换文本里特定字符串中的部分内容 摘自:http://www.bathome.net/thread-43349-1-1.html 脚本如下: @if()==() echo off &a ...
- Linux 查找当前目录下 包含特定字符串 的所有文件
使用 Linux 经常会遇到这种情况:只知道文件中包含某些特定的字符串,但是不知道具体的文件名.需要根据“特定的字符串”反向查找文件. 示例(路径文件如下): ./miracle/luna/a.txt ...
- Python-查找并保存特定字符串后面的字符串
-- -- 本算法用于查找并存储“特定字符串”后面的字符串. -- 举例: strli = "kaka is li is da is wei !" #用于查找的字符串 sep_li ...
- Python_time库_特定字符串格式的时间、struct_time、时间戳的处理
time库 时间戳:格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数. # time.strptime(),功能:将特定字符串格 ...
随机推荐
- Sencha Touch 实战开发培训 视频教程 第二期 第八节 (完结)
2014.4.23 晚上8:00左右开课. 本节课耗时超长,因为演示过程中出现了一些小错误,所以耗时接近2小时. 本期培训一共八节,前两节免费,后面的课程需要付费才可以观看. 本节内容: 开发cord ...
- SQLite 3的中文读写
调用sqlite3_open函数默认创建的数据库encoding=UTF-8,执行sqlite3_exec时需要将对应的字符串转换为UTF-8格式多字节字符串.比如: sqlite3* db; aut ...
- mock server搭建及接口测试简单实例
一.搭建mock server mock工具很多,这里我们选择用简单易操作的moco服务器 使用前必须先安装java,去相关网站下载Standalone Moco Runner 二.使用mock se ...
- java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException
启动spring boot项目的时候遇到了报错: -Sep- ::15.513 INFO [main] org.apache.catalina.core.StandardService.startIn ...
- border-image使用过程中遇到的几个问题
这次年货,为了增添气氛,很多地方都用了边框,由于边框高度的不固定,给构建着实带了不小的麻烦. 通常我们处理边框的方法,无非以下两种方案: 1.切整张图片,做背景. 2.切上中下,进行拼接处理. 但是遇 ...
- windows下的zookeeper安装
先在官网下载安装包(https://www.apache.org/dyn/closer.cgi/zookeeper/),单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如:C ...
- Docker Swarm——集群管理
前言 之前在总结docker machine的时候,当时对docker理解还不够深入,甚至还不知道 docker machine 与 docker swarm 的区别. 在查阅资料以及官方文档之后,今 ...
- /etc/vim/vimrc的一个的配置
(转)Vim 配置文件===/etc/vimrc "===================================================================== ...
- Ajax做列表无限加载和Ajax做二级下拉选项
//栏目Ajax做加载 public function ajaxlist(){ //echo "http://www.域名.com/index.php?a=Index&c=Index ...
- HOJ 1438 The Tower of Babylon(线性DP)
The Tower of Babylon My Tags Cancel - Seperate tags with commas. Source : University of Ulm Internal ...