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(),功能:将特定字符串格 ...
随机推荐
- jQuery事件处理(三)
继续了解jQuery对浏览器兼容的处理 1.keyHooks对键盘按键的封装 keyHooks: { // 一些键盘相关的属性 props: "char charCode key keyCo ...
- win10下网狐荣耀手机端android app编译
基于荣耀版(2017.5.21)12 款游戏..7z这款游戏,网上有下载的 1.解压后进入 cd shoujiduan 2.将client/base复制到client/ciphercode/下,也就是 ...
- 重建索引:ALTER INDEX..REBUILD ONLINE vs ALTER INDEX..REBUILD
什么时候需要重建索引 1. 删除的空间没有重用,导致 索引出现碎片 2. 删除大量的表数据后,空间没有重用,导致 索引"虚高" 3.索引的 clustering_facto 和表不 ...
- javascript prototype学习
function foo(a, b, c) { return a*b*c; } alert(foo.length); alert(typeof foo.constructor); alert(type ...
- 自定义容器启动脚本报错:exec user process caused "no such file or directory"
创建容器起不来,一直是restarting状态,查看容器的报错日志如下: standard_init_linux.go:178: exec user process caused "no s ...
- Memcached概念、作用、运行原理、特性、不足简单梳理(1)
大家可能对memcached这种产品早有了解,或者已经应用在自己的网站中了,但是也有一些朋友从来都没有听说过或者使用过.这都没什么关系,本文旨在从各个角度综合的介绍这种产品,尽量深入浅出,如果能对您现 ...
- ElasticSearch概述及Linux下的单机ElasticSearch安装
原文链接:http://blog.csdn.net/w12345_ww/article/details/52182264 这两天在项目中要涉及到ElasticSearch的使用,就上网去搜索了一些这方 ...
- 【CF908G】New Year and Original Order 数位DP
[CF908G]New Year and Original Order 题意:令S(i)表示将i中所有数位上的数拿出来,从小到大排序后组成一个新的数的值.如S(50394)=3459.求$\sum\l ...
- linux shell中curl 发送post请求json格式问题
今天在linux中使用curl发送一个post请求时,带有json的数据,在发送时发现json中的变量没有解析出来 如下 curl -i -X POST -H 'Content-type':'appl ...
- IntelliJ IDEA导出Java 可执行Jar包
extends:http://blog.sina.com.cn/s/blog_3fe961ae0102uy42.html 保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下 ...