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(),功能:将特定字符串格 ...
随机推荐
- IPhoneX网页布局 全屏布局(转)
IPhoneX全面屏是十分科技化的,但是由于其圆角和摄像头刘海位置以及操控黑条的存在使得我们需要去对其样式做一些适配,没有X的同学可以开启 Xcode 9 的iPhone X 模拟器作为学习和调试. ...
- Python tkinter 控件更新信息
下面几个例子关于tkinter界面更新的,简单易懂,分享一下. 例子_1: 代码_1: from tkinter import Tk, Checkbutton, Label from tkinter ...
- [Noi2016]区间[离散化+线段树维护+决策单调性]
4653: [Noi2016]区间 Time Limit: 60 Sec Memory Limit: 256 MBSubmit: 621 Solved: 329[Submit][Status][D ...
- 4606: [Apio2008]DNA
4606: [Apio2008]DNA Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 63 Solved: 36[Submit][Status][D ...
- Web Service Client使用Microsoft WSE 2.0
我安装了WSE 2.0 SP3,Setup Type选择Runtime.如果想要让Visual Studio 2005以上版本集成WSE需稍费周折,默认集成Visual Studio 2005. 1. ...
- 【CF932E】Team Work/【BZOJ5093】图的价值 数学+NTT
[CF932E]Team Work 题意:求$\sum\limits_{i=1}^nC_n^ii^k$,答案模$10^9+7$.$n\le 10^9,k\le 5000$. [BZOJ5093]图的价 ...
- [工具] Sublime Text 使用指南
http://bbs.it-home.org/thread-46291-1-1.html 摘要(Abstract) 更新记录 更正打开控制台的快捷键为Ctrl + ` 更正全局替换的快捷键为Ctrl ...
- iOS - 使用WKWebView时OC调JS的user-select属性控制用户操作
// 页面加载完成之后调用 - (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigatio ...
- python3+socket搭建简易服务器
踩了一上午的坑之后,终于对网络编程有了一点大致的.基本的了解.真的是0基础,之前对socket网络编程一点都不知道.(感觉自己与时代脱轨....) 首先我想对这些美妙的专业术语进行一番搜索: 服务器: ...
- PyCharm 4.0.4 开启代码自动补全
目前在使用的PyCharn 版本为4.0.4,在使用的过程中无法使用代码补全功能,经过Google 搜索只需要修改两处即可实现代码补全 1 选择File-Setting-Inspections 找到对 ...