android
tangsilian
长期招移动安全
展开
-
Android Runtime Restrictions Bypass
0x00背景Twitter上quark实验室分享了一篇绕过Android高版本运行时限制绕过的方案,我们来分析Google对于Android运行时的限制和quark实验室给出的bypass方案。0x01 Android Runtime限制1. dlopen() restrictions从 Android 7.0 开始,系统将阻止应用动态链接非公开 NDK 库,这种库可能会导致您的应用崩...原创 2019-03-30 00:04:01 · 1147 阅读 · 0 评论 -
Android调试命令总结
am命令我们知道android底层是linux 是用c写的应用层是用java写的apk程序那么系统实现系统底层和应用层建的是如何将连接?那便是用的命令行工具am 具体用法如下 我们可以通过命令启动android中的Activity,Service,BroadcastReceiver 等组件 拨打一个电话:am start -a android.intent.action.CALL -d tel:原创 2016-05-15 20:28:17 · 2998 阅读 · 0 评论 -
Sqlite的使用和一个简单的书籍管理系统(上)
虽然说app与网络打交道比较多但是sqlite还是有它很重要的责任那来一起学习一下sqlite吧 android的存储方式有如下几种sharedpreferences文件存储sqlite数据库contentprovider网络`这里写代码片`我们来看看sqlite 他通过SQLiteOpenHelper这个抽象类;来创建和打开数据库public class DBHelper extend原创 2016-04-24 20:07:13 · 2869 阅读 · 1 评论 -
实现画布的效果
刮刮卡效果的原理paint.setXferMode(); 先绘制一个图像层1,用户再手绘的部分为2。交际的部分就是要显示的部分。 先来点基础的之前有做过一个类似画板的demopublic class MyviewDraw extends Activity { @Override protected void onCreate(Bundle savedInstanceState)原创 2016-04-20 20:17:11 · 551 阅读 · 0 评论 -
【如何管理开机自启动程序】
先写一个程序看看手机里面安装的app那些具有开机自启权限有很多方法:这里是通过packagemnager 实现public class checkthestartslef extends Activity { ListView listView; String boot_permission = "android.permission.RECEIVE_BOOT_COMPLETED";原创 2016-09-19 15:09:57 · 915 阅读 · 0 评论 -
【gdb调式桥】linux,android
android端上一、什么是gdb?它是gnu组织开发的一个强大的unix程序调试工具,我们可以用它来调试Android上的C、C++代码。 它主要可以做4件事情:1、随心所欲地启动你的程序。2、设置断点,程序执行到断点处会停住。(断点可以是表达式)3、程序被停住后,可以查看此时程序中发生的事。4、动态改变程序的执行环境一。我们需要使用gdbserver依附到我们要调试的进程上,gdb原创 2016-09-17 23:52:56 · 418 阅读 · 0 评论 -
【学习总结】三种发送短信的方法和四种按钮的点击事件
发送短信的方法:1.直接写入发发短信的代码2.反射调用smsManager3.dexclassloader动态加载dex里面的发短信的代码四种按钮的点击方法mianfest声明点击事件然后代码实现 android:onClick="onClick"public void onClick(View v) {switch(v.getId()){case R.id.btn1: de原创 2016-09-17 20:57:03 · 2114 阅读 · 0 评论 -
【工作记录】android多媒体
因为有个android恶意样本涉及到窃取录音,拍照和摄像等信息。所以来记录一下这些的实现手段录音:参考http://blog.csdn.net/cxf7394373/article/details/8313980录音基本实现代码如下: MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(Med原创 2016-08-15 15:16:42 · 403 阅读 · 0 评论 -
Android系统启动执行jar程序
看雪里有人问到android是不是只能执行apk程序? 除了原生程序和脚本外,android是可以启动执行封装java程序的jar包的。 实现流程如下: 实现root shell命令的android程序如下:package com.example.androidshell;import java.io.DataOutputStream;import java.io.IOException;i原创 2016-08-17 14:31:29 · 7102 阅读 · 4 评论 -
Webview访问移动网络的两种方法
效果如下 网络访问的两种查看方式 我们来看代码<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientati原创 2016-04-29 23:43:56 · 1179 阅读 · 0 评论 -
Android JNI简介
Android JNI和NDK关系 1、什么JNI Java Native Interface (JNI)标准是Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。 上面过程分为2个部分: 第一、用C语言生原创 2016-11-30 18:56:37 · 499 阅读 · 0 评论 -
Root检测与反检测
0x00背景Root检测手段检查已安装的包:SuperSU应用程序生根应用程序:利用权限升级漏洞来启动设备的应用程序(例如One Click Root,iRoot)Root Apps:需要root权限才能使用其功能的应用程序。例如busybox,SetCPU,Titanium Backup。Root Cloakers:隐藏设备是否已植根的应用程序。例如Root Cloaker,Root...原创 2018-12-25 23:54:59 · 18103 阅读 · 3 评论 -
SELinux 宽容模式(permissive) 强制模式(enforcing) 关闭(disabled) 几种模式之间的转换
在Android的root相关的文章里经常会看到关于SElinux,Android4.3以后引进SElinux。SELinux 的启动、关闭与查看1、并非所有的 Linux distributions 都支持 SELinux 目前 SELinux 支持三种模式,分别如下: •enforcing:强制模式,代表 SELinux 运作中,且已经正确的开始限制 domain/type 了; •perm原创 2018-04-29 17:10:59 · 76665 阅读 · 2 评论 -
在Ubuntu14.04上下载NDK和使用OLLVM混淆
环境Ubuntu14.04(64位)安装ndkAndroid Ndk 版本:android-ndk-r10e-linux-x86_64.bin (若从Google官网无法下载,可以在命令行下输入下面的语句来下载)$ wget -c http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin设置可执行权限chmod 777原创 2017-08-28 17:00:52 · 1146 阅读 · 0 评论 -
【android文件存放路径】
getCacheDir()方法用于获取/data/data//cache目录getFilesDir()方法用于获取/data/data//files目录应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。 大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。 这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。转载 2016-09-25 17:59:26 · 630 阅读 · 0 评论 -
busybox的使用
之前有总结关于安卓调试命令的东西今天来看个大杀器—busyboxBusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。(摘自百度百科)一般用在Android上,解决adbshell命令不全在Android安装Bus原创 2017-01-10 19:46:23 · 5603 阅读 · 0 评论 -
关于MultiDex
0x00背景–在逆向分析apk的过程中,会发现里面会出现多个dex的情况。0x01原因分析如果是这种:|—classes.dex |—classes.dex 哈哈,恭喜你 你找到利用masterkey 漏洞的样本了; 漏洞详情见:http://www.vuln.cn/6043(乌云,乌云快回来~~~)如果是这种|—classes.dex |—classes2.dex |—classes3原创 2016-12-27 17:08:19 · 2444 阅读 · 0 评论 -
【安卓静默安装手段分析】
———CSDN插入图片实在是蛋疼,现在都喜欢用erevnote了,但是有好的文章还是想分享出来我们平时安装应用的手段1.应用市场安装。 这种是没有安装界面的,一般有也只是有个进度条。如:小米应用市场,googleplay等。 2.adb 命令进行安装 这种也是没有安装界面 3.网络下载的应用。 这种一般都有安装界面。apk的安装处理流程 i. apk会copy到/data/app; ii原创 2016-11-23 22:14:11 · 2050 阅读 · 0 评论 -
【转】Android校招复习资料整理
————————-2016-11-23 虽然自己去转安全了,但是开发还是不想落下~备份下,留着以后想提升开发能力时候看。 转自于【huachao1001的专栏:http://blog.csdn.net/huachao1001/article/details/53156582】1、复习时间2016年6月份开始准备,不断刷题、买书、逛帖子。一直持续到8月中旬,其实复习时间并不是特别长,主要是把关键的转载 2016-11-23 22:08:52 · 898 阅读 · 0 评论 -
android的DeepLink
玩知乎的时候别人发一个链接过来,点开后会提示在应用中打开。 就很好奇具体的实现方式是什么? 然后google一波是deeplink。简单地从用户体验来讲,Deep Link,就是可以让你在手机的浏览器/Google Search上点击搜索的结果,便能直接跳转到已安装的应用中的某一个页面的技术。其实在日常使用中用户的也是比较广。deeplink跟appA启动aapB不同。他是以网页链接的形式实现的原创 2016-07-20 20:50:27 · 17570 阅读 · 2 评论 -
android中的Packagemanager
可以通过adb shell的命令查看adb shell dumpsys package com.examle.xx基本信息参考: http://www.cnblogs.com/xingfuzzhd/p/3374504.htmlPackageManager主要是管理应用程序包,通过它就可以获取应用程序信息。它可以实现的功能如下:1、安装,卸载应用 2、查询permission相关信息 3、查询原创 2016-06-22 23:42:23 · 505 阅读 · 0 评论 -
android向系统申请的权限
添加WiFi以及访问网络的权限: 操作外部存储设备文件: 录音时需要的权限: 录制视频时需要的权限: 发送短信: 收短信: 收彩信: GPS:原创 2016-06-29 23:30:11 · 766 阅读 · 0 评论 -
android中的安装删除程序的流氓方法
1.静默安装和删除: 参考: http://www.cnblogs.com/ondream/archive/2012/04/13/2446138.html 2.冷启动: 应用被杀死之后重新启动 冷启动的时间和性能的优化、 http://www.open-open.com/lib/view/open1453255416167.html3.生态链: 就是常说的一根葫芦七个娃。 唤醒机制:原创 2016-06-24 14:45:47 · 524 阅读 · 0 评论 -
Sqlite的使用和一个简单的书籍管理系统(下)
运行效果如下 我们一步一步来实现 之前我们是完成了布局和sqlite建库和基本的工具类现在我们来开始写业务逻辑 来写一个MainActivitypublic class MainActivity extends Activity { private ListView mBookListView; private EditText edtname; private原创 2016-04-24 23:59:10 · 1279 阅读 · 0 评论 -
XMPP协议解析
XMPP国际标准的协议可扩展的消息和展示的协议,是一种基础的开放式实时通信协议。可扩展新,强可读性。相比Email的发展史,163和qq邮箱之间的通信。为了兼容,符合同一种标准。即实现不同邮箱之间的通信。国内腾讯一家独大,微信和qq能交流,但是却不能和阿里旺旺取得联系。XMPP协议的优缺点优点:开放性,标准性,可扩展和跨平台。能与所有遵守xml协议的软件之间的通信。缺点:数据冗余。》使用x原创 2016-04-23 10:41:41 · 1340 阅读 · 0 评论 -
安卓程序如何获取另一个apk的签名
补充点小知识:1,字节数组和字符串之间的转换1、字节数组转换为字符串byte[] byBuffer = new byte[20];String strRead = new String(byBuffer);strRead = String.copyValueOf(strRead.toCharArray(), 0, byBuffer.length]);2、字符串转换成字节数组byte[] by原创 2016-05-30 18:39:26 · 1934 阅读 · 0 评论 -
根据一个笔试题引出的思考
题目:页面上现有ProgressBar控件progressBar,请用书写线程以10秒的的时间完成其进度显示工作布局文件和简单 就是一个Progressbar Activity的代码如下(其实我一直不知道改把activity叫什么好 窗口?或者活动?)public class ProgressTest extends Activity { private ProgressBar prs1;原创 2016-04-21 19:09:19 · 632 阅读 · 0 评论 -
AsyncTask的使用半解--!
AsyncTask,即异步任务,是Android给我们提供的一个处理异步任务的类.通过此类,可以实现UI线程和后台线程进行通讯,后台线程执行异步任务,并把结果返回给UI线程..为什么需要使用异步任务?我们知道,Android中只有UI线程,也就是主线程才能进行对UI的更新操作,而其他线程是不能直接操作UI的.这样的好处是保证了UI的稳定性和准确性,避免多个线程同时对UI进行操作而造成UI的混乱.但A原创 2016-04-19 18:29:08 · 390 阅读 · 0 评论 -
IntentService的使用介绍
IntentService简介一,IntentService是Service的子类,比普通的Service增加了额外的功能。先看Service本身存在两个问题: Service不会专门启动一条单独的进程,Service与它所在应用位于同一个进程中; Service也不是专门一条新线程,因此不应该在Service中直接处理耗时的任务; 二、IntentService特征 会创建独立的work原创 2016-04-29 11:10:42 · 400 阅读 · 0 评论 -
用绑定服务来实现放歌的功能
绑定服务—与调用者同生死的服务简单来讲相比于普通service,绑定服务就显得专情多了。。先来一个布局文件<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_wid原创 2016-04-28 20:58:43 · 545 阅读 · 0 评论 -
login界面 checkbox选择显示或者隐藏密码
先来看看布局文件login.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_h原创 2016-04-14 22:45:50 · 983 阅读 · 0 评论 -
用Service让模拟器为我们放首歌
有两个界面A和B 界面A—游戏设置界面 界面B—系统设置界面 两个界面都可以控制歌曲的播放 既然都是相同的界面和工能,那我们建一个baseActivity来减少重复的代码吧。public abstract class BaseActivity extends Activity { private String tag = null; @Override protecte原创 2016-04-27 20:28:02 · 446 阅读 · 0 评论 -
sdk里面文件的含义和配置android studio
Sdk里面的各种文件的含义add-ons/包含SDK开发环境的附件,让我们开发在一些设备上可用的扩展库docs/包含一套HTML格式的完整文档, 包括开发指南, API 参考, 和其他信息platform-tools/包含依赖于平台的开发工具。该平台的工具,包括 Android Debug Bridge (adb)以及其他工具,通常你不会直接使用它们 。请注意它和tools/是分开的platform原创 2016-04-12 20:40:55 · 1092 阅读 · 0 评论 -
android读取sim卡信息
package com.water.activity; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.telephony.CellLocation; import android.telephony.NeighboringCellInfo; impo原创 2016-05-19 14:38:42 · 4574 阅读 · 0 评论 -
StrictMode使用和查询联系人手机联系人和sim卡联系人
StrictMode使用 StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() .detectAll() .penaltyLog() .build(); StrictMode.setThreadPolicy(policy);StrictMode最常用来捕捉应用程序的主线程,它将报告原创 2016-06-28 15:11:27 · 421 阅读 · 0 评论 -
android系统文件的权限
在 Android 中,如果要使用系统限制的权限(比如 android.permission.WRITE_SECURE_SETTINGS),我们需要把程序安装到 /system/app/ 下。 下面来演示如何让一个普通的应用程序变为系统程序先安装apk》 adb push SecureSetting.apk /sdcard/ // 上传要安装的文件,为安装做准备。再切换到adb命令行$ a原创 2016-07-08 15:11:57 · 1557 阅读 · 0 评论 -
android的TelephoneManager
详细信息见; http://blog.csdn.net/aiqing0119/article/details/7842557one 获得手机的串号IMEI##IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的”电子串号”,它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将原创 2016-06-22 22:56:23 · 2312 阅读 · 0 评论 -
Android源码的结构
bionic 目录 |– libc (C库) | |– arch-arm (ARM架构,包含系统调用汇编实现) | |– arch-x86 (x86架构,包含系统调用汇编实现) | |– bionic (由C实现的功能,架构无关) | |– docs原创 2016-07-18 20:51:20 · 2214 阅读 · 0 评论 -
追踪和确认SMS消息传递
为了追踪发出的SMS消息的传送和成功送达,实现并注册Broadcast Receiver来监听你在sendTextMessage方法中传入的PendingIntent的动作。第一个PendingIntent参数,sentIntent,当消息发送成功或发送失败时触发。Broadcast Receiver接收到这个Intent时得到的结果值将是下面中的一个:❑ Activity.RESULT_OK 表原创 2016-06-16 17:28:37 · 489 阅读 · 0 评论 -
xml文件的解析
文件如下:<?xml version="1.0" encoding="UTF-8"?><people> <person personid="e01"> <name>张三</name> <tel>5128</tel> <email>txq512@sina.com</email> </person> <person personid=原创 2016-07-12 21:04:30 · 445 阅读 · 0 评论