android动态调试samli代码(转)】的更多相关文章

转载自看雪http://bbs.pediy.com/showthread.php?t=189610,非常感谢原作者分享! 跟踪apk一般的做法是在反编译的smali代码中插入log输出,然后重新编译运行看输出日志,这种方法费时费力,如果能够动态调试就最好了.下面就给大家介绍apk+eclipse来调试smali. 前期准备:eclipse.Jdk或jre,并设置好环境变量,我的是7.0版本.Apktool2.0签名文件目标apk:light.apk. 1.  将LIGHT.APK复制到APKTO…
预备知识 DDMS Dalvik Debug Monitor Serivce,Dalvik调试监控服务,为Android SDK提供的一款拥有监控Dalvik虚拟机的调试软件,启动文件位于<Andorid SDK>/tools/monitor.bat(低版本的SDK为ddms.bat)     adb forward命令 用于创建一个端口映射,将本地端口(PC端口)映射到远程端口(手机端口),例如: adb forward tcp:8001 tcp:8002 之后PC端访问8001端口的数据包…
之前看过吾爱破解论坛一个关于Android'逆向动态调试的经验总结帖,那个帖子写的很好,对Android的脱壳和破解很有帮助,之前我们老师在上课的时候也讲过集中调试的方法,但是现在不太实用.对吾爱破解论坛的该贴,我也是看了很多遍,自己也查了不少资料,但是自己动手的时候总觉比较繁琐,并且很多细节的地方没有注意到,按照那个帖子尝试了几遍但是却出现了错误(后面会提到),今天周末重新拾起来试了试,终于把遇到的问题给解决了,顺便做个记录以免忘记了,其中的一些细节我也不是太明白,忘知道的人给指出. 第一步.…
Android动态加载代码技术 在开发Android App的过程当中,可能希望实现插件式软件架构,将一部分代码以另外一个APK的形式单独发布,而在主程序中加载并执行这个APK中的代码. 实现这个任务的一般方法是: // 加载类cls Context pluginContext = mainContext.createPackageContext(PLUGIN_PKG, Context.CONTEXT_IGNORE_SECURITY | Context.CONTEXT_INCLUDE_CODE)…
工具: Android Studio版本: 3.0.1 smalidea插件: https://github.com/JesusFreke/smali/wiki/smalidea. 反编译工具:本节先用Android Killer,后面介绍apktool. 一 配置插件 下载smalidea插件,然后打卡Android Studio,点击File->Setting->Plugins->Install plugin from disk,选择下载的smalidea.zip文件,安装成功后显示…
原创,转载请注明出处. 一般java ide(如eclipse.idea)都可用来进行smali的动态调试,这里选择IDEA. 第1步:使用apktool反编译apk java -jar apktool_2.0.0rc4.jar d -d 123.apk -o out 注意: apktool的版本问题,有的版本没有-d选项 -d选项代表反编译出来后缀是.java而不是.smali,但也不是真正的java代码,这样是让IDEA识别出java文件然后使用JDWP进行远程调试,如下: 第2步:更改de…
这几天在学Android的native层逆向.在按照教程用ida搭建动态调试环境时,第一步是把android_server 放到手机里执行,但是在手机里可以,在genymotion模拟器上就提示 not executable :32-bit ELF file ,百度谷歌都没找到答案,然后试了试Android studio自带的模拟器 ,ABI选了x86  x86_64都不行,最后发现需要选择arm的ABI才可以....但是运行比较卡,因为我的电脑是x86的. 个人推测应该是ida的android…
1.工具介绍 使用工具 android killer:用于反编译apk包,得到smali代码 android studio:调试smali代码工具,或者使用idea,android studio就是在idea的基础上修改的 smalidea-0.03.zip:  as插件,需要安装到android studio中 , 下载地址 模拟器或者或者真机:运行要调试的程序 样本:使用网络上的某apk程序,  下载地址 2.前期准备 2.1  手机或者模拟器安装应用 adb instll GGNdkTes…
Android Killer对应用进行反编译为smali代码,看看Manifest文件中application标签里面是否有android:debuggable="true",没有的话自己添加,然后重新安装在手机上 在工程管理器中找到smali文件夹,右键打开路径然后将smali文件夹复制到另一个自建的文件夹里(假设为 test),重命名为src 为Android Studio安装smaliidea插件 Android Killer打开应用,记住包名与入口点 进入 adb shell…
http://ruixiazun.blog.163.com/blog/static/9068791820141173588694/ iPhone真实的运行环境是没有sys/ptrace.h抛出.ptrace 方法没有被抛出, 可以通过dlopen拿到它.dlopen: 当path 参数为0是,他会自动查找 $LD_LIBRARY_PATH,$DYLD_LIBRARY_PATH, $DYLD_FALLBACK_LIBRARY_PATH 和 当前工作目录中的动态链接库. #import <dlfcn…
代码动态调试: 代码动态调试技术,一般是通过观察程序在运行过程中的状态,如寄存器内容,函数执行结果,内存使用情况等等,分析函数功能,明确代码逻辑,查找可能存在的漏洞 工具:IDA 条件:AndroidManifest.xml里的Android:debuggable="true" 步骤: 1)如果AndroidManifest.xml里的Android:debuggable="false",尝试修改为true,再使用Apktool重新签名,安装,如果成功就可以进行调试…
网上公开IDA6.6已经有一段时间,这个版本有个好处就是可以动态调试java代码.正好现在需要动态调试,所以顺便练习一下. 根据android的官方文档,如果要调试一个apk里面的dex代码,必须满足以下两个条件中的任何一个: 1.apk中的AndroidManifest.xml文件中的Application标签包含属性android:debuggable=”true” 2./default.prop中ro.debuggable的值为1 由于一般软件发布时都会把android:debuggabl…
1.简介 smalidea是一个IntelliJ IDEA/Android Studio smali语言插件,可实现动态调试smali代码.下载地址为:https://github.com/JesusFreke/smali/wiki/smalidea.Android Studio的安装,就是傻瓜式的安装,一路next下去.接下来笔者介绍一下笔者的软件环境:jdk 1.8,android studio 2.3,smalidea 0.0.5,测试的app是笔者写的一个demo. 2.动态调试Smal…
在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Android Studio 3.0.1 和 smalidea 0.0.5 进行演示. smali动态调试简述 使用 Android Studio 调试 apk 反编译出的 smali 代码,需要 PC 端和移动端的合作.在 PC 端通过 Android Studio 导入反编译出的完整的 smali 代码,…
一.前言 今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为了安全或者效率问题,会把一些重要的功能放到native层,那么这样一来,我们前篇说到的Eclipse调试smali源码就显得很无力了,因为核心的都在native层,Android中一般native层使用的是so库文件,所以我们这篇就来介绍如何调试so文件的内容,从而让我们破解成功率达到更高的一层.…
一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk  主要采用的是静态方式,步骤也很简单,首先使用apktool来反编译apk,得到smail源码,然后分析smail代码,采用代码注入技术来跟踪代码,然后找到关键方法进行修改,进而破解,同时还可以使用一些开源的hook框架,比如:Xposed和Cydia Substrate,来进行关键方法的hook.所以这里我们可以看到我们破解的第一步是使用ap…
原文网址:http://cherishlc.iteye.com/blog/1756762 在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在Android中会生成Linux系统下的.so文件(好吧,其实我基本没用过Linux). 没写过JNI的可以看看我之前的博客(Windows下利用Visual Studio开发的过程):http://cherishlc.iteye.com/admin/blogs/1328136 以及自动生成工具swig的…
Android平台的动态调试一直以来是个困扰我等Coder的头疼问题,特别是对于本地的动态调试支持.能够说是"弱智"级别的,不知道Google的新版NDK和新出的Android Studio对这块支持怎样,让我们拭目以待. 言归正传.我这里採用的是cygwin+ndk-gdb的调试模式,灵感来自于XDA的一篇博文(点击打开链接),平台和原文作者不同: 1.Win7 64 2.NDK r9d x86_64 3.Android 4.2.2 4.cygwin 64 5.IDA pro 6.1…
Reference:  http://cstsinghua.github.io/2016/06/13/Android%20studio%E5%8A%A8%E6%80%81%E8%B0%83%E8%AF%95%E6%8C%87%E5%8D%97/#anchor 首先,请先下载apktool工具并熟悉其命令的使用,可参见其官网说明https://ibotpeaches.github.io/Apktool/install/.根据你的操作系统选择对应的版本,其实最终都是jar包,可以直接下载其jar版本…
前提条件和运行环境一定要写清楚,不然会有很多坑,坑死人. (1)IDA 是最新的7.0版本  (2) JDB 使用Java安装目录下的 (3)系统是win10 使用命令窗口时有很大的差别 (4)手机是4.4 以下系统 1.手机要有Root权限 2.复制IDA 安装目录下dbgsrv 文件里面的android_server文件到   手机内存储的 /data/local/tmp 目录下 3.控制台输入 adb shell su 命令获取管理员权限 4.cd /data/local/tmp 进入an…
最近好几天来一直在看动态调试.首先是这一篇(http://www.52pojie.cn/forum.php?mod=viewthread&tid=293648)里面介绍了多种IDA动态调试的情形,比如调试JNICALL,调试JNI_Onload等等.步骤大概都是这样: 执行android_server端口转发 adb forward tcp:23946 tcp:23946调试模式启动程序 adb shell am start -D -n 包名/类名IDA附加静态找到目标函数对应所在模块的偏移地址…
在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在Android中会生成Linux系统下的.so文件(好吧,其实我基本没用过Linux). 没写过JNI的可以看看我之前的博客(Windows下利用Visual Studio开发的过程):http://cherishlc.iteye.com/admin/blogs/1328136 以及自动生成工具swig的使用方法(数组的支持不好!其他挺方便):http://cherishlc.iteye.co…
Android程序的dex文件的动态调试确实是个大问题,网上也有一些教程但是不是特别的详细,今天用到了IDA动态调试Android的DEX文件,特此记录一下. IDA 6.6新添加了对dex文件的调试支持,但是功能还是很弱的说,因为IDA动态调试Android程序的DEX文件时,查看变量很不方便,可以说然并卵. @根据android的官方文档,如果要调试一个App里面的dex代码,必须满足以下两个条件中的任何一个: 1.App的AndroidManifest.xm中Application标签必选…
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/71250622 一.Apktool的下载和安装 Apktool是Android逆向分析的基础工具,在进行Android APK的smali动态调试的时候会使用到它.有关Apktool工具的下载.安装.使用以及源码的编译可以参考Apktool工具的官网:https://ibotpeaches.github.io/Apktool/,Apktool工具的官网将Apktool工具的使用和版…
一.在SO中关键函数上下断点 刚学逆向调试时.大多都满足于在SO中某关键函数上下断点.然后通过操作应用程序,去触发这个断点,然后进行调试 详细的步骤可以参见非虫大大的<Android软件安全与逆向分析> 简单说:在libsyclover.so文件中有一个函数jnicall1.每次单击按钮的时候,便会调用此函数. 1.静态载入此so文件,找到函数的偏移地址为:0x132C 2.执行android_server3.端口转发 adb forward tcp:23946 tcp:23946 4.运行程…
前面介绍了使用IDA动态调试smali,这种方法设置简单,不用重打包,用起来方便,但是如果变量类型设置错误则会马上退出调试,这是让人不爽的地方,而使用Android studio则不会.   0x01    工具①Android Studio最新版.②apktool尽量使用最新版的.③ideasmali插件.下载地址https://github.com/JesusFreke/smali/wiki/smalidea 0x02     具体步骤安装ideasmali插件,选择File->Settin…
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 Web程序员开发App系列 - 开发我的第一个App 待续 目录 前言 调试Android代码 调试iOS代码 准备开发App 前言 在App中代码如果需要调试,就需要借助Chrome调试Android和Safari调试iOS手机,由于编写的都是Html代码,所以等下看到的界面都非常熟悉,对于We…
NodeJS”热部署“代码,实现动态调试   开发中遇到的问题 如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止Node.js 再重新运行才会奏效.这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入,而 PHP 则总是重新读取并解析脚本(如果没有专门的优化配置).Node.js的这种设计虽然有利于提高性能,却不…
1 试玩 apk # 安装APK到真机 adb install AliCrackme_1.apk 打开apk,投石问路,输入123试一下 2 将apk 拖入androidKiller,得到反编译的smali文件项目 smali目录地址在androidkiller目录下的projects/AliCrackme_1/Project 下 3 这里使用AndroidStudio3.5 进行动态调试 动态调试需要安装插件smalidea.插件地址为(androidstudio3.5和smalidea-0.…
0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的,人是活的,如果能搞懂工具的原理再结合上自身的经验,你也可以创造出属于自己的调试武器.因此,笔者将会在这一系列文章中分享一些自己经常用或原创的调试工具以及手段,希望能对国内移动安全的研究起到一些催化剂的作用. 目录如下: 安卓动态调试七种武器之长生剑 - Smali Instrumentation安卓动态调试七种武器之孔雀翎 – Ida Pro安卓动态调试七种武器之离别钩 –…