- 博客(58)
- 收藏
- 关注
原创 linux 安装 android-sdk 环境
解压出来是tools文件夹,用这个文件夹覆盖刚才sdk目录下的tools文件夹。3. cd tools/bin,接受许可证。这里java环境依赖1.8,版本太高会报错。2. 安装tools。
2023-04-17 19:47:14
1711
原创 repo sync error: cannot initialize work tree
清除本地修改repo forall -c 'git reset --hard ; git clean -fdx' repo sync 出错1、定位出错仓库路径repo --trace sync -j1找到报错路径2、删除对应仓库.repo/projects/**.git/3、继续同步(如果出错继续删除对应仓库)repo --trace sync -j1...
2023-04-17 19:28:08
410
1
原创 热修复系列——Android热修复技术进阶篇
一、前言对热修复技术做一个总结,也是告一个段落(2年前的研究,有些可能过时了)。以AndFix入门,具体可以参考以前的使用步骤。热修复系列——AndFix使用教程基础篇_疑是银河落九天的博客-优快云博客_andfix使用二、热修复技术分类...
2022-05-10 19:52:01
1283
原创 Ubuntu16.04编译Android源码系列二—— android 5.1和android 6.0及踩坑
前言本文不涉及源码的下载,主要记录自己的编译源码过程及其中遇到的问题,并最终运行在真机上。通用的aosp具体的编译步骤已经在上一篇博客详细描述过了,链接如下:https://blog.youkuaiyun.com/u012195899/article/details/82078384#comments本篇博客只针对android 5和android 6的编译差别进行描述。预置环境1、u...
2019-06-22 23:00:19
1816
原创 Ubuntu16.04编译Android源码系列一——7.1.2和4.4及踩坑
一、前言 本文不涉及源码下载过程,主要记录自己的编译源码过程及其中遇到的问题,并最终运行在真机上。二、预置环境 1、ubuntu16.04,8G内存,2T硬盘 2、手机真机nexus 5x, nexus 5 3、编译源码版本为android-7.1.2_r18和android-4.4_r1两个 版本选择参...
2018-08-26 19:19:47
21936
5
原创 热修复系列——AndFix使用教程基础篇
一、前言 最近研究阿里的开源热修复框架AndFix,本文参考AndFix官方教程,给出我所使用详细小白demo教程,包括在构建测试demo过程中所遇到对问题也列出来。阿里github链接:https://github.com/alibaba/AndFix 限制: 1、支持的Android版本为2.3-7.0(即:Android API 9 ~ Android API ...
2018-07-12 12:55:44
5037
原创 activity劫持学习与复现
前言activity劫持是指当程序运行时,恶意程序检测到前台运行的正是想要劫持的程序,于是立即启动自己的活动,伪造一个一模一样的登录界面并立马呈现给用户,普通用户无法识别这个页面的真实性,于是恶意程序就可以获取到用户输入的敏感信息并上传到自己的服务器。activity劫持原理1、在启动activity的时候,加入标志位FLAG_ACTIVITY_NEW_TA
2017-04-14 15:10:07
4743
原创 Android本地拒绝服务漏洞学习与复现
一、前言本地拒绝服务一般会导致正在运行的应用崩溃,首先影响用户体验,其次影响到后台的Crash统计数据,另外比较严重的后果是应用如果是系统级的软件,可能导致手机重启。漏洞触发前提条件:getIntent()的intent附带空数据、异常或畸形数据;处理getXXXExtra()获取的数据时没有进行异常捕获;二、漏洞原理Android应用使用Int
2017-04-07 12:06:30
5658
4
原创 WebView远程代码执行漏洞学习并复现
一 前言Android API level 16以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用WebView.addJavascriptInterface方法,远程攻击者可通过使用Java Reflection API利用该漏洞执行任意Java对象的方法,简单的说就是通过addJavascriptInterface给WebView加入一个JavaScript桥接
2017-04-01 17:47:24
8004
1
原创 基础排序算法总结及实现
最近复习了一下基础排序算法,这里简单总结一下算法实现原理及实现代码。由于代码是根据原理写的基础算法,并没有过多的考虑性能优化。我们这里讲的所有算法都是升序排序。冒泡排序原理简介:数组左边无序,右边有序,每次比较两个相邻的元素,然后选出最大的放在有序队列队首。算法: 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个,这样最后的元素就是最大的数。 2、重
2017-03-31 19:13:02
499
原创 signapk.jar利用eclipse签名apk文件
本文的目的是,使用eclilpse的签名配置文件,然后利用signapk.jar对apk文件进行签名。1、debug.keystoredebug.keystore是eclipse的默认配置文件,查看该配置文件路径操作如下:2、将debug.keystore转为pk8+x509.pem(1)执行以下命令 keytool -importkeystore -srcke
2016-12-29 17:06:48
1394
原创 真机上运行monkeyrunner python脚本踩坑系列二
之前搞monkeyrunner的时候,尝试过使用AndroidViewClient,但是一直没配好环境。这两天有空恰好朋友也在弄,又捡起来。才发现之前网上查到的用monkeyrunner 跑androidviewclient完全没必要。androidviewclient已经完全独立了,相当于可以python直接运行,它的包里面也有封装得很好的可以直接操作真机的函数。通过文本、id等都可以操
2016-12-25 10:21:17
3205
原创 真机上运行monkeyrunner python脚本踩坑系列一
monkeyrunner工具提供了一个API,可以控制Android设备和模拟器。通过monkeyrunner,可以写python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图传送回来。使用monkeyrunner命令运行脚本时,脚本最好也建在tools目录下。MonkeyDevice目前操作是根据坐标,EasyMonkeyDevic
2016-12-15 16:47:35
7914
5
原创 四大组件安全
本文为学习记录,将一些重点记录下。参考droidsec网站。推荐大家关注一下。Activity:http://www.droidsec.cn/android-activtity-security/Broadcast:http://www.droidsec.cn/android-broadcast-security/Content:http://www.droidsec.cn/a
2016-11-30 17:27:15
3141
原创 IDA调试so文件进阶篇
之前我们讲了用IDA调试so文件的基础,想了解的可以转这里:http://blog.youkuaiyun.com/u012195899/article/details/52780062,今天学习当apk采用了一些反调试手段时,如何使用IDA来帮助我们解决问题。这里我们使用14年阿里ctf第三题作示例。一、安装apk因为我们需要对apk进行调试,因此拿到apk的第一件事,就是使用apktool反
2016-10-27 14:29:55
6672
1
原创 APIMonitor安装
参考官网描述:https://github.com/pjlantz/droidbox/wiki/APIMonitor前面我们讲了Droidbox的环境安装流程,http://blog.youkuaiyun.com/u012195899/article/details/52814013,这里我们讲APIMonitor如何使用。这个的使用就非常简单了,只需要重打包apk然后在真机或avd运行即可。运行环境
2016-10-17 11:19:27
2871
原创 Droidbox环境搭建
最近需要使用Droidbox,网上这方面的资料比较少,这里把我的整个环境搭建过程记录下来。文中步骤会写得比较详细。我的基础环境是Ubuntu14.04LTS,。不过例行惯例,我每次新建虚拟机之后,总是会命令行更新一下源。 命令:sudo apt-get update大家都知道Droidbox是一个分析android的动态分析工具,我这里并不做android开发,仅仅分析apk而已,
2016-10-14 17:09:41
6156
15
原创 IDA调试so文件基础篇
我们前面学习了如何使用eclipse调试smali文件,今天我们一起来学习一下如何使用IDA调试so文件。今天我们讲述的重点放在成功调试so文件,讲得比较基础,因此我们使用前面eclipse建立的NDK项目hello3作为示例来讲解。想了解的同学,可以转战这里:http://blog.youkuaiyun.com/u012195899/article/details/52711524,这个示例非常的简单,就是
2016-10-11 11:18:45
15793
2
转载 eclipse动态调试smali
本文转载自看雪:http://bbs.pediy.com/showthread.php?t=189610跟踪apk一般的做法是在反编译的smali代码中插入log输出,然后重新编译运行看输出日志,这种方法费时费力,如果能够动态调试就最好了。下面就给大家介绍apk+eclipse来调试smali。前期准备:eclipse。Jdk或jre,并设置好环境变量,我的是7.0版本。A
2016-10-10 11:34:04
1241
原创 eclipse打包jar
本篇文章主要针对使用了外部jar包和文件的程序。本文的jar包运行环境中配置java环境变量,因此如果需要运行在未安装java运行环境的话,还需要另外打包jre,不过大致原理都差不多,看懂了本文后,大家也可以自己去尝试,无非就是一些路径设置的问题。最后我们的打包文件夹目录如下,test.jar是我们打包的程序,lib中存放的是我们的mysql驱动包,config.ini是程序中所使用到的文件。
2016-10-09 22:27:18
737
原创 Android第一个NDK示例
前面我们讲了三种方式编译原生程序,今天我们讲一下android代码中编译原生程序的例子。这个例子是基于上篇文章eclipse编译那个例子,因此没看过的同学,可以转战这里了:http://blog.youkuaiyun.com/u012195899/article/details/52704206现在,我们开始修改这个hello3工程。1、首先在com.example.hello3目录下新建类JNI.j
2016-09-30 16:17:26
1202
原创 NDK编译基础示例
本篇博文参考了非虫大大的Android软件安全与逆向分析,这真的是一本好书,里面涵盖的内容比较全也比较基础。下面开始我们的学习。Android为了提高效率、安全性等,提供了NDK(原生开发套件),现在我们来看看如何编译原生程序。原生程序的编译有三种方法:1、使用gcc手动编译2、使用ndk-build手动编译3、使用eclipse自动编译我们分别使用这三种方式来分别编译看看
2016-09-30 12:15:18
4844
原创 so文件格式详解
可执行链接格式 ( Executable and Linking Format)最初是由 UNIX 系统实验室 ( UNIXSystem Laboratories, USL)开发并发布, 作为应用程序二进制接口 ( Application BinaryInterface, ABI)的一部分,它是一种常用的目标文件格式,主要包含以下三种类型1、可重定位文件:可与其它目标文件一起创建可执行文件和共
2016-09-28 15:28:21
16443
翻译 Android第一行代码学习笔记九----高级技巧
ContextAndroid 提供了一个 Application 类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。而我们可以定制一个自己的 Application 类,以便于管理程序内一些全局的状态信息,比如说全局 Context。示例代码:public class MyApplication extends Application {private static Con
2016-09-26 20:06:49
349
翻译 Android第一行代码学习笔记八----网络技术
1、WebView借助WebView控件在应用程序里嵌入一个浏览器。首先修改activity_main.xml,示例代码如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height=
2016-09-26 11:22:00
462
翻译 Android第一行代码学习笔记七----后台服务
服务是Android实现程序后台运行的方案,适合执行不需和用户交互且长期运行的任务。服务并不是运行在一个独立的进程当中的,而是依赖于创建服务时所在的应用程序进程。当某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止运行。1、Android多线程1、线程的基本用法与java多线程编程类似。有三种方式1、继承新建类继承Thread,重写父类run()方法,在里面处理耗时逻
2016-09-23 11:39:30
756
翻译 Android第一行代码学习笔记六----手机多媒体
通知通知基本用法静态显示首先,调用Context的getSystemService()获取NoticationManager(),getSystemService()方法接收一个字符串参数确定获取系统的 哪个 服务 ,这 里我们 传入Context.NOTIFICATION_SERVICE 即可。示例如下:NotificationManager manager = (Not
2016-09-22 14:28:59
794
翻译 Android第一行代码学习笔记五----内容提供器
内容提供器主要用于在不同的应用程序直接实现数据共享。内容提供器一般有两种,一种是使用现有的内容提供器另一种是创建自己的内容提供器给我们程序的数据提供外部访问接口。
2016-09-20 20:51:56
623
翻译 Android第一行代码学习笔记四----数据存储
Android主要提供三种方式简单存储数据,即文件存储、SharedPreference 存储以及数据库存储。并且这三种存储方式比存储在SD卡中更安全。文件存储文件存储直接将数据保存到文件中,适用于简单的文本数据或二进制数据。存储数据Context 类中提供 openFileOutput ()方法,该方法接收两个参数,第一个参数是文件名,默认存储到/data/data//files
2016-09-19 17:54:44
447
翻译 Android第一行代码学习笔记三----广播
简介Android 中的广播主要可以分为两种类型,标准广播和有序广播。标准广播:完全异步执行,效率会比较高,无法被截断。有序广播:同步执行,广播接收器有先后顺序,可以截断。接收系统广播Android 内置了很多系统级别的广播,可以通过监听这些广播来得到各种系统的状态信息动态注册注册广播的方式一般有两种,在代码中注册(动态)和在 AndroidManifest
2016-09-18 20:09:53
757
翻译 Android第一行代码学习笔记二----活动
本文参考Android第一行代码,大部分文字也摘自此文,作学习之用。活动是一种可以包含用户界面的组件,主要用户和用户进行交互。所有的活动都要在AndroidManifest.xml中注册才能生效。活动的销毁按back键或者调用finish()函数即可。主活动需要在标签中加入以下两句声明一、IntentIntent 是 Android 程序中各组件之间进行交互的一种重要方式,它不仅
2016-09-13 18:09:53
537
翻译 Android第一行代码学习笔记一----android架构
本文参考android第一行代码,大部分文字也摘自此书,为个人学习笔记之用。Android 大致可以分为四层架构,五块区域。1. Linux 内核层Android 系统是基于 Linux 2.6 内核的,这一层为 Android 设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi 驱动、电源管理等。2. 系统运行库层这一层通过一些 C/C++
2016-09-13 17:47:29
635
原创 .bat批处理命令笔记
title cmd窗口标题pause 暂停执行start 启动.exe文件或打开某个文件夹或文件goto 跳转到某个标号处echo off 关闭回显echo on 打开回显@echo off 关闭回显(包括本行回显)echo /? 查看该命令使用方法输出空行的方法,分为以下三组,效率依次递减echo= ech
2016-09-13 10:45:03
677
原创 windows下解密微信数据库
本文不涉及如何获取微信数据库原理及解密原理(这部分代码网上已经非常非常多了),假设本文读者都已经获取了两个数据,分别是加密库EnMicroMsg.db,解密密钥。我们知道,微信数据库是使用sqlcipher进行加密的。因此,使用sqlcipher解密即可。网上下载sqlcipher-3.0.1版本使用方法,进入bin文件目录,根据自己的系统情况选择.exe文件执行,执行sqlcip
2016-09-12 18:17:24
13807
17
原创 ubuntu pip install pysqlcipher
这几天要用到pysqlcipher,无奈看了下这方面的资料,网上基本都说直接安装就可以成功,结果我试了一下报出各种乱七八糟的错误,才知道要安装很多的依赖包。现在把自己从一个干净的ubuntu14.04版本虚拟机到安装成功过程中执行的命令记录如下,帮助各位少走弯路:1、更新源sudo apt-get source2、查看当前python环境是否安装,输入如下命令,完成之后按ctrl+z退出python
2016-09-09 14:52:44
2212
原创 springmvc+hibernate+sqlite
今天给大家讲下如何springmv+hibernate如何连接sqlite数据库,在之前的一篇文章中我们讲到如何连接mysql数据库,参考链接为(稍后补上),接下来我们就根据这篇博文,修改我们的数据库为sqlite。1、首先,我们要知道,hibernate官方并没有给出连接sqlite数据库的方言,因此,这个方言我们需要自己定义,网上给出了很多版本的方言 ,大家根据自己的hibernate版本
2016-09-09 11:59:22
4992
原创 eclipse正常启动tomcat,但是访问不了tomcat主页
1、打开Servers窗口 2、双击Servers窗口中的tomcat服务器,出现了tomcat配置文件,根据tomcat路径修改配置文件如下图: 此时重启,输入localhost:8080,应该就可以访问tomcat主页了。
2016-09-09 10:36:14
710
转载 java源码编译成dex文件
1、编写test.java文件2、打开命令行窗口,输入如下命令,即可将.java文件编译成.class文件javac -source 1.6 -target 1.6 test.java3、进入dx所在目录,并将test.class文件复制到该目录下,命令行执行命令:dx --dex --output=e:\DexTest\classes.dex test.class
2016-09-09 10:18:09
3135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人