论文研究-基于smali的Android软件敏感API调用日志模块嵌入系统 .pdf


-
基于smali的Android软件敏感API调用日志模块嵌入系统,吕晓庆,邹仕洪,在恶意软件动态分析中,需要用到软件运行时的API调用日志,特别是敏感API的调用日志,而Android系统的日志仅提供了有限的信息。为获��
山国武花论文在丝 对象 等价于中的 表示这是个对象类型, 表示对象所在 的包, 是对象的 名称,“”表示对象的结東 数组单维数组用类似与表示,多维数组每增加一维添加一个符表示,表示 方法采用类似于 对象调用了 的形式 方法 变量采用类似于 衣示对象的类型为 名 称为 变量 寄存命名方式和命名方式。命名方式中的是方法中的第指令 指定方法中寄 器 一个参数寄存器 存器的总数,指令表明 方法中非参寄存器的数量。当 方法被调用的时候,方法 的个参数被置于最后个 奇存器中,而丰静态方法中的 第一个参数总是调用该方法 的对象。 处理流程 由于语法完整地实现了的所有功能,代码中的敏感与相应要嵌入的 调用日志模块,都可以找到对应的代码表示;而文件可以和文件进行 无损的互相转换,那么可以在代码层实现敏感的定位以及对应的调用日志模 块的嵌入。只体过栏为如下图所小:可以首先获取文件,然后将使用 工只将 文件转化为文件,在文件中查找敏感对应的代码,一旦匹配即可 嵌入对应的调用日志模块的代码,然后使用工具将新的文件编译成 文件,最后打包生成文件 APK解压获取dex bakali工具将 查找敏感API在 文件 de转化为sma文 smali文件中的位 件 置 嵌入日志记录模 smali. l具将 smali dex文件与APK中 块 smali/代码 代码转换成dex文其他文件打包成 件 新的APK 图嵌入调用日志模块流程图 山国武花论文在丝 系统设计 系统框架 基于的 软件敏感调用口志模块嵌入系统如下图所示,主要由以下 五部分组成 反编译模块,敏感代码库,调用日志记录代码库,日志嵌入模 块,以及编译模块 基于smai的 Android软件敏感AP调用日志模块嵌入系统 输入 APK 日志 APK APK 一N反编泽代码 歌入 输出嵌 编译 入日 模块 模块 代码 模块 的 APK 敏感代码库 调用日志记录 代码库 图系统总休架构图 各模块描述 下面分别对系统五个部分进行详细描述。 反编译模块 该模块负责实现将中的 文件反编译成文件的功能,分两步进行: 首先,将输入中的 文件抽取出来,然后将 反编译为文件。 由于文件是格式文件,本模块通过调用解压工只( 等工只)将输 入的解压到某·文件夹下,然后从中选取出 文件,其他文件留存备用;接 着本模块通过调用 ⊥具,将刚才取出的 反编译为文件,供口志嵌 入模块使用。 敏感代码库 本库存放的是敏感及其对应的代码,供后续的日志嵌入模块在反编译 模块牛成的文件中定位敏感使用 敏感来源于对已知恶意软件分析的经验,以及对已知恶意软件和己知正常软件 统计的差异。最终选定了可以用来完成发送短信、删除短信、拨打电话、删除通话记录、修 改联系人、执行脚木等功能的 根据语法中函数的表示方法,得到敏感对应的语法形式表示。以发送 短信为例,通常通过调用 类的 方法来实现,在敏感代码库中的记录如表 所 山国武技论文在丝 表 在敏感代码库的记录 敏感功能描敏感函数 对应的语法表示 发送短 类中的 区数 调用日志记录代码库 本库存放的是与敏感调用口志的记录代码相应的代码。 对于不同的,对应的调用日志记录代码有不同的地方,例如对发送短信调用的 日志需要记录短信的收件人号码以及短信内容,而对修改联系人号码调用的日志需要 记录修改联系人的姓名、修改前的号码和修改后的号码;也有相同的部分,比如所表 示的行为的名称,调用时间等等,以及为记录信息需要实现的写文件操作部分。为此, 对每一个要监控的,除了各可通用的调用日志代码部分,还有专门针对该的 调用日志代码。 对于通用的调用日志代码部分,设计两个公用函数,第一个函数 实现对名称、调用时间等等公共部分的记录;另一个函数 实现对某参数 的记录。创建一个工程实现这两个公用函数,然后编译该工程生成,利用反编译 模块将该中的文件反编译成文件,从中提取出两个公用函数对应的代 而每个独特的部分是该的输入和输出,根据函数原型,以及语法中 的寄存器命名原则,获取该需要记录参数在语法中对应的寄存器编号。如程序 调用 发送短信,在对 应的代码中收件人号码参数和短信内容参数对应的寄存器为和,在调用日 志记录代码库中的记录如表所示: 表 在调用日志记录代码库中的表示 敏感敏感函数 耍记录的寄存器 类中的 数 数 对应代码将寄存器值作为输入进行记录,于是,公用函数代码与每 个要记录参数对应的寄存器共同构成了调用日志记录代码库,组合可实现对各个 调用的日志记录 日志嵌入模块 本模块负责在反编译模块生成的文件中的敏感位置嵌入相应的口志记 录代码。首先本模块扫描反编译模块生成的文件,与敏感代码库中的 进行比对;如果匹配成功,根据匹配到的敏感在调用日志记录代码库获取对应记 山国武花论文在丝 录代码的代码,并将其加入到文件的相应位置;接着从该位置川始进行卜轮 比对,直至扌描完全部文件。 编译模块 本模块负责将揿入日忐模块的文件编译为新的可用。首先本模块通过调用 工具将牛成的文件编译为新的 ,然后通过调用压缩工具将新的 文件与反编译模块留存的其他文件压缩牛成新的 并对其签名。 验证测试 为验证方案的设计效果,在 上对其进行实现,并构造测试用例进行检验。 为保证本系统的正常运行,安装了 等要 的工具和环境。程序框架使用 实现, 反编译模中的解压程序以及编译 模块中的压缩程序均使用 敏感调用日志输出格式为文件,输出位置为 卡。选取 软件 该软件一旦运行会自动在后台发送短信,通过检 验该软件经过本系统处理后能否成功监控其中发送短信的敏感,来验证本系统的有效 SandA Beyond Cor Session File Edit Search view oo s Help 分 Sessions =同x”□ψ个的争中回回 D:\ experiment\ Send MessageLcgged\smali\com\ SendMecsa ge\Send Message smali E6 FILTERED LNES move-abject move-object v5. v2 invoke-virtJal/range ve.. v5, Landroid/telephony/SmsManageri->sendTextMes sage(Ljava/lang/s invoke-static [ v1, V3, Lxq/log/Logfilag-writeLog(Ljava/lang/string; )v line 46 rn-void cne ethod 67:1 已 ermen nt\ Send Message\smal com\ Send Message\SendMessage smali move-abject v4, v2 nove abject v5, V2 inwoke-virtual/range vU . v5, Landroid,telephony/'smsManageri->send l extmes sage(Ljava/lang/> line 46 turn-yoid d mcthod 图日志插入前后文件对比图 运行脚本 对 生成新的 软件 对比 中 对应的 文件 中的 对应的文件,发现在 函数后,后者比前者多了一条短信内 容记录 代码,如图所示。 山国武花论文在丝 将 安装到手机上,运行,在手机卡上生成了 ,如图所示。 G D:\experirnent\behaviourLog, xml <BEhaviourLog PackagEName="com. Send Message"Date=2012-11-22 Time=15: 56: 34"Millisecondstamp=34> r3ehaw or Name="SendsMss pAram Name=phone Niimvalle=10086/> cPa aIm NAIlIE=Me4aJjHRuly vHI H=YF"/> c/Replevin 川I多 </RHllHv illr [IyJ> 图发送短信的敏感的日志图 证明调用日忐模块被成功嵌入,并且成功地生成了日忐。 结论 在 平台对恶意软件进行动态分析时,为解决 系统提供的敏感调用 日志信息不足的问题,本文利用 文件特点以及 提供的 和工具, 设计并实现了基于的 软件敏感调用∏忐模块嵌入系统,实验结果证明, 经过本系统嵌入日志模块的软什,在运行时能够成功记录软件敏感调用的各种信息, 为动态分析恶意软件提供了丰富的输入 参考文献 北京网秦天下科技有限公司网秦年第三季度全球于机安全报告 杨丰盛 技术内幕北京:机械工业出版社,

- “基于深度学习的 Android 恶意软件检测的 设计分析”总结 1792020-12-04一、主要内容:该文献主要技术是自行设计出一套基于深度学习的 Android 恶意软件检测系统。静态特征与动态特征共同组成此检测系统的安全相关特征,通过特征选择算法,以深度学习、降噪编码机及自动编码机联合运用实现任务分类。分别采用 8000 个良性应用软件和 7000 个恶意软件对检测系统进行测试。基于深度学习的 Android 恶意软件检测系统具有更高检测准确率,性能更佳。 二、总结:本文对一种以深度学习算法(SDA)为基础的 Android 恶意软件检测系统进行设计并实现。通过系统设计、系统分析和改进SD
492KB
论文研究-基于smali的Android金融类应用密码误用静态检测方法研究 .pdf
2019-08-19基于smali的Android金融类应用密码误用静态检测方法研究,魏仿,徐国爱,随着移动互联网快速发展和智能手机普及,Android金融类应用的数量快速增长,越来越多的用户通过移动应用进行金融操作,但是应用的��
291KB
论文研究-基于smali的Android静态检测方法 .pdf
2019-08-19基于smali的Android静态检测方法,胡鸽,徐国爱,随着移动互联网的发展,移动应用软件的安全问题也日渐突出。本文对当前Android静态分析技术进行了概述,对Android应用软件反编译获取�
1.54MB
smali-2.0.3.jar baksmali-2.0.3.jar
2014-06-09java -jar baksmali-2.0.3.jar -x android.odex java -jar smali-2.0.3.jar out -o classes.dex /////////// android 合并apk和odex文件 前提:正确安装JDK和配置环境变量 需要这个apk所在的rom里面的一些jar文件, 都在/system/framework里面:core.jar, ext. jar, framework. jar, android.policy. jar, services. Jar。 当然,这五个是最基本的,有可能还不够,这种情况下面会讲到。 总共分四步: 1. 把下载好的smali-2.0.3.jar 和baksmali-2.0.3.jar ,还有rom里面抠出来的5个jar,放到工作目录,然后apk和odex也放到一起。 2. 分解odex文件为class文件。 将smali-2.0.3.jar 和baksmali-2.0.3.jar放在d:\odex文件夹下 命令:键入 d:回车 键入cd odex 回车 java -jar baksmali-2.0.3.jar -x a.odex \\a.odex喂odex文件的文件名在键入命令前务必正确安装JDK和配置环境变量 <a.odex>处是你要分解的odex文件的名字,命令完成之后,会生成一个out文件夹,里面就是所有的class文件。如果出现问题, 比如什么异常,缺少包什么的,就更到rom里面把出错信息里面要求的包拿出来,放到当前目录下。 3. 将class生成为classes.dex文件。 命令:java -Xmx512M -jar smali-2.0.3.jar out -o classes.dex 4. 把classes.dex放入apk里面。
1.27MB
论文研究-基于多级签名匹配算法的Android恶意应用检测.pdf
2019-07-22针对Android恶意应用泛滥的问题,提出了一种基于恶意应用样本库的多级签名匹配算法来进行Android恶意应用的检测。以MD5哈希算法与反编译生成的smali文件为基础,生成API签名、Method签名、Class签名、APK签名。利用生成的签名信息,从每一类恶意应用样本库中提取出这类恶意行为的共有签名,通过匹配待检测应用的Class签名与已知恶意应用样本库的签名,将待测应用中含有与恶意签名的列为可疑应用,并回溯定位其恶意代码,确定其是否含有恶意行为。在测试中成功地发现可疑应用并定位了恶意代码,证明了系统的有效性。
2.97MB
smali转jar工具类集合
2018-09-251.将smali转dex我们需要用到smali.jar这个jar,然后在当前目录输入:java -jar smali.jar test/smali/ -o classes.dex 2.将dex文件转成jar包,我们需要用到dex2jar-2.0这个工具,然后输入如下命令:d2j-dexjar classes.dex
6.63MB
smali-jar2.2.2工具(smali.jar/baksmali.jar)
2017-12-15smali工具(smali.jar/baksmali.jar) 工具作者更新时间为2017-10-30,版本号为2.2.2 喜欢玩Android反编译/逆向的不二工具
803KB
smali-2.4.0.rar
2020-11-09smali/baksmali:dex格式文件与smali文件的转换。 smali最早是由Jasmin提出,随后jesusfreke开发了最有名的smali和baksmali工具将其发扬光大,几乎dex上所有的静态分析工具都是在这个项目的基础上建立的。 反编译dex:java -jar baksmali-2.4.0.jar d classes.dex 编译:java -jar smali-2.4.0.jar a out
1.87MB
smali_v2.2.2
2018-04-19smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android smali android
12.58MB
smalidea-0.05.zip+baksmali-2.2.5.jar+smali-2.2.5.jar
2018-11-26最新android studio/idea 调试 smali插件.android studio安装setting->plugins->install plugin from disk...->选择smalidea.zip所在目录(不需要解压)->安装/重启.包含了baksmali-2.2.5.jar和smali-2.2.5.jar,功能不多说.
1.75MB
smali-2.1.0.jar, baksmali-2.1.0.jar
2015-10-14含有smali-2.1.0.jar, baksmali-2.1.0.jar android App编译和反编译工具
6.65MB
smali-jar2.2.1工具(smali.jar/baksmali.jar)
2017-09-11smali工具(smali.jar/baksmali.jar) 工具作者更新时间为2017-05-23,版本号为2.2.1 喜欢玩Android反编译/逆向的不二工具
7.25MB
baksmali.jar smali.jar(1.2.2/1.2.6/1.3.2/1.4.2)
2013-10-12baksmali-1.2.2.jar smali-1.2.2.jar
15.29MB
Android APP渗透测试方法大全.pdf
2019-05-22Android APP 渗透测试方法大全 一、Android APP 渗透测试方法 二、工具使用 三、常用测试工具以及环境平台 四、风险等级评定
1.75MB
smali-2.1.0_baksmali-2.1.0
2018-03-20安卓dex的编译和反编译工具, 反编译用法: baksmali用于反编译 dex文件的。 java -jar baksmali-2.1.0.jar -o c:\out/ c:\classes.dex 把c:\classes.dex反编译为smali,输出到c:\out目录 编译用法: smali java -jar smali-2.1.0.jar c:\out/ -o c:\classes.dex 把c:\out目录下的smali文件编译为c:\classes.dex
144KB
smali语法.pdf
2016-12-09smali语法详细介绍
4.23MB
最新smali.jar(2.2.4)
2018-06-22寻找好久的最新smali.jar,用于smali转dex工具jar包。
981KB
smali-2.3.4.jar
2020-05-03android studio无法观察变量,smalidea报内部错误: nosuchmethoderror: org.jf.util.immutableconverter.tosortedset, 请下载此修复版的jar包,替换Android Studio plugins目录->smalidea->lib 下的smali-2.3.4.jar。 例如我的目录是:C:\Users\Administrator\.AndroidStudio3.5\config\plugins\smalidea\lib
69.59MB
android软件安全与逆向分析
2018-08-21《Android软件安全与逆向分析》由浅入深、循序渐进地讲解了Android系统的软件安全、逆向分析与加密解密技术。包括Android软件逆向分析和系统安全方面的必备知识及概念、如何静态分析Android软件、如何动态调试Android 软件、Android 软件的破解与反破解技术的探讨,以及对典型Android病毒的全面剖析。 作者简介:丰生强(网名非虫),Android软件安全专家,看雪论坛Android安全版版主,安卓巴士开发交流版版主。 目录 第1章 Android程序分析环境搭建 1.1 Windows分析环境搭建 1.1.1 安装JDK 1.1.2 安装Android SDK 1.1.3 安装Android NDK 1.1.4 Eclipse集成开发环境 1.1.5 安装CDT、ADT插件 1.1.6 创建Android Virtual Device 1.1.7 使用到的工具 1.2 Linux分析环境搭建 1.2.1 本书的Linux环境 1.2.2 安装JDK 1.2.3 在Ubuntu上安装Android SDK 1.2.4 在Ubuntu上安装Android NDK 1.2.5 在Ubuntu上安装 Eclipse集成开发环境 1.2.6 在Ubuntu上安装CDT、ADT插件 1.2.7 创建Android Virtual Device 1.2.8 使用到的工具 1.3 本章小结 第2章 如何分析Android程序 2.1 编写第一个Android程序 2.1.1 使用Eclipse创建Android工程 2.1.2 编译生成APK文件 2.2 破解第一个程序 2.2.1 如何动手? 2.2.2 反编译APK文件 2.2.3 分析APK文件 2.2.4 修改Smali文件代码 2.2.5 重新编译APK文件并签名 2.2.6 安装测试 2.3 本章小结 第3章 进入Android Dalvik虚拟机 3.1 Dalvik虚拟机的特点--掌握Android程序的运行原理 3.1.1 Dalvik虚拟机概述 3.1.2 Dalvik虚拟机与Java虚拟机的区别 3.1.3 Dalvik虚拟机是如何执行程序的 3.1.4 关于Dalvik虚拟机JIT(即时编译) 3.2 Dalvik汇编语言基础为分析Android程序做准备 3.2.1 Dalvik指令格式 3.2.2 DEX文件反汇编工具 3.2.3 了解Dalvik寄存器 3.2.4 两种不同的寄存器表示方法--v命名法与p命名法 3.2.5 Dalvik字节码的类型、方法与字段表示方法 3.3 Dalvik指令集 3.3.1 指令特点 3.3.2 空操作指令 3.3.3 数据操作指令 3.3.4 返回指令 3.3.5 数据定义指令 3.3.6 锁指令 3.3.7 实例操作指令 3.3.8 数组操作指令 3.3.9 异常指令 3.3.10 跳转指令 3.3.11 比较指令 3.3.12 字段操作指令 3.3.13 方法调用指令 3.3.14 数据转换指令 3.3.15 数据运算指令 3.4 Dalvik指令集练习--写一个Dalvik版的Hello World 3.4.1 编写smali文件 3.4.2 编译smali文件 3.4.3 测试运行 3.5 本章小结 第4章 Android可执行文件 4.1 Android程序的生成步骤 4.2 Android程序的安装流程 4.3 dex文件格式 4.3.1 dex文件中的数据结构 4.3.2 dex文件整体结构 4.3.3 dex文件结构分析 4.4 odex文件格式 4.4.1 如何生成odex文件 4.4.2 odex文件整体结构 4.4.3 odex文件结构分析 4.5 dex文件的验证与优化工具dexopt的工作过程 4.6 Android应用程序另类破解方法 4.7 本章小结 第5章 静态分析Android程序 5.1 什么是静态分析 5.2 快速定位Android程序的关键代码 5.2.1 反编译apk程序 5.2.2 程序的主Activity 5.2.3 需重点关注的Application类 5.2.4 如何定位关键代码--六种方法 5.3 smali文件格式 5.4 Android程序中的类 5.4.1 内部类 5.4.2 监听器 5.4.3 注解类 5.4.4 自动生成的类 5.5 阅读反编译的smali代码 5.5.1 循环语句 5.5.2
2.21MB
baksmali1.3.2.jar smali-1.3.2.jar
2012-03-24java -jar baksmali-1.3.2.jar -x android.odex java -jar smali-1.3.2.jar out -o classes.dex 你懂的。。。。
-
下载
ESP8266与STM32F103的程序.rar
ESP8266与STM32F103的程序.rar
-
下载
51黑论坛_SVPWM仿真详细说明.doc
51黑论坛_SVPWM仿真详细说明.doc
-
下载
智慧药房整体解决方案.ppt
智慧药房整体解决方案.ppt
-
下载
从客户体验中挖掘增长机会_塑造体验,加速增长.pdf
从客户体验中挖掘增长机会_塑造体验,加速增长.pdf
-
下载
读取rtsp摄像头AI分析后推流到RTMP服务器
读取rtsp摄像头AI分析后推流到RTMP服务器
-
下载
Clarke变换中系数槡_2_3_1_2_的推导_白钧生.pdf
Clarke变换中系数槡_2_3_1_2_的推导_白钧生.pdf
-
下载
WINDOWS程序员使用指南(二)-Microsoft 基本类库.pdf
WINDOWS程序员使用指南(二)-Microsoft 基本类库.pdf
-
下载
利用 C#编写一个水准测量近似平差程序.zip
利用 C#编写一个水准测量近似平差程序.zip
-
下载
WINDOWS程序员使用指南(五)-OBJECT WINDOWS库.pdf
WINDOWS程序员使用指南(五)-OBJECT WINDOWS库.pdf
-
下载
2-基本结构.html
2-基本结构.html
