新手求教有无调试smali 无法跳转的方法

Android调试系列―使用android studio调试smali代码-真格学网-IT技术综合网站
Android调试系列―使用android studio调试smali代码
来源: &责任编辑:小易 &时间: 11:24:13
Andro底板好用吗?问:Andro底板好用吗?Andro底板的重量怎么样,重吗?手感怎么样?有没有入...答:昨天在新街口打球时,不意间用了一下一位球友的ANDRO拍子,纯木,很轻,击球时手感非常清晰,感觉很好,.那位球友用的是外套,我估计就是2面都用狂飙也重不到哪去手机里头100andro是什么意思答:一般安卓手机的相机拍摄的照片都会有固定的存放路径,这个位置默认为:/sdcard/DCIM/100Andro或者/sdcard/DCIM/Camera,这里的sdcard是指手机中的SD卡,在电脑中显示的为可移动磁盘。根据不同品牌安卓手机的后期开发,文件夹名称可能不太一样,...Dclm文件夹下的100ANDRO文件夹是什么意思答:那是图片文件夹之一。系统自动创建的Android调试系列―使用androidstudio调试smali代码(图1)Android调试系列―使用androidstudio调试smali代码(图2)Android调试系列―使用androidstudio调试smali代码(图3)Android调试系列―使用androidstudio调试smali代码(图4)Android调试系列―使用androidstudio调试smali代码(图5)Android调试系列―使用androidstudio调试smali代码(图6)1、工具介绍
岸度革命之火09AndroRevoFire内能套胶怎么样,...答:速度:101旋转:102控制:84厚度:2.1mm硬度:中岸度革命之火09AndroRevoFire是一款大家非常认可的胶皮高性价比。防恶意抓取,请查看原文,,真格学网提供内容。android killer:用于反编译apk包,得到smali代码
openandromaps数据怎么用答:实现真正意义上的零流量导航,而且地图模式也很多,不仅有普通的矩形地图还有卫星地图和街景地图以及室内景。防恶意抓取,请查看原文,,真格学网提供内容。android studio:调试smali代码工具,或者使用idea,android studio就是在idea的基础上修改的
如何选购岸度andro锐煞Rasant系列胶皮之专家评论答:岸度锐煞RASNAT-112215海绵厚度:2.1mm速度:111旋转:110控制:82最新研发的锐煞胶面,轻易化解对方攻击,打出更有杀伤力。防恶意抓取,请查看原文,,真格学网提供内容。smalidea-0.03.zip:& as插件,需要安装到android studio中 ,
求教安全测试框架AndroBugsFramework?答:在Android系统中,每个应用的安全性是通过为其创建一个独立的Linux用户和组来区分每个应用的权限。当一个恶意App可以通过缺陷或监听网络。防恶意抓取,请查看原文,,真格学网提供内容。模拟器或者或者真机:运行要调试的程序
marsandroid课程出现ActivityManager:Starting:...问:出现问题[1:57:14-mp3]ActivityManager:Starting:In。防恶意抓取,请查看原文,,真格学网提供内容。样本:使用网络上的某apk程序,&
我的手机开机后老是出来【com.androind.phone进程...答:LZ你刷过机吧,然后删除了某个不该删除的程序,不管什么类型手机,一般com.andorid.phone不能删除的,你得找到源文。防恶意抓取,请查看原文,,真格学网提供内容。&
2、前期准备
怎么用android设备调试如果想要调试android手机得,可以进入到设置界面,然后会有开发者选项的话,如果是高版本的系统的话,一般连续单击安卓的版本好,就可以自动进入开发者模式的,出现设置开发者.。防恶意抓取,请查看原文,,真格学网提供内容。2.1& 手机或者模拟器安装应用
android怎么快速调试frameworkpersist.sys.debug包名来设置包的名称needDebug获取persist.sys.debug再与本进程的包名进行比较,以判断是否要调试9接下。防恶意抓取,请查看原文,,真格学网提供内容。adb instll GGNdkTest1.apk
为方便android调试的脚本,如出现:/bin/bash^m:损坏的解释器:没...为方便android调试的脚本,如出现:/bin/bash^M:损坏的解释器:没有该文件或目录,问题多半是因为wi。防恶意抓取,请查看原文,,真格学网提供内容。2.2& 使用android killer反汇编测试包GGNdkTest1包,生成smali文件夹
安卓手机USB调试模式位置及开启方法USB调试模式是Android提供的一个用于开发工作的功能,只有开启了USB调试模式,才可以实现安卓手机和电脑之间的通讯。以下是安卓手机USB调试模式开启方法。一、。防恶意抓取,请查看原文,,真格学网提供内容。
2.3& android studio安装smalidea-0.03插件,点击File-&Settings-&plugins-&instal plugins from disk,选择下载的zip包就行,不要解压。安装完成后,AS提示重启生效,重启即可
Android开发怎么调试ServiceAndroid开发如何调试ServiceAndroid开发中,添加代码对Service进行调试。介绍以调试模式启动Android项目时,在service中设置断点,调试器不会停止下来解决方法所...。防恶意抓取,请查看原文,,真格学网提供内容。
教你如何用安卓手机usb调试开关将其开启很多小白朋友一着急以为是手机坏了,导致求助。其实对于目前大部分安卓手机而言,很多都有USB调试开关,也就是说将数据线连接上手机与电脑后,还需要打开Android。防恶意抓取,请查看原文,,真格学网提供内容。2.3& AS导入工程,选择上一步的smali目录,一路next,最后结果如下图
Android程序调试太麻烦。最简单的方法是什么?实机上机调试怎...1.手机连接电脑,2.点击手机设置,点击关于手机,快速点击版本号4次进入开发者模式3.返回设置,找到开发者模式,点击进入,选择允许。防恶意抓取,请查看原文,,真格学网提供内容。
教你如何用安卓手机usb调试开关将其开启很多小白朋友一着急以为是手机坏了,导致求助。其实对于目前大部分安卓手机而言,很多都有USB调试开关,也就是说将数据线连接上手机与电脑后,还需要打开Android。防恶意抓取,请查看原文,,真格学网提供内容。3、调试步骤
3.1& 配置AS调试配置,Run-&Edit configurations,点击+号,新建remote类型调试器,设置Name, 修改端口号,可以选择被占用的任意端口,本次设置为8800
安卓手机USB调试在哪怎么打开各版本USB调试模式打开方法刷机大师采用Adb方式连接,所以需要您在设备上打开USB调试模式Android打开USB调试模式总共有三种不同方法,根据系统版本而不同,以下为Android所有系统版本对应的...。防恶意抓取,请查看原文,,真格学网提供内容。
教你如何用安卓手机usb调试开关将其开启很多小白朋友一着急以为是手机坏了,导致求助。其实对于目前大部分安卓手机而言,很多都有USB调试开关,也就是说将数据线连接上手机与电脑后,还需要打开Android。防恶意抓取,请查看原文,,真格学网提供内容。3.2 在AS的终端以调试模式启动应用,进程挂起,此时运行命令查看该应用的进程号为28881
。防恶意抓取,请查看原文,,真格学网提供内容。
教你如何用安卓手机usb调试开关将其开启很多小白朋友一着急以为是手机坏了,导致求助。其实对于目前大部分安卓手机而言,很多都有USB调试开关,也就是说将数据线连接上手机与电脑后,还需要打开Android。防恶意抓取,请查看原文,,真格学网提供内容。3.3& 设置端口转发,这条命令的含义可以认为是在本地8800端口与手机28881进程之间建立一条通道,当开始调试时,AS连接本地的8800端口,通过这条通道控制程序的运行
实木家具与实木贴皮家具主要之区别,今天中至信家具品牌小编给大家介绍一下!现代木家具发展至今,已形成风格多样、品种完备、档次齐全的大市场格局。多元化的市场在提供丰富选择的同时,也派生出鱼龙混杂、良莠难分。防恶意抓取,请查看原文,,真格学网提供内容。
教你如何用安卓手机usb调试开关将其开启很多小白朋友一着急以为是手机坏了,导致求助。其实对于目前大部分安卓手机而言,很多都有USB调试开关,也就是说将数据线连接上手机与电脑后,还需要打开Android。防恶意抓取,请查看原文,,真格学网提供内容。3.4& 下断点,为了清除起见,在左侧栏鼠标右键选择显示行号,在行号旁边单击即可下断点,需要注意的是,smali并不是每一行都可以下断点,当下断点没有成功时,选择其他地方下断点测试。
致Minecraft有一种游戏,叫做Minecraft.....我忘不了第一次玩MC的时候,撸掉的第一块原木,挖到了第一块钻石,第一次被苦力怕炸死,第一次见到末影人,并且怀着好奇心去和他对视,第一次找。防恶意抓取,请查看原文,,真格学网提供内容。&
教你如何用安卓手机usb调试开关将其开启很多小白朋友一着急以为是手机坏了,导致求助。其实对于目前大部分安卓手机而言,很多都有USB调试开关,也就是说将数据线连接上手机与电脑后,还需要打开Android。防恶意抓取,请查看原文,,真格学网提供内容。3.5& 调试 run-&debug选择刚才新增的调试器,此时程序会断在设置的断点的行,调试器解密如下
  患者情绪波动大是白癜风病复发的一个重要因素,因此,患者是一定要能够注意负面情绪的摆脱,及时的缓解一些不良心理因素。能够保证自己心态平静,积极乐观情绪很重要。患者要能够多多与家人多交流,能够学会转移。防恶意抓取,请查看原文,,真格学网提供内容。
教你如何用安卓手机usb调试开关将其开启很多小白朋友一着急以为是手机坏了,导致求助。其实对于目前大部分安卓手机而言,很多都有USB调试开关,也就是说将数据线连接上手机与电脑后,还需要打开Android。防恶意抓取,请查看原文,,真格学网提供内容。左侧debug栏最上面一行有运行、单步运行、进入函数、强制进入、跳出等按钮,下面显示的是调用栈
其实对于小沈阳红不红这个问题,每位观众都有自己的定义。同为赵本山徒弟的宋小宝近几年一直活跃在大众视野,很多人会把他俩放在一起比较,比较之下会有人觉得小沈阳是不是不红了?小沈阳:2009年在中央电视台春。防恶意抓取,请查看原文,,真格学网提供内容。中间variables栏可以观察变量的值
这是一场众志成城的胜利,赛前里皮和队长郑智都表达了必胜的决心。从首发来看,里皮摆出433的进攻阵型,技术型中场领衔,蒿俊闵进入首发,他和郑智、张稀哲镇守中场。王永珀、武磊和于大宝冲锋在前,这样的阵容配。防恶意抓取,请查看原文,,真格学网提供内容。右侧watch栏可以关心的寄存器,例如上图的v1。
导读:早晨一起床,我就发现我满嘴是泡。这不是内蒙的风吹的,而是内蒙的酒烧的。  到内蒙,我有一个深深的体会,只要你能喝酒,谁都会把你当兄弟对待。你看我往桌中一座,我说:“来来来,上大碗!”已经惊倒了一。防恶意抓取,请查看原文,,真格学网提供内容。在网上搜索了一些教程,什么打开ddms,设置8700或者什么端口,再关闭ddms之类的,各种方法满天飞,看的最迷茫的就是ddms的开启关闭和端口的设置。
?不管什么原因,两地分居都是两口子最不好的相处模式。也是正常人无法真正能够接受的。虽然目前大部分从农村出来打工的民工,因为生活所迫,夫妻长期两地分居,只能够过年时才真正相处了短暂月儿四十,年一过,就又。防恶意抓取,请查看原文,,真格学网提供内容。根据网上搜到的内容自己总结了下,如下图所示
很多人完全不知道帽子是需要用模具做出来的。接触到的制作帽子方法也只是停留在像做服装一样打版,然后把它缝合。我在米兰国际时尚设计学院第一天上做帽子的课的时候我才知道了,原来法国人的那些好的帽子都是立裁的。防恶意抓取,请查看原文,,真格学网提供内容。
adbd:运行在手机端,daemon进程,与adb server通信,同时与手机端的debugger通信,调试各个程序
鸡缸杯是指以鸡为装饰主题的斗彩瓷杯、碗等。明朝成化年间开始生产斗彩鸡缸杯。成化帝曾因观赏宋代子母鸡图而十分感慨,母鸡护雏卫幼、抚育稚子是成化帝钟情子母鸡纹的一大源由。明成化斗彩鸡缸杯受到了历代收藏家的。防恶意抓取,请查看原文,,真格学网提供内容。adbServer:运行在PC,与adbd通信,同时监听5037端口。
那离你死也就不远了1.一些狗没有主人的照顾,会爆发出原始的习性,强壮的狗会杀死瘦弱的狗并吃掉以延续生命。如果存活的狗见到你,会杀掉并吃掉你。2.发电厂没人工作,马上会停电,晚上绝对伸手不见五指。水厂没。防恶意抓取,请查看原文,,真格学网提供内容。DDMS: 1、连接5037端口。
起亚索兰托对于音响配置方面比较简单,没有什么很明显的音质特点,听起来平淡无奇,高音不通透,就像炒菜没有放佐料一样,因此对于有着追求更高品质的发烧友车主来说,原车的配置是远远不够的。在音响配置上,音源采。防恶意抓取,请查看原文,,真格学网提供内容。&&&&&&&&&&&&&&& 2、监视每个进程,并为每个进程建立单独的调试端口,例如等等,各种调试器可以直接连接这些端口进行调试。
所谓“狗牙圈”,指的是手表表圈上的齿状装饰。通常更指代劳力士的三角坑纹表圈。传统手表基本结构:表壳,表圈,表盖。怀表时代,没有表圈,怀表镜片是靠紧配合固定的。因为怀表不要求防水,所以这种结构简单的怀表式上盖流行。到了手表时代,那些不要求防水而要求优雅纤薄的手表也使用了一段时间。劳力士的三角坑纹是品牌文化传承的标志1926年,劳力士发明蚝式防水表壳仿生学概念,表冠、表圈和后背都是旋入式结构。表圈和后。防恶意抓取,请查看原文,,真格学网提供内容。&&&&&&&&&&&&&&& 3、提供一个特殊调试端口8700,它可以接收&这些端口的数据,并与手机的任何进程进行通信。
佛头作为文玩手串中必不可少的角色,可以说是各色各样,总会在不经意间发现一颗你未曾见过的佛头。下面是空空总结的一些不同材质的佛头。少数民族佛头这种形制的佛头其实很少,尤其现在新做的三通都不会做成这个样子,通常看到他的时候都是老珠子了。这种佛头,省去了搭配顶珠吊坠的麻烦,很有异族风情。绿松石桶珠佛头从形状上看,是桶珠的样子,一般这种形状搭配桶珠形状的珠子较多,一般做手上佩戴的一圈的手串较多,但是搭配1。防恶意抓取,请查看原文,,真格学网提供内容。&&&&&&&&&&&&&&& 3、自身提供一些手段可以调试每个进程。
每个行业有每个行业的赚钱门道,既然这么多人在摆地摊回收旧手机,肯定有利可图。回收旧手机,赚钱的门路有以下几个:一、手机翻新。很多人手机更新换代快,七八成新的手机就换代了,这样的手机翻新一下,刷个机之后又在市场上流通了。再次售卖的价格可比当初收旧手机的时候贵了不止3倍。二、拆零部件卖。直接把手机拆了,单独把零部件拿出去卖。“手机内件里包含多种有价值的材料,手机的各部件――电路板、液晶显示屏、电池、摄。防恶意抓取,请查看原文,,真格学网提供内容。Debugger:各种调试器,可以选择连接8700或者其他每个进程单独的调试端口。
三十五岁不愿工作是针对一部分群体来讲的,目前最流行的要属IT圈了。IT圈里就有个这样的说法:35岁职业危机。就是说你如果到了35岁还没提升,还处于高不成低不就的普通技术岗,那就是危机了。因为本身IT技。防恶意抓取,请查看原文,,真格学网提供内容。知道了上述各个组件的作用,那么一下几种场景可以正常工作
我前几天刚刚装修好房子,在装修之前我就去研究了一下,什么样的是没必要的!我家客厅,走廊吊了简单的顶,没有做灯带,其他房间全部用简单石膏角线镶边所有的灯我全部都是选的LED???吸顶灯,包括走廊,房间,。防恶意抓取,请查看原文,,真格学网提供内容。1、开启DDMS,调试器连接8700端口,不需要设置端口转发,可成功调试
《我脑海中的橡皮擦》记得我是在初中的时候看的,记得看的时候是晚上,一个人躲在被子里哭的真的是稀里哗啦的。我回忆一下故事的情节吧。故事好像是这样的:秀真是一个富家女,跟男友出走却被抛弃,在便利店内与在建。防恶意抓取,请查看原文,,真格学网提供内容。2、开启DDMS,调试器连接86**端口,不需要设置端口转发,可成功调试
我觉得家长应该要教孩子方言。方言作为自己家乡的一门语言,是很有必要让自己的小孩知道的。方言不仅代表着你是那个地方的人,而且蕴含着自己家乡的文化与风土人情。自己的故乡话不知道那不是会被家里的老一辈所嫌弃。防恶意抓取,请查看原文,,真格学网提供内容。3、不开启DDMS,查看要调试的进程ID,设置端口转发(上述步骤3.3),可成功调试
又是星爷!《功夫2》要在今年夏季开拍了,此前一直说要拍,因为会有很大的潜在风险,版权的事没有搞定,投资方美国哥伦比亚电影公司控制了版权,掌握了主动权。星爷已经成为了一代人集体的回忆,是很多星爷的影迷内。防恶意抓取,请查看原文,,真格学网提供内容。前两个比较容易理解,第三个也可以成功,有些不明白了就
大家好,我是爱美丽的小遥心说,欢迎大家关注我!相信你的衣橱里定必有条小黑裙,无论上班、出席派对或外出用餐??它总能大派用场。黑裙看似平凡,但不同的设计搭配都能突显出你优雅的身段与品味现在就来看看基础款。防恶意抓取,请查看原文,,真格学网提供内容。先查看端口信息
诚邀,因为对游戏比较了解,所以对游戏手机配置也有一定的研究。下面就由我来简单来说一下y67的优缺点吧优点:1.握着手感还行2.运行速度也不是很快,但也不是慢到渣3.外观设计不错4.音响可以5.信号好(。防恶意抓取,请查看原文,,真格学网提供内容。
当执行完端口转发后,8800端口处于监听状态,并且和5037同输入adb server进程
科勒卡戴珊是黑人,她喜欢的都NBA球员也都是黑人,美国社会对黑人的种族歧视还很大,但最重要的是NBA有钱,曝光度高,还有就是NBA球员你懂的,这才是最重要的。科勒-卡戴珊和汤普森卡戴珊与汤普森在一起了。防恶意抓取,请查看原文,,真格学网提供内容。当开始调试时,AS进程连接到了adb的8800端口。
据外媒报道,受昆虫眼睛的蜂窝型结构启发,斯坦福大学的科学家团队发现了一种研发钙钛矿太阳能电池的关键方法,这种方法将使电池更持久耐用。钙钛矿太阳能电池比传统的硅太阳能电池便宜且容易制造。这种钙钛矿材料用。防恶意抓取,请查看原文,,真格学网提供内容。所以猜测是这样,adb server 默认监听5037端口,DDMS可以通过5037端口调试进程,调试器通过DDMS连接adb server。
在网上一搜宠物美容培训学校,会出现一大堆学校的网站,该如何选择一家好的宠物美容培训学校呢?又该怎样去安排学完之后将来的发展呢?派多格宠物宠物美容学校给您建议,要从两个方面来选择学校。1、选择宠物美容培。防恶意抓取,请查看原文,,真格学网提供内容。当执行端口转发后,adb server监听了另外一个端口8800,所以debugger可以直接连接该端口进行调试,而不需要经过DDMS
我遇到最尴尬的一件事就是差点失去了我的第一次。当时正在包夜,一个女的从我身边走过,看着她火辣的身材加上黑丝皮裙就没忍住一直盯着看,想看她做哪台机,谁知她突然转头和我对视五秒钟,然后问我看什么。我鬼使神。防恶意抓取,请查看原文,,真格学网提供内容。&
教你如何用安卓手机usb调试开关将其开启很多小白朋友一着急以为是手机坏了,导致求助。其实对于目前大部分安卓手机而言,很多都有USB调试开关,也就是说将数据线连接上手机与电脑后,还需要打开Android。防恶意抓取,请查看原文,,真格学网提供内容。个人猜测,有错误的地方,还请大牛指正怎么用Android感应器AndroSensor答:直接安装使用就是了,这只是一款能够展示当前手机状态的应用,包括硬件信息、当前位置、加速计、陀螺仪、光感、磁尝定向、电池窗台,声压,同时还可以进行多点触控的测试的软件岸度革命之火09AndroRevoFire内能套胶怎么样,...答:速度:101旋转:102控制:84厚度:2.1mm硬度:中岸度革命之火09AndroRevoFire是一款大家非常认可的胶皮高性价比和不错的性能让大家记住了它它最大的优点就是它的内能效果爆发性击球力量,干脆利索,硬胶面的设计让落点更加准确,它还...openandromaps数据怎么用答:实现真正意义上的零流量导航,而且地图模式也很多,不仅有普通的矩形地图还有卫星地图和街景地图以及室内景
本文相关:前面介绍了使用IDA动态调试smali,这种方法设置简单,不用重打包,用起来方便,但是如果变量类型设置错误则会马上退出调试,这是让人不爽的地方,而使用Android studio则不会。
0x01& & 工具①Android Studio最新版。②apktool尽量使用最新版的。③ideasmali插件。下载地址0x02& &&&具体步骤安装ideasmali插件,选择File-&Settings-&Plugins,安装之前下载的ideasmali插件。
以调试状态启动app
通过ddms查看端口:
如果不用 ddms 可以通过adb shell执行 ps | grep kugou命令查看转发端口:
然后进行端口转发:
adb&forward&tcp:8700&jdwp:24551
记住这时候需要将DDMS关掉,不然会出现错误
创建DebugSmali/src目录,使用apktool或者baksmali反编译要调试的apk到DebugSmali/src目录,使用Android Studio导入该目录,如图所示:
然后选择Create project from existing sources,之后一直选择next。& && && &&&成功导入工程后右键点击 src 目录,设定Mark Directory As-&Sources Root配置远程调试的选项,选择Run--&Edit Configurations:&增加一个Remote调试的调试选项,端口选择:8700& &&
设置端口号
之后选择File--&Project Structure 配置JDK
& && && &&&& & & &&下好断点之后Run-&Debug,  & && && && &&稍等几秒,断点触发后就可以单步调试&&
阅读(...) 评论()使用Smalidea对无源码APK调试简介
核心提示:阅读:8最近正好也用了Smalidea,就ZZ的原贴做一些补充。可调试APP如果Android的系统属性ro.debuggable等于1(用getprop ro.debuggable验证),则所有APP都可调试。如果ro.debuggable等于0,某APP的AndroidManifest.xml中有android:debuggable=”true”,该APP
最近正好也用了Smalidea,就ZZ的原贴做一些补充。
如果Android的系统属性ro.debuggable等于1(用getprop ro.debuggable验证),则所有APP都可调试。如果ro.debuggable等于0,某APP的AndroidManifest.xml中有android:debuggable=”true”,该APP可调试。
对于模拟器,ro.debuggable等于1:
$ adb -s emulator-5554 shell "getprop ro.debuggable"
真实手机上ro.debuggable一般等于0,其上绝大多数APP的AndroidManifest.xml中没有android:debuggable=”true”,为了在真实手机上调试这些APP,必须用些歪招,不在此文范围。
$ adb -s emulator-5554 shell "getprop | grep ro.debuggable"
[ro.debuggable]: [1]
没必要,可以直接”getprop ro.debuggable”。
/JesusFreke/smali/
/JesusFreke/smali/wiki/smalidea
https://bitbucket.org/JesusFreke/smali/downloads
https://bitbucket.org/JesusFreke/smali/downloads/smalidea-0.03.zip
https://bitbucket.org/JesusFreke/smali/downloads/smali-2.2b4.jar
https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.2b4.jar
AndroidStudio-&Configure-&Plugins-&Installpluginfromdisk-&选中smalidea-0.03.zip-&RestartAndroidStudio
3. 用baksmali反编译apk
ZZ用Apktool反编译,实际上Smalidea自带反编译工具
$ java -jarbaksmali-2.2b4.jar d -o outsome.apk
反编译结果出现在out子目录中
$ java -jarbaksmali-2.2b4.jar help d
baksmali有很多参数,下面这个参数你可能会感兴趣:
Thenumericapilevelofthefilebeingdisassembled (default: 15)
4. 在baksmali反编译基础上新建工程
X:\path\SOME_Smalidea
将baksmali得到的out子目录复制到上述目录,更名为src子目录:
X:\path\SOME_Smalidea\src
AndroidStudio-&Importproject (EclipseADT, Gradle, etc.)-&X:\path\SOME_Smalidea-&Createprojectfromexistingsources
ProjectnameSOME_Smalidea
Projectlocation X:\path\SOME_Smalidea
在AS左上角选择”Project Files”
SOME_Smalidea-&src-&右键菜单-&Mark Directory As-&Sources Root
5. 建立调试通道
对于可调试APP,有两种办法建立调试通道,一种是用DDMS,另一种是用ADB,其实前者也隐式使用ADB。
5.1 启动DDMS
X:\path\sdk\tools\monitor.bat
过去用ddms.bat启动DDMS,这个已经过时了,现在建议用monitor.bat启动DDMS。monitor.bat实际执行:
lib\monitor-x86\monitor.exe
lib\monitor-x86_64\monitor.exe
选择哪种CPU架构,由如下命令控制:
java -jar X:\path\sdk\tools\lib\archquery.jar
最终受java的位数控制,如果用64-bits Java,将执行:
X:\path\sdk\tools\lib\monitor-x86_64\monitor.exe
最好用”where java”检查一下当前Java路径,调整环境变量,比如:
setpath=X:\path\Java\jre8\%path%
X:\path\sdk\tools\monitor.bat
X:\path\sdk\tools\lib\monitor-x86_64\monitor.exe
假设启动DDMS失败,用Process Explorer检查是否存在多个monitor.exe,杀掉它们再试。此外可以用Tcpview检查8700/TCP被谁占用。
DDMS有GUI,在左上角区域可以看到所有可调试进程的PID及调试端口。从中选择待调试进程,会发现其多出一个调试端口,第一个端口(原有的)不固定,第二个端口(新增的)是固定的8700/TCP。这两个调试端口地位相当,都可以用于调试,只不过8700有利于固化Android Studio调试配置。8700始终跟着被选中的待调试进程,如果切换了待调试进程,8700将出现在新选中的进程行,上一个被选中的进程行不再出现8700。
关于DDMS、ADB、JDWP,有兴趣者参看:
Dalvik Debugger Support
dalvik/docs/debugger.html
Dalvik VM Debug Monitor
dalvik/docs/debugmon.html
system/core/adb/jdwp_service.c
《格蠢汇编》第20章《漫谈Android系统的调试模型》
5.2 adb forward tcp:hostport jdwp:pid
关掉DDMS,直接用ADB建立调试通道
$ adb -s emulator-5554 shell "ps | grep com.anything.some"
USERPIDPPIDVSIZERSSWCHANPCNAME
ffffffffb7ede827 S com.anything.some
注意双引号的使用,这样可以确保执行Android系统中的grep,而不是PC上的grep,从而使得上述命令在Windows、Linux上都可用。
$ adb -s emulator-5554 forwardtcp:8700 jdwp:10140
$ adb -s emulator-5554 forward --list
emulator-5554 tcp:8700 jdwp:10140
关闭ADB建立的调试通道:
$ adb -s emulator-5554 forward --remove-all
上述命令的Windows实现可能有BUG,事后用Tcpview查看,adb仍在侦听8700/TCP,必须:
$ adbkill-server
我这里举例是以模拟器为目标,实际上可以是真实手机。
直接用ADB建立调试通道时,不一定使用8700/TCP。此处之所以仍然使用8700,是为了固化Android Studio调试配置。
5.3 启动APP之初就开始调试
前面假设APP已经启动,待调试代码仍可路过。如果待调试代码位于APP启动之初,需要额外操作。
假设目标是模拟器,检查AndroidManifest.xml
$ adb -s emulator-5554 shellamstart -D -W -n com.anything.some/.SomeActivity
在模拟器中会看到:
WaitingFor Debugger
ApplicationSOME (processcom.anything.some) is waitingfor thedebuggerto attach
然后启动DDMS或”adb forward tcp:hostport jdwp:pid”,建立调试通道。
假设目标是真实手机:
设置-&开发者选项-&USB调试
设置-&开发者选项-&选择调试应用-&SOME
设置-&开发者选项-&等待调试器
去真实手机中正常启动SOME,也会停在”Waiting For Debugger”。
然后启动DDMS或”adb forward tcp:hostport jdwp:pid”,建立调试通道。
6. 在Android Studio中调试
Run-&Edit Configurations-&点击左上角+号-&Remote
Name : DebugVia8700(这个名字可以任意)
Port : 8700(如果与DDMS配合,可以设成另一个端口,但每次都得改)
SOME_Smalidea-&src-&com/anything/some-&b.smali
第72行附近代码:
--------------------------------------------------------------------------
if-nezv0, :cond_3c
iget-object v0, p0, Lcom/anything/some/b;-&a:Lcom/anything/some/SomeA
const v1, 0x7f060025
--------------------------------------------------------------------------
在if-nez左侧空白处单击或按Ctrl-F8(参看Run菜单)设置断点
Run-&DebugDebugVia8700
在Console面板中会看到:
Connectedto thetargetVM, address: 'localhost:8700', transport: 'socket'
去模拟器中正常操作SOME,触发断点,调用栈回溯:
com.anything.some.b.onClick(UnknownSource:-1)
android.view.View.performClick(View.java:4204)
android.view.View$PerformClick.run(View.java:17355)
android.os.Handler.handleCallback(Handler.java:725)
android.os.Handler.dispatchMessage(Handler.java:92)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:5041)
java.lang.reflect.Method.invokeNative(Method.java:-1)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
dalvik.system.NativeStart.main(NativeStart.java:-1)
可以单步跟踪,可以修改由this指针定位的成员变量。
对于JVM,我一直梦想着有这样一个Java字节码级别的调试器,可以看调用栈回溯、看单条Bytecode指令的中间状态(比如ifeq是否满足)、修改变量等等,一直没找到。想不到对于DVM,有Smalidea这样的东西,不错。
有些文章提到一个配置操作:
File-&ProjectStructure-&Project-&ProjectSDK
对于在baksmali反编译基础上新建工程,此处显示。这些文章认为必须在此设置SDK版本,完全是胡说八道,根本不需要。
注意,”am start -D”仍然要求ro.debuggable=1或android:debuggable=”true”
假设在真实手机上调试一个不可调试APP,”am start -D”不会报错,但这个进程中不会出现JDWP线程,可用如下命令验证:
$ adb -s XXXshell "ps -t | grep -A 8 com.anything.some"
$ adb -s XXXshell "ps -t | grep -B 6 JDWP"
对于这种情况,DDMS里看不到”com.anything.some”。如果用”adb forward tcp:8700 jdwp:pid”强行建立调试通道,只是看上去成功了,Tcpview看到adb侦听127.0.0.1:8700/TCP,在Android Studio中尝试调试时,报错:
ErrorrunningDebugVia8700: Unableto opendebuggerport (localhost:8700): java.net.SocketException "Connection reset"
简单点说,如果APP所在进程没有出现JDWP线程,不管你怎么折腾,都不要想着调试了。
如果您需要了解更多内容,可以
加入QQ群:
直接询问:010-
小编为您推荐“使用Smalidea对无源码APK调试简介”相关文章
1、为什么要有AIDL?无论学什么东西,最先得弄明白为什么要有这个东西,不要说存在即是合理,存在肯定合理,但是你还是没有明白。对于AIDL有一些人的浅显概念就是,AIDL可以跨进程访问其他应用程序,和其他应用程序通讯,那我告诉你,很多技术都可以访问,如
这篇文章主要介绍了android利用SmsManager可以实现后台发送短信的方法,最近有使用说明,大家可以参考使用
在android的应用程序开发中,通常使用的是java语言,除了需要熟悉java语言的基础知识之外,还需要了解android提供的扩展的java功能。android SDK中API提供一些扩展的java 类库,类库分为若干个包,每个包中包含若干个类
这篇文章主要介绍了android实现百度地图自定义弹出窗口的功能,大家参考使用吧
如何自定义Android菜单背景呢? 默认的情况下Android系统的菜单是白色的,下面的例子可以通过自定义的xml布局实现个性化的menu
写在前面本文是SDKHotfix相关的SDK热更系列文章中的一篇,以下为项目及系列文章相关链接:SDKHotfix整体介绍:/sdk_hotfix_project.htmlSDKHotfix对应github地址:/bihe0832/SDKHoxFix这篇文章主要介绍一下SDK热更
ASimpleCache 是一个为android制定的 轻量级的 开源缓存框架。轻量到只有一个java文件(由十几个类精简而来)。1、它可以缓存什么东西?普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java对象,和 byte数据。2、它有什么特色?特色主要是
前期调研调研对象:支付宝,微信,云之家调研文档:Android中JS与Java的极简交互库 SimpleJavaJsBridge设计需求阅读类型的业务功能页面需要由前端H5实现,需要做到服务端可控;页面界面更改减少重新发布新版本的频率;功能页面部分原型需求无法实现,需要原生
之前写过一系列RxJava1的文章,也承诺过会尽快有RxJava2的介绍。无奈实际项目中还未真正的使用RxJava2,不敢妄动笔墨。所以这次还是给大家分享一个使用RxJava1解决问题的案例,希望对大家在使用RxJava的时候有一点点启发。对RxJava还不了解的同学可以先去看看
一、回顾框架原理本篇继续来看热修复框架Robust原理,在之前的一篇文章中已经详细讲解了:Robust框架原理,因为这个框架不是开源的,所以通过官方给出的原理介绍,咋们自己模拟了案例和框架逻辑的简单实践。最后在通过反编译美团app进行验证咋们的逻辑实现是
2016 年已经过去,感谢大家支持开发者头条。 年度盘点第四篇: 2016 年十大 Java / Android 开发者必读好文 。 长按识别文章摘要下方二维码,即可进入文章评论页。0. 推荐几个自己写的 Java 后端相关的范例项目这里推荐几个自己写的范例项目,主要采用 SSM(S
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:
我们一起学Java! 前段时间我们为大家分享过一些最常用的Java图表应用和Android图表应用,无论是在PC平台上还是移动平台上,图表和报
第151期:一个RxJava解决复杂业务逻辑的案例深度讨论 基本特效:饿了么丝滑无缝过度搜索栏的实现 diycode 帖子优先,就给上个头条吧。Android开发 一个RxJava解决复杂业务逻辑的案例 本文给大家分享一个使用RxJava解决问题的案例,希望对大家在使用RxJava的时
接着上一篇在Mac上编译ijkplayer的.so,现在将这些文件夹拷贝到windows上。(在mac和winds上集成到eclipse上是一样的,只是我这mac上没有安装eclipse)。现在开始说集成到Eclipse的步骤:1 更改目录结构 以 ijkplayer-armv7a 文件夹为例,删除选中的这四个文件
对Retrofit + OkHttp还不熟悉的人可以点传送门,先看下这两个东西的使用。Retrofit:/square/retrofitOkHttp:/square/okhttp分析接口文档要求Post请求,字段使用GBK编码我们先按照Retrofit的规范和接口文档来写接口: @PO}

我要回帖

更多关于 smali 动态调试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信