自定义博客皮肤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,物联网,区块链,安卓以及相关安全技术

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

转载 https://www.intelnervana.com/security-nervana-part-2-securing-data/

In our previous Security post, we discussed the Root of Trust, and how it is used to create a secure, trusted environment in which to execute deep learning applications. In this post, we explore the

2017-08-29 13:36:34 933

转载 Securing the Deep Learning Stack

This is the first post of Nervana’s “Security Meets Deep Learning” series. Security is one of the biggest concerns for any enterprise, but it’s especially critical for companies deploying deep learnin

2017-08-29 13:34:33 629

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

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

2017-08-27 15:33:19 567

转载 如何调试Android Native Framework

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

2017-08-27 15:30:03 633

转载 理解和使用systrace

理解和使用systrace。一、介绍systracesystrace是Android4.1版本之后推出的,对系统Performance分析的工具。systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等。在Android平台中,它主要由3部分组成:内核部分:Systrace利用了Linux Kernel中的ftra

2017-08-27 15:27:38 17490

转载 Binder实用指南(二) - 实战篇

本章的内容主要说明如何在JavaFramework层和Native层自定义Client-Server组件,并且使用Binder进行通信。一、Native Binder源码目录结构:alps/frameworks/native/cmds/NativeBinderDemo/123456|-NativeBinderDemo|---ClientD

2017-08-27 15:24:08 552

转载 Binder实用指南(一) - 理解篇

这是关于Android Binder机制的一篇文章,Binder是Android里面非常重要的组成,也是最难理解的一块知识点,学习Binder最好的方法是深入源码阅读,因为Binder相关的知识错综复杂,一般初学者也很容易迷失在源码的汪洋里,本文旨在梳理Binder的架构和流程,并且试着以实用的角度来看待Binder。一、为什么需要Binder机制?Android系统中,每个应用程

2017-08-27 15:22:49 705

转载 一个关于binder的debug技巧

在android的C/S IPC通信框架中,常会遇到binder通信异常的问题(其实不是太经常会遇到,主要在煲机和压测等极限测试的情况下才会出现),binder的driver基本不用去怀疑其出bug的可能性,基本为0,如果binder通信出现问题,那么十有八九都是app或者service本身写的有问题造成的。这里介绍一个通过kernel的sys文件系统去debug binder的方法,我遇

2017-08-26 13:57:50 1912

转载 Android O限制系统全屏进一步遏制手机勒索

一、引言近期谷歌发布了最新手机操作系统Android O的开发者预览版,一如往常,Android O又带来了多项新功能与优化升级,其中一项有关系统窗口管理的优化给Android手机勒索软件带来了严重冲击。二、简述Android系统与勒索软件对抗史手机勒索软件是一种特殊的恶意软件,其通常将自身伪装为看似无害的软件或是利用社会工程学诱导受害者下载安装,随后通过恶意利用操作系统正

2017-08-26 13:24:38 836

转载 Core Dump流程分析

闲话最近分析问题时,发现我的环境中,经常有用户态进程异常退出,但是却没有core文件生成,简单看了一下相关的内核流程,mark一下。Core Dump基本原理当应用程序在用户态发生异常时,比如常见的段错误,通常会生成core文件,通过gdb分析core文件,基本就能定位问题。core文件实际是当前进程地址空间的一个镜像文件,其中包含了该进程在内存中的所有信息。

2017-08-26 13:17:42 2350

转载 mmap原理及流程(kernel 4.1版本)

背景最近在分析问题时,遇到了mmap fb设备失败问题,顺便看了下4.1版本内核中的mmap相关流程,以前看过老版本的,有些忘记了,这里权当记录,供后续参考。mmap是什么?相信做过Linux开发的兄弟都或多或少用过,或者听说过mmap,但可能并不完全了解mmap的作用。mmap字面上是内存映射的意思,听起来比较抽象,其用法有很多,但总结起来,主要是如下两个用途:将文件

2017-08-26 13:14:47 2963 2

转载 闲聊Linux内存管理(1)

今天还有时间,之前一直想抽时间来写写Linux内核原理相关的东西,关注点不在代码,而在于内在的原理和机制,让大家对Linux内核有个总体的感性认识,个人认为这很有必要,把看似复杂、深不可测的内核实现,用大家都能理解的方式,用讲故事的方式,讲给大家听,如果有人听后,有原来不过如此的感觉,那我的目的就达到了。# 内存管理从哪里开始呢?还是从最基础的内存管理开始吧。内存管理是Li

2017-08-26 13:12:10 437

转载 Mips TLB miss实现in Linux

TLB miss是Mips中内存管理的核心流程。上一篇写了关于Mips中,TLB miss的相关原理,本文关注在Linux kernel中的代码实现。TLB Refill初始化内核启动过程中,会对TLB Refill异常进行初始化,设置相应的处理接口。主要流程如下(以R3k为例):start_secondary per_cpu_trap_init tlb_ini

2017-08-26 13:10:24 1071

转载 Mips TLB miss异常

最近分析龙芯KVM的实现,顺便又粗看了遍MIPS的手册,跟KVM相关的主要模块包括:CPU虚拟化内存虚拟化IO虚拟化目前龙芯上CPU虚拟化跟标准内核差异不大,需要软硬件配合支持,目前龙芯整体能支持。 内核虚拟化是龙芯KVM方案的关键,直接决定了性能,这也是本文的源头。 IO虚拟化,目前龙芯由于没有自己的桥片,很难做什么,主要基于KVM中现有的virtio(半虚拟化),这里也不关注。

2017-08-26 13:09:19 3631

转载 内核中的page fault & copy_from_user

内核态的page fault?前段时间有同事问了个问题:内核中是否可能发生page fault?一时没能给出准确答案,当即有种感觉:难道是对内核内存管理的理解还不够,之前在这方面还是比较自信的~问题看似很简单,从之前的理解来看,以经典的32位X86为例,内核态低端地址都是线性映射的,页表都是事先(内核初始化时)创建好的,对于这段地址,应该不会发生page fault;但对于

2017-08-26 13:08:03 1561

转载 Mips KVM Trap&Emulate implemented in Linux

基本原理Trap&Emulate,即陷入&模拟的方式,是纯软件实现的全虚拟化方案,基本不借助硬件虚拟化功能。本文主要关注内存虚拟化实现中的核心,TLB miss相关实现。基本原理是:所有的TLB miss都将导致Guest退出到VMM处理,然后在VMM中进行相应模拟。具体实现原理描述如下:当前内核版本(4.9)的实现方式定义了2中TLB:Guest TLB。由Gue

2017-08-26 13:06:45 841

转载 Tramp data In Kernel

表象内核中经常见到某些函数有很多的参数,而且这些参数会一级一级往下面传递,部分参数可能只有最深一级函数才会用到,但却被传递了很多级,其中不乏一些bool型的参数,比如如下的代码流程,6个参数传递了很多级。kvm_mips_map_page() -> gfn_to_pfn_prot() -> __gfn_to_pfn_memslot() ->hva_to_pfn() -> hva_t

2017-08-26 13:04:16 501

转载 彻底弄懂dalvik字节码【三】

【一】、【二】中从代码的角度分析了dalvik字节码解释执行的过程,这篇文章以一个例子来实际分析一下。我们以这篇文章中提到的crackme为例,下载链接参见那篇文章。我们只分析dalvik字节码,因此忽略so。0x01:使用Jeb打开crackme.apk,找到MainActivity的onCreate方法,其smali内容是:.method protected onCreate(

2017-08-24 14:41:11 852

转载 彻底弄懂dalvik字节码【二】

【一】中讲到了最重要的dvmInterpret,继续跟:void dvmInterpret(Thread* self, const Method* method, JValue* pResult){ InterpSaveState interpSaveState; ExecutionSubModes savedSubModes;#if defined(WITH_JIT)

2017-08-24 14:40:23 558

转载 彻底弄懂dalvik字节码【一】

之前曾经简单跟踪过代码,知道dalvik的字节码是可以支持解释执行的,所谓的解释执行,其实就是c/c++编写的用于解释并执行dalvik字节码的程序,说白了就是dalvik字节码到cpu字节码的转换。之前的理解算是囫囵吞枣,最近有时间,好好跟了一遍dalvik的代码,算是弄明白了细节。我们从dvmCallMethod开始来跟一遍dalvik执行方法的过程:void dvmCallMet

2017-08-24 14:39:01 892 2

转载 反调试检测之一TracerPid

当我们使用Ptrace方式跟踪一个进程时,目标进程会记录自己被谁跟踪,可以查看/proc/pid/status看到这个信息,下图展示的是使用ida进行调试的情况。Paste_Image.pngPaste_Image.png而没有被调试的时候TracerPid为0:Paste_Image.png因此一种常见的检测调试的办法就是去读取这个值,发现不是0则判定

2017-08-24 14:35:04 1649

转载 JNI实现源码分析【四 函数调用】

有了前面的铺垫,终于可以说说虚拟机是如何调用JNI方法的了。JNI方法,对应Java中的native方法,所以我们跟踪对Native方法的处理即可。在彻底弄懂dalvik字节码【一】中,我们跟踪过非Native方法的调用,现在我们来跟踪Native方法的调用,从dvmCallMethodV入手吧:0x01:dvmCallMethodVvoid dvmCallMethodV(Thread

2017-08-24 14:31:53 644

转载 JNI实现源码分析【三 间接引用表】

在JNI实现源码分析【二 数据结构】的参数传递一节中,我们提到,JNI为了安全性的考虑使用了形如jobject的结构来传递参数。而jobject被表述为指针,但又不是直接指向Object的指针那么jobject是如何和真正的Object建立联系呢?在JNI的API中,有一组API Global and Local References,这里的References又是什么?为啥会有这一组AP

2017-08-24 14:30:14 792 1

转载 JNI实现源码分析【二 数据结构】

正文在展开深入讨论之前,先说一下Dalvik中和JNI相关的数据结构,是很有必要的。在Object.h中定义了很多的数据结构:0x01: 虚拟机中的对象我们知道,Java是面向对象的,Java是运行在虚拟机里面的,即先通过编译成字节码(dalvik对应dex),虚拟机解析字节码,构造出逻辑上相同的对象。 及虚拟机中的对象。 a. struct Object  根对象,就像我

2017-08-24 14:27:56 502

转载 Android逆向之旅---Native层的Hook神器Cydia Substrate使用详解

一、前言在之前已经介绍过了Android中一款hook神器Xposed,那个框架使用非常简单,方法也就那几个,其实最主要的是我们如何找到一个想要hook的应用的那个突破点。需要逆向分析app即可。不了解Xposed框架的同学可以查看:Android中hook神器Xposed使用详解;关于hook使用以及原理不多解释了。今天我们再来看另外一个hook神器Cydia Substrate,关于这

2017-08-24 14:24:37 989

转载 Android版本的"Wannacry"文件加密病毒样本分析(附带锁机)

一、前言之前一个Wannacry病毒样本在PC端肆意了很久,就是RSA加密文件,勒索钱财。不给钱就删除。但是现在移动设备如此之多,就有一些不法分子想把这个病毒扩散到移动设备了,这几天一个哥们给了一个病毒样本,就抽空看了一下,下面就来分析一下这个病毒样本程序。二、病毒样本分析首先国际惯例,这类的病毒都是用一些特殊的app名称吸引诱导用户下载,这里是一个叫做:魅影WIFI,下载安装之后界面

2017-08-24 14:22:25 1111

转载 Android动态方式破解apk前奏篇(Eclipse动态调试smail源码)

一、前言今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了:Android中使用静态方式破解Apk主要采用的是静态方式,步骤也很简单,首先使用apktool来反编译apk,得到smail源码,然后分析smail代码,采用代码注入技术来跟踪代码,然后找到关键方法进行修改,进而破解,同时还可以使用一些开源的hook框架,比如:Xposed和

2017-08-24 14:19:58 737

转载 生成对抗网络简介(包含TensorFlow代码示例)【翻译】

判别模型 vs. 生成模型示例:近似一维高斯分布提高样本多样性最后的思考关于GAN的一些讨论最近,大家对生成模型的兴趣又开始出现(OpenAI关于生成模型的案例)。生成模型可以学习如何生成数据,这些数据和我们给定的数据很类似(真实数据)。我们用一个例子来描述这背后的原理,比如,我们希望构建一个模型,可以生成高质量的新闻,那么它必须先学习很多的新闻文章。或者说,模型的内部应当

2017-08-23 14:48:07 2610

转载 Your First Text Mining Project with Python in 3 steps

Every day, we generate huge amounts of text online, creating vast quantities of data about what is happening in the world and what people think. All of this text data is an invaluable resource that ca

2017-08-23 14:46:29 1159

转载 TFboys:使用Tensorflow搭建深层网络分类器

前言根据官方文档整理而来的,主要是对Iris数据集进行分类。使用tf.contrib.learn.tf.contrib.learn快速搭建一个深层网络分类器,步骤导入csv数据搭建网络分类器训练网络计算测试集正确率对新样本进行分类数据Iris数据集包含150行数据,有三种不同的Iris品种分类。每一行数据给出了四个特征信息和一个分类信息。现在已经将数据分

2017-08-23 14:42:21 531

转载 Generative Adversarial Networks 生成对抗网络的简单理解

1. 引言在对抗网络中,生成模型与判别相竞争,判别模型通过学习确定样本是来自生成模型分布还是原始数据分布。生成模型可以被认为是类似于一组伪造者,试图产生假币并在没有检测的情况下使用它,而判别模型类似于警察,试图检测假币。 在这个游戏中的竞争驱动两个团队改进他们的方法,直到假冒与真正的物品难以分别。生成模型和判别模型对抗的结果是,两者都提升了自己的能力。生成模型提高了模拟原始数据

2017-08-23 14:39:18 506

转载 AI芯片怎么降功耗?从ISSCC2017说起

本文首发于谭洪贺个人知乎,从ISSCC2017的session 14 Deep Learning Processor的几篇文章出发,分析同行们都用了哪些方法来降低 DL 加速器和处理器的功耗,提高能效。本文适用读者:对 Deep Learning 算法有一定了解的 IC 工程师,对 IC 设计和计算机架构有一定了解的算法工程师。 ▼先来一张slide镇镇场,tutori

2017-08-23 14:26:50 1025

转载 干货 | 算法工程师入门第三期——黄李超讲物体检测

本次分享主要针对一些对深度学习和物体检测感兴趣的同学。内容主要包括:第一,什么是物体检测,如何去评价一个物体里系统的好坏。第二,物体检测整个的框架是怎么样的?它一般包含了图像的分类和物体检测的定位。第三,介绍物体检测的历史发展,从传统的人工设计的一些图像特征加上分类器到现在的深度学习。▼What’s Computer Vision介绍物体

2017-08-23 14:24:08 752 1

转载 干货 | 算法工程师入门第二期——穆黎森讲增强学习(二)

Beyond Deep Q LearningDQN将一个强大的工具deep neural network 引入RL,解决了这中间遇到的很多新问题,收到了很好的效果。自从这篇工作以后,一方面,大家希望更强的工具能解决更难的问题,比如上面DQN还玩的不是很好的游戏,或者游戏之外的问题;另一方面,大家也希望已经能够解决的问题能做得更好,更快。近两年,学术界和工业界做了很多工作,不断将RL的效果和

2017-08-23 14:21:11 2068

转载 干货 | 算法工程师入门第二期——穆黎森讲增强学习(一)

今天我很荣幸有机会在这里,跟大家分享增强学习(Reinforcement Learning,RL)这个话题。这次分享,我希望能达到三方面的目的:第一,希望没有相关背景的同学能够对RL有一定的了解,所以我会介绍一些基础的概念。第二,希望对有机器学习算法背景的同学,如果对增强学习感兴趣的话,能了解到RL近期的一些进展。第三,对我而言也是对于相关知识的整理。这次分享主要包

2017-08-23 14:19:22 641

转载 干货 | 算法工程师入门第一期——罗恒讲深度学习

整个神经网络,从历史上就可以把很多东西搞清楚,比如它是怎么变过来的。我认为神经网络其实是变得越来越简单,越来越好用的。现在神经网络常用的东西已经很固定了,你不用再加任何东西就能用。但有些时候你觉得这个东西应该work,但它不work,这种情况该怎么办。所以尽管现在很多东西已经纯标准化,但了解这些对于你找问题找错误,还是很重要。所以这次主要讲两个东西,优化和正则化。绝大多数情况,正则化不是问题,我们

2017-08-23 14:05:53 423

转载 一文看懂谷歌 NYC 算法与优化业务全景:三大项目组12个子领域详解(附重点论文下载)

雷锋网 AI 科技评论消息,众所周知,谷歌的研究团队遍布世界各地,而纽约自然也是非常重要的一个地点,尤其是多个谷歌算法研究小组的孕育地。目前,谷歌算法优化团队为谷歌产品的顺利诞生提供了非常多的算法支持,解决了诸多挑战,包括基础优化、隐私保护、提升好友推荐度等多重挑战。为了让大家更能第一时间了解到谷歌算法及优化的最新进展,谷歌研究院博客于今天更新了消息,谷歌 NYC 算法优化团队公布了主页。

2017-08-23 14:01:44 692

转载 The building blocks of Deep Learning

A feed-forward network is built up of nodes that make a directed acyclic graph (DAG). This post will focus on how a single node works and what we need to implement if we want to define one. It is aime

2017-08-22 15:09:20 956

转载 Hinton's Dark Knowledge

On Thursday, October 2, 2014 Geoffrey Hinton gave a talk (slides, video) on what he calls “dark knowledge” which he claims is most of what deep learning methods actually learn. The talk presented an

2017-08-22 15:08:01 1122

转载 语音识别,语义理解一站式解决(android平台&olami sdk)

语音记账demo:http://blog.csdn.net/ls0609/article/details/72765789olami sdk实现了把录音或者文字转化为用户可以理解的json字符串从而实现语义理解,用户可以定义自己的语义,是不是很强大?本文讲述怎么自定义语义,以及如何解析自定义语义。本文使用olami sdk做了一个在线听书的demo,用户只需类似“我想听***”就能实现听书的

2017-08-12 14:25:58 2073

客户端启动出现错误无法运行的解决办法(缺失的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关注的人

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