自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

omnispace的博客

专注AI,物联网,区块链,安卓以及相关安全技术

  • 博客(41)
  • 资源 (6)
  • 收藏
  • 关注

转载 The Definitive Security Data Science and Machine Learning Guide

This is the Definitive Security Data Science and Machine Learning Guide. It includes books, tutorials, presentations, blog posts, and research papers about solving security problems using data science

2017-06-21 14:34:03 1966

转载 Part 2 – Deep analysis using Androguard tools

Welcome to the second part of this series on “Reverse Engineering android applications”. To read an overview of the series, refer to the serious announcement blog post.In first part, we learnt

2017-06-30 08:33:19 685

转载 Part 1 – Reverse engineering using Androguard

Androguard is a python based tool, which can run on Linux/Windows/OSX, provided python is installed in the system. Check: http://code.google.com/p/androguard/It is powerful tool to disassemble and to decompile android apps. It can be used for the Static

2017-06-30 08:09:21 767

转载 Android污点分析工具flowdroid源码简析

flowdroid是一款对Android app进行风险分析的应用,下面深入其源码对其工作的流程进行相关的探究。1、准备a)下载相关源码(包括soot、heros、jasmin、soot-infoflow、soot-infoflow、soot-infoflow-android)到同一文件夹中,使用eclipse将源码依次导入就完成了整体项目的导入,尽量使用最新版eclipse,如果

2017-06-30 07:41:16 5435

转载 FlowDroid工具的构建与运行

今天早上Aaron收到一封邮件,从我的博客联系到我,问我如何运行flowdroid,着实感到开心。这是我博客搭建起来之后第一次有人联系到我,感觉自己可以做一点事情很开心。本文是以我对该邮件的回复为基础加以整理,总结了FlowDroid工具的构建和运行的方法。回复邮件正文您好。我是从读了这篇论文才开始接触android的,所以对android基础知识、运行机制乃至环境搭建认识

2017-06-30 07:39:26 3207 3

转载 使用FlowDroid生成Android应用程序的函数调用图

提到Android应用程序静态分析,就不能不提Flowdroid。该工具是目前使用很广泛的Android应用程序数据流分析工具。它基于强大的Java分析工具Soot开发,提供了许多有用的功能。具体的介绍和使用帮助可以访问开发团队的网站 点这里。然而有时候我们并不需要使用Flowdroid的全部功能,例如有时候我们只想要一个APK里面的函数调用图。当然我们可以使用androguard(最近好

2017-06-30 07:37:24 1504 1

转载 在Linux上使用AFL对Stagefright进行模糊测试

前言模糊测试是一种自动向程序传递输入数据并监控其输出的自动化测试技术。通过这种技术,安全人员可以测试程序的可靠性以及识别潜在的安全漏洞。我们(360成都安全响应中心)将对Stagefright Media Framework进行模糊测试。它是Android系统上用于解析多媒体文件的逻辑算法库,其中包含了大量的安全漏洞,攻击者通过构造特殊的多媒体文件导致拒绝服务或特权升级甚至远程执行

2017-06-29 15:03:46 3288

转载 全能HOOK框架 JNI NATIVE JAVA ART DALVIK

OneHook目前比较流行的几个安卓HOOK方案,都有功能上的欠缺,有的不支持art模式,有的不支持jni层,有的不支持侵入HOOK。所以OneHook诞生了!这是一个同时支持ART和Dalvik两种模式,理论上支持安卓4.0.3以上所有版本,同时支持JAVA和NATIVE层,使用全局注入技术的侵入式HOOK框架。本框架不需要额外的安装,可以静态编译到自己的APP中

2017-06-29 14:46:29 3134

转载 2017年Q1安卓ROOT类恶意病毒发展趋势研究报告

摘要1、移动互联网黑产持续性攻击的核武器,用户设备沦陷的最后防线Android平台作为目前最流行的流量平台,由于它的开源使得大量的厂商加入其阵营,作为当前最大的流量来源,安卓平台是黑产分子眼中的香饽饽,各种恶意应用和手机病毒纷至而来。由于安卓系统先天就存在的一些限制,习惯了PC时代为所欲为的黑产分子为了绕过Android平台的安全机制以及与手机杀毒软件的对抗,病毒开

2017-06-28 15:09:51 1094

转载 360脱壳-native函数还原笔记-2017-06-25

本帖最后由 欧阳锋锋 于 2017-6-25 12:37 编辑      接触andorid逆向脱壳一段时间了,刚刚感觉开始入门,最开始时的过反调试,花费了大量的时间,但时间长了,汇编指令慢慢熟悉,学会了一些调试技巧,反调试方法知道了,就那么些反调试的方法,过反调就比较顺利了,所以刚开始学逆向的同学,应该也会比较头疼的,记录下我的逆向学习之旅,增强下记忆,记录分享也是自我提升的过程

2017-06-28 14:40:56 2589

转载 360加固逆向脱壳之过反调试

写在最前,本来是想把360加固全部脱壳后,写一篇教程。不过在我过了360加固调试后,最后卡在了native void onCreate函数的提取。最后就无结果了。但又发现许多人卡在了360加固的反调试,为了帮助其他人能成功(其实我没有这么伟大,只是发现写这篇文章对我没有害处,就决定放出来),而且希望,如果有人把native void onCreate函数dump下来的话,请觅我,我真的很想知道36

2017-06-28 14:38:16 4958

转载 深度学习利器: TensorFlow系统架构及高性能程序设计

2015年11月9日谷歌开源了人工智能平台TensorFlow,同时成为2015年最受关注的开源项目之一。经历了从v0.1到v0.12的12个版本迭代后,谷歌于2017年2月15日发布了TensorFlow 1.0 版本,并同时在美国加州山景城举办了首届TensorFlow Dev Summit会议。TensorFlow 1.0及Dev Summit(2017)回顾和以往版本相比,

2017-06-28 07:12:02 1936

转载 深度学习指南:在iOS平台上使用TensorFlow

在利用深度学习网络进行预测性分析之前,我们首先需要对其加以训练。目前市面上存在着大量能够用于神经网络训练的工具,但TensorFlow无疑是其中极为重要的首选方案之一。大家可以利用TensorFlow训练自己的机器学习模型,并利用这些模型完成预测性分析。训练通常由一台极为强大的设备或者云端资源完成,但您可能想象不到的是,TensorFlow亦可以在iOS之上顺利起效——只是存在一定

2017-06-28 07:09:35 3831

原创 Github 优秀开源项目 Best Open Source Projects

AndroidAndroid SecurityDeep LearningTensorFlow

2017-06-28 04:18:46 756

转载 理解Android Binder机制(3/3):Java层

本文是Android Binder机制解析的第三篇,也是最后一篇文章。本文会讲解Binder Framework Java部分的逻辑。Binder机制分析的前面两篇文章,请移步这里:理解Android Binder机制(1/3):驱动篇理解Android Binder机制(2/3):C++层):驱动篇下文所讲内容的相关源码,在AOSP源码树中的路径如下://

2017-06-17 02:06:24 2480

转载 理解Android Binder机制(1/3):驱动篇

Binder的实现是比较复杂的,想要完全弄明白是怎么一回事,并不是一件容易的事情。这里面牵涉到好几个层次,每一层都有一些模块和机制需要理解。这部分内容预计会分为三篇文章来讲解。本文是第一篇,首先会对整个Binder机制做一个架构性的讲解,然后会将大部分精力用来讲解Binder机制中最核心的部分:Binder驱动的实现。Binder机制简介Binder源自Be Inc公司开发

2017-06-17 02:00:41 2407

转载 Android系统中的进程管理:内存的回收

本文是Android系统进程管理的第三篇文章。进程管理的前面两篇文章,请参见这里:Android系统中的进程管理:进程的创建Android系统中的进程管理:进程的优先级本文适合Android平台的应用程序开发者,也适合对于Android系统内部实现感兴趣的读者。前言内存是系统中非常宝贵的资源,即便如今的移动设备上,内存已经达到4G甚至6G的级别,但对于内存的回收也依

2017-06-16 07:28:48 2619 2

转载 Android系统中的进程管理:进程的创建

对于操作系统来说,进程管理是其最重要的职责之一。考虑到这部分的内容较多,因此会拆分成几篇文章来讲解。本文是进程管理系统文章的第一篇,会讲解Android系统中的进程创建。本文适合Android平台的应用程序开发者,也适合对于Android系统内部实现感兴趣的读者。概述Android系统以Linux内核为基础,所以对于进程的管理自然离不开Linux本身提供的机

2017-06-16 07:26:30 3421

转载 Android系统中的进程管理:进程的优先级

本文是Android进程管理系列文章的第二篇,会讲解进程管理中的优先级管理。进程管理的第一篇文章:《进程的创建》请跳转至这里。本文适合Android平台的应用程序开发者,也适合对于Android系统内部实现感兴趣的读者。前言进程的优先级反应了系统对于进程重要性的判定。在Android系统中,进程的优先级影响着以下三个因素:当内存紧张时,系统对于进程的

2017-06-16 07:22:01 12286 1

转载 Android开发架构规范

前言在开发中,一个良好的开发习惯以及一个开发规范可能会让你少走很多弯路,也会一定程度上的提高代码的可读性,可维护性和可拓展性。当随着需求的不断变更,需要维护项目的时候。当随着项目的代码量的提升,需要重构的时候。你会明白一个好的开发规范多么多么的重要。这里整理一下自己android开发中的一些规范。希望对各位有帮助。命名规范包命名规范包名全部采用小写主包名采用[公

2017-06-16 07:17:30 585

转载 关于 Android 进程保活,你所需要知道的一切

早前,我在知乎上回答了这样一个问题:怎么让 Android 程序一直后台运行,像 QQ 一样不被杀死?。关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一。你到网上搜 Android 进程保活,可以搜出各种各样神乎其技的做法,绝大多数都是极其不靠谱。前段时间,Github还出现了一个很火的“黑科技”进程保活库,声称可以做到进程永生不死。

2017-06-16 07:09:37 631

转载 【进阶】从linux到android,进程的方方面面

最近在阅读《Linux内核设计与实现》,这里做一下linux中进程相关的知识点整理,以及android中进程的浅析。下面1,2小节整理自《Linux内核设计与实现》 第三章《进程管理》和第四章《进程调度》。第3节整理android中进程的知识点。1 Linux中的进程管理以下内容整理自:《Linux内核设计与实现》 第三章《进程管理》1.1进程和线程

2017-06-16 07:06:40 486

转载 Android中关于cpu/cpuset/schedtune的应用

Android中关于cpu/cpuset/schedtune的应用都是基于进程优先级的,根据不同优先级划分进程类型。AMS(ActivityManagerService)和PMS(PackageManagerService)等通过class Process设置进程优先级、调度策略等;android/osProcess JNI通过调用libcutils.so/libutils.so执行getprio

2017-06-16 07:04:55 7571

转载 Android性能优化之虚拟机调优

介绍完 深入学习Android:虚拟机&运行时 之后,很多小伙伴问我,你描述的这些知识结构看起来艰深晦涩高大上,实际工作中能有多大用途呢?今天我就简单举个例子。众所周知,我们的Android App运行在Java虚拟机之上,而Java是一门带GC的语言。在虚拟机进行垃圾回收的时候,要做一件很形象的事叫做STW(stop the world);也就是说,为了回收那些不再使用的对象,虚拟机必须

2017-06-16 07:01:48 4579

转载 ART深度探索开篇:从Method Hook谈起

Android上的热修复框架 AndFix 想必已经是耳熟能详,它的原理实际上很简单:方法替换——Java层的每一个方法在虚拟机实现里面都对应着一个ArtMethod的结构体,只要把原方法的结构体内容替换成新的结构体的内容,在调用原方法的时候,真正执行的指令会是新方法的指令;这样就能实现热修复,详细代码见 AndFix。为什么可以这么做呢?那得从 Android 虚拟机的方法调用过程说起。

2017-06-16 06:59:18 3865

转载 Android Studio你不知道的调试技巧

写代码不可避免有Bug,通常情况下除了日志最直接的调试手段就是debug;那么你的调试技术停留在哪一阶段呢?仅仅是下个断点单步执行吗?或者你知道 Evaluate Expression, 知道条件断点;可是你听说过日志断点吗,Method Breakpoint, Exception Breakpoint 呢?还有高大上的 Field Watchpoint ?几种不同的断点

2017-06-16 06:57:36 551

转载 如何调试Android Native Framework

半年前写了一篇文章,介绍 如何调试Android Framework,但是只提到了Framework中Java代码的调试办法,但实际上有很多代码都是用C++实现的;无奈当时并并没有趁手的native调试工具,无法做到像Java调试那样简单直观(gdb+eclipse/ida之流虽然可以但是不完美),于是就搁置下了。Android Studio 2.2版本带来了全新的对Android Nat

2017-06-16 06:56:17 628

转载 如何调试Android Framework?

Linus有一句名言广为人知:Read the fucking source code. 但其实,要深入理解某个软件、框架或者系统的工作原理,仅仅「看」代码是远远不够的。就拿Android Framework来说,整个代码量非常大不说,那些个动辄几万行的类如何去理解?所以我今天要说的就是:Debug the fucking source code!!之前分享过一个答案:大家遇到过什么

2017-06-16 06:53:35 656

转载 Android插件化原理解析——ContentProvider的插件化

目前为止我们已经完成了Android四大组件中Activity,Service以及BroadcastReceiver的插件化,这几个组件各不相同,我们根据它们的特点定制了不同的插件化方案;那么对于ContentProvider,它又有什么特点?应该如何实现它的插件化?与Activity,BroadcastReceiver等频繁被使用的组件不同,我们接触和使用ContentProvider的

2017-06-16 06:51:21 640

转载 Android 插件化原理解析——Service的插件化

在 Activity生命周期管理 以及 广播的管理 中我们详细探讨了Android系统中的Activity、BroadcastReceiver组件的工作原理以及它们的插件化方案,相信读者已经对Android Framework和插件化技术有了一定的了解;本文将探讨Android四大组件之一——Service组件的插件化方式。与Activity, BroadcastReceiver相比,

2017-06-16 06:49:23 1404

转载 Android插件化原理解析——广播的管理

在Activity生命周期管理 以及 插件加载机制 中我们详细讲述了插件化过程中对于Activity组件的处理方式,为了实现Activity的插件化我们付出了相当多的努力;那么Android系统的其他组件,比如BroadcastReceiver,Service还有ContentProvider,它们又该如何处理呢?相比Activity,BroadcastReceiver要简单很多——广播的

2017-06-16 06:47:30 470

转载 Android 插件化原理解析——插件加载机制

上文 Activity生命周期管理 中我们地完成了『启动没有在AndroidManifest.xml中显式声明的Activity』的任务;通过Hook AMS和拦截ActivityThread中H类对于组件调度我们成功地绕过了AndroidMAnifest.xml的限制。但是我们启动的『没有在AndroidManifet.xml中显式声明』的Activity和宿主程序存在于同一个Apk中;

2017-06-16 06:44:51 722

转载 Android 插件化原理解析——Activity生命周期管理

之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在Android系统上运行起来?在Java平台要做到动态运行模块、热插拔可以使用ClassLoader技术进行动态类加载,比如广泛使用的OSGi技术。在Android上当然也可以使用动态加载技术,

2017-06-16 06:41:31 757

转载 Android插件化原理解析——Hook机制之Binder Hook

Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager, AudioManager等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。插件框架作为各个插件的管理者,为了使得插件能够无缝地使用这些系统服务,自然会对这些系统服务做出一定的改造(Hook),使得插件的

2017-06-16 06:40:04 623

转载 Android插件化原理解析——Hook机制之动态代理

使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的。本文将带你了解基于动态代理的Hook机制。阅读本文之前,可以先clone一份 understand-plugin-framework,参考此项目的dynamic-

2017-06-16 06:38:13 592

转载 关于Android中工作者线程的思考

本文系2015 北京 GDG Devfest分享内容整理。在Android中,我们或多或少使用了工作者线程,比如Thread,AsyncTask,HandlerThread,甚至是自己创建的线程池,使用工作者线程我们可以将耗时的操作从主线程中移走。然而在Android系统中为什么存在工作者线程呢,常用的工作者线程有哪些不易察觉的问题呢,关于工作者线程有哪些优化的方面呢,本文将一一解答这些问

2017-06-16 05:59:24 352

转载 模拟上帝之手的对抗博弈——GAN背后的数学原理

简介深度学习的潜在优势就在于可以利用大规模具有层级结构的模型来表示相关数据所服从的概率密度。从深度学习的浪潮掀起至今,深度学习的最大成功在于判别式模型。判别式模型通常是将高维度的可感知的输入信号映射到类别标签。训练判别式模型得益于反向传播算法、dropout和具有良好梯度定义的分段线性单元。然而,深度产生式模型相比之下逊色很多。这是由于极大似然的联合概率密度通常是难解的,逼近这样的概率密度

2017-06-12 16:46:45 1084

转载 只知道GAN你就OUT了——VAE背后的哲学思想及数学原理

引言 短短三年时间,变分编码器VAE(Variational Auto-encoder)同GAN一样,成为无监督复杂概率分布学习的最流行的方法。VAE之所以流行,是因为它建立在标准函数逼近单元,即神经网络,此外它可以利用随机梯度下降进行优化。本文将解释重点介绍VAE背后的哲学思想和直观认识及其数学原理。VAE的最大特点是模仿自动编码机的学习预测机制,在可测函数之间进行编码、解码。同GAN类似,其最...

2017-06-12 16:44:47 7293 1

转载 十图详解TensorFlow数据读取机制(附代码)

在学习TensorFlow的过程中,有很多小伙伴反映读取数据这一块很难理解。确实这一块官方的教程比较简略,网上也找不到什么合适的学习材料。今天这篇文章就以图片的形式,用最简单的语言,为大家详细解释一下TensorFlow的数据读取机制,文章的最后还会给出实战代码以供参考。TensorFlow读取机制图解首先需要思考的一个问题是,什么是数据读取?以图像数据为例,读取数据的过程可以用下

2017-06-12 16:43:06 706

转载 JAndFix: 基于Java实现的Android实时热修复方案

简述JAndFix是一种基于Java实现的Android实时热修复方案,它并不需要重新启动就能生效。JAndFix是在AndFix的基础上改进实现,AndFix主要是通过jni实现对method(ArtMethod)结构题内容的替换。JAndFix是通过Unsafe对象直接操作Java虚拟机内存来实现替换。原理为何JAndfix能够做到即时生效呢? 原因是这样的,在app运

2017-06-10 17:13:50 1190

客户端启动出现错误无法运行的解决办法(缺失的jar文件)v1.2

基于java开发的客户端在64位机器上启动的时候有时候会无法运行,出现“invalid resource”的错误, 所提供的jar文件是常见的一个缺失文件。具体使用请参见博客。

2019-05-27

python客户端启动出现错误无法运行的解决办法(缺失的jar文件)v1.2

基于java开发的python客户端在64位机器上启动的时候有时候会无法运行,出现“invalid resource”的错误, 所提供的jar文件是常见的一个缺失文件

2019-05-24

python客户端启动出现错误无法运行的解决办法(缺失的jar文件)

基于java开发的python客户端在64位机器上启动的时候有时候会无法运行,出现“invalid resource”的错误, 所提供的jar文件是常见的一个缺失文件。

2019-04-30

[原版高清图文]Python深度学习+2018中文版pdf+英文版pdf+源代码

目前市面上最好的关于如果使用python来做深度学习的书。作者是Keras之父、谷歌大脑人工智能和深度学习研究员François Chollet。资源包括原版中英文,还有附带的源代码。这样你可以一边看书,一边实践,快速掌握用python来做各种深度学习的技巧。

2019-01-14

CVE-2015-3636资料整理

最近学习CVE-2015-3636资料整理 最近学习这个漏洞遇到了各种问题,最后在github上看到一份大牛的poc后,稍作修改后的nexus4调通成功获取到了root权限。稍有遗憾没实现跳过PXN的保护

2016-03-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除