<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[daide2012的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/daide2012</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; daide2012]]></copyright><item><title><![CDATA[深入理解mmap]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/77816052</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/77816052</guid><author>daide2012</author><pubDate>Sun, 03 Sep 2017 09:58:42 +0800</pubDate><description><![CDATA[mmap基础概念mmap是一种内存映射文件的方法，即将一个文件或者其它对象映射到进程的地址空间，实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后，进程就可以采用指针的方式读写操作这一段内存，而系统会自动回写脏页面到对应的文件磁盘上，即完成了对文件的操作而不必再调用read,write等系统调用函数。相反，内核空间对这段区域的修改也直接反映用户空间，从而可以实现不同]]></description><category></category></item><item><title><![CDATA[C++智能指针]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/77803386</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/77803386</guid><author>daide2012</author><pubDate>Sat, 02 Sep 2017 20:05:06 +0800</pubDate><description><![CDATA[智能指针：实际指行为类似于指针的类对象 ，它的一种通用实现方法是采用引用计数的方法。1.智能指针将一个计数器与类指向的对象相关联，引用计数跟踪共有多少个类对象共享同一指针。2.每次创建类的新对象时，初始化指针并将引用计数置为1；3.当对象作为另一对象的副本而创建时，拷贝构造函数拷贝指针并增加与之相应的引用计数；4.对一个对象进行赋值时，赋值操作符减少左操作数所指对象的引用计数（如果引用计数为减至0，]]></description><category></category></item><item><title><![CDATA[Web安全常识]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/76560727</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/76560727</guid><author>daide2012</author><pubDate>Tue, 01 Aug 2017 22:39:26 +0800</pubDate><description><![CDATA[Domain1.    同源策略同domain（或ip）,同端口，同协议视为同一个域，一个域内的脚本仅仅具有本域内的权限，可以理解为本域脚本只能读写本域内的资源，而无法访问其它域的资源。这种安全限制称为同源策略。 
这里要记住不遵循同源策略的标签：2.    同源策略，那些东西是同源可以获取到的Document：每个载入浏览器的 HTML 文档都会成为 Document 对象。Document 对象]]></description><category></category></item><item><title><![CDATA[IDA pro脱壳实战过反调试]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/76284324</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/76284324</guid><author>daide2012</author><pubDate>Fri, 28 Jul 2017 22:55:33 +0800</pubDate><description><![CDATA[IDA pro脱壳实战过反调试标签（空格分隔）： Apk逆向1. 前言之前总结了IDA pro脱壳的基本步骤，包括调试步骤和在libdvm.so的dvmDexFileOpenPartial函数出下断点，从内存中dump出dex文件。 
这次以360一代加壳为例，试着在mmap出下断点和过一些基本的反调试技术。2. 脱壳环境搭建这里的环境搭建和上一篇博客一样http://blog.youkuaiyun.com/d]]></description><category></category></item><item><title><![CDATA[Android Studio调试smali代码]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/75332798</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/75332798</guid><author>daide2012</author><pubDate>Wed, 19 Jul 2017 08:41:52 +0800</pubDate><description><![CDATA[Android Studio调试smali代码标签（空格分隔）： APK逆向分析1. 前言经过一段时间的学习，现在总结下针对APK逆向的一些基本调试技术，以阿里移动安全比赛题目为例2. 使用Android Studio调试smali代码步骤一：下载安全Android Stuio,下载地址http://www.android-studio.org/步骤二：下载插件smalidea 
地址: https]]></description><category></category></item><item><title><![CDATA[Android so逆向基本知识总结]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/74923333</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/74923333</guid><author>daide2012</author><pubDate>Mon, 10 Jul 2017 15:06:07 +0800</pubDate><description><![CDATA[标签（空格分隔）： APK逆向1. 前言对于Android平台native的逆向需要掌握的基本知识或要看的书籍总结如下：1.1 语言方面
《C primer plus》
《Linux C编程一站式学习》
《C++Primer.Plus》
1.2 体系结构方面
《深入理解计算机系统》
《程序员的自我修养–链接、装载与库》
《深入理解Linux内核》
2. Android方面
Android NDK开发]]></description><category></category></item><item><title><![CDATA[基于函数加密的.so加固学习笔记]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/74502535</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/74502535</guid><author>daide2012</author><pubDate>Wed, 05 Jul 2017 20:56:30 +0800</pubDate><description><![CDATA[标签（空格分隔）： Apk逆向与保护1. 前言之前学习了简单对ELF文件中的Section进行加密实现简单暴力的加固，这个section是自定义的，一般很容易被识别出来，更好的做法是对函数进行加密。既然是对函数加密，我们就需要找到函数的地址和大小。既然是找到函数的地址，必然是基于ELF文件的转载视图来进行操作的。2. 基本思路2.1 如何找到要加密的函数基于section的加密，我们很容易根据elf]]></description><category></category></item><item><title><![CDATA[基于section加密的.so加固学习笔记]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/74353794</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/74353794</guid><author>daide2012</author><pubDate>Tue, 04 Jul 2017 19:22:32 +0800</pubDate><description><![CDATA[标签（空格分隔）： APK逆向与保护1. 前言APK的加固技术研究已有很多年了，有很多成熟的厂商提供相关的服务，加固的目的一方面是为了保护应用不被恶意反编译和篡改，得到应用的源代码。另一方面防止应用中为发现的漏洞被攻击者发现利用。早期的加固技术主要是基于Dex文件实现的，通过将源程序的dex文件加密，在运行的过程中由解壳程序动态加载、解密和运行。但是由于基于dex的加固技术，很容易被破解，在内存中d]]></description><category></category></item><item><title><![CDATA[Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/73658514</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/73658514</guid><author>daide2012</author><pubDate>Sat, 24 Jun 2017 10:57:03 +0800</pubDate><description><![CDATA[Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解]]></description><category></category></item><item><title><![CDATA[App虚拟化技术初探]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/73658410</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/73658410</guid><author>daide2012</author><pubDate>Sat, 24 Jun 2017 10:40:54 +0800</pubDate><description><![CDATA[Plugin Technology BackgroundApp插件开发技术或App虚拟化技术以及App热修复技术，最近几年非常火热和流行，图中列举了两种主要的需求，第一种需求是很多时候我们想在Android手机上同时登陆多个社交应用，比如QQ或者微信，在Android原生系统中肯定是无法支持的，只有登出一个账号后然后在换另外一个，因此衍生APP虚拟化技术；另外一种需求是一个大的APK文件我想分批次发]]></description><category></category></item><item><title><![CDATA[Redis之AOF文件持久化]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/73499749</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/73499749</guid><author>daide2012</author><pubDate>Tue, 20 Jun 2017 16:17:34 +0800</pubDate><description><![CDATA[Redis之AOF文件持久化一、AOF持久化介绍Redis除了使用RDB文件持久化数据库外，还提供了AOF持久化功能，与RDB持久化的区别如下：(1) RDB持久化通过保存数据库中键值对来记录数据库的状态，AOF持久化是通过记录服务器所执行的命令来保存数据库的状态的(2) AOF文件的更新频率要高于RDB文件，所以如果服务器开启了AOF文件持久化功能，那么服务器会优先使用AOF文件进行还原数据库的状]]></description><category></category></item><item><title><![CDATA[Redis之RDB持久化]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/73185257</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/73185257</guid><author>daide2012</author><pubDate>Tue, 13 Jun 2017 15:39:40 +0800</pubDate><description><![CDATA[Redis引入了RDB持久化功能，Redis中有两个命令可以生成RDB文件，一个是SAVE，另外一个是BGSAVE；SAVE命令：SAVE命令会阻塞Redis服务器进程，指导RDB文件创建完毕，在这个期间服务器进程不能处理任何来自客户端的命令请求。]]></description><category></category></item><item><title><![CDATA[ELF文件详解—初步认识]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/73065204</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/73065204</guid><author>daide2012</author><pubDate>Sun, 11 Jun 2017 20:50:47 +0800</pubDate><description><![CDATA[讲解ELF文件格式，目标文件再不同的系统或平台上具有不同的命名格式，在Unix和X86-64 Linux上称为ELF(Executable and Linkable Format, ELF)。
ELF文件格式提供了两种不同的视角，在汇编器和链接器看来，ELF文件是由Section Header Table描述的一系列Section的集合，而执行一个ELF文件时，在加载器（Loader）看来它是由Program Header Table描述的一系列Segment的集合]]></description><category></category></item><item><title><![CDATA[Redis底层数据结构之跳跃表]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/71750814</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/71750814</guid><author>daide2012</author><pubDate>Fri, 12 May 2017 18:00:58 +0800</pubDate><description><![CDATA[Redis底层数据结构之跳跃表1.引言跳跃表由 William Pugh 在1990年发明，是一种有序的数据结构，类似于平衡树、红黑树这样的数据结构，能够维护一个有序的列表，方便查找。跳跃表支持平均为O(logN)的时间复杂度查找，这与平衡树大体相当，那么为什么Redis的作者选用跳跃表来实现有序集合呢？我们从以下几点说明
插入和删除：平衡树的调整操作都需要从引起不平衡的节点开始，向上调整，通过一系]]></description><category></category></item><item><title><![CDATA[Android的进程间通信机制之Binder初探]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/70245169</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/70245169</guid><author>daide2012</author><pubDate>Wed, 19 Apr 2017 20:52:32 +0800</pubDate><description><![CDATA[在了解Android的Binder通信机制之前，我们来看下Linux现有的进程间通信的方式，然后简要分析Android为什么要另起炉灶，设计一套新的通信机制Binder，以及Binder通信机制在Android这种嵌入式平台具有何种优越性等
首先看Linux下的进程间通信方式，有管道、消息队列、共享内存、套接字、信号量、信号，起初我们一一回顾下这几种通信方式的实现原理和适用场景
1.管道
比]]></description><category></category></item><item><title><![CDATA[Redis底层数据结构之字典]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/69929457</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/69929457</guid><author>daide2012</author><pubDate>Sun, 09 Apr 2017 20:48:09 +0800</pubDate><description><![CDATA[Redis底层数据结构之字典说起字典我们应该都比较熟悉，在C++ STL或者Java集合框架中的HashMap就是一种典型的字典结构，用于保存一个键-值对，将一个键与一个值进行关联起来，其中键是不能重复的，也就是说是唯一的。字典作为一种重要的数据结构在Redis数据库中被广泛应用，底层的很多操作基本都是基于字典的。一、字典的基本数据结构一张图描述map的基本数据结构字典的数据结构定义在dict.h文]]></description><category></category></item><item><title><![CDATA[Analysis of Code Heterogeneity for High-Precision Classification of Repackaged Malware]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/69487619</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/69487619</guid><author>daide2012</author><pubDate>Thu, 06 Apr 2017 22:37:48 +0800</pubDate><description><![CDATA[Analysis of Code Heterogeneity for High-Precision Classification of Repackaged Malware一、引言这篇文章的作者分析了已有的恶意应用检测机制的局限性，提出大多数漏报的情况是由于大量的恶意应用是通过重打包得来的，很多基于机器学习的检测技术不能很好的检测出这类样本，提出了一种结合程序分割和机器学习来检测异质代码团的思想，实]]></description><category></category></item><item><title><![CDATA[Android组件安全]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/69264365</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/69264365</guid><author>daide2012</author><pubDate>Wed, 05 Apr 2017 17:05:31 +0800</pubDate><description><![CDATA[Android组件安全做过Android开发的攻城狮都知道Android四大组件，在开发过程中打交道最多的也是这四大组件，在开发Android应用的过程中我们最基本的要求是要对这四大组件有一个清晰的认识，包括组件的功能特性、生命周期、与系统的交互模型，以及组件之间如何配合使用等等。本文内容主要是关于组件的安全模型以及如何正确的使用组件来降低应用的安全风险的一个学习笔记。一、Android四大组件简介]]></description><category></category></item><item><title><![CDATA[Redis底层数据结构之链表]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/68948552</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/68948552</guid><author>daide2012</author><pubDate>Sat, 01 Apr 2017 22:25:57 +0800</pubDate><description><![CDATA[Redis底层数据结构之链表一、Redis中链表的实现我们都知道在列表的插入与删除的操作，如果数组的中间插入一个元素，那么这个元素后的所有元素的内存地址都要往后移动。删除的话同理，只有对数据的最后一个元素进行插入删除操作时，才比较快。链表并不需要更改节点的内存地址，链表的优势在于增和删，查找时间复杂度为O(n)，链表的扩展性比数组好。链表作为一种重要的数据结构广泛用于实现redis的各种功能，由于在]]></description><category></category></item><item><title><![CDATA[Redis底层数据结构之简单动态字符串]]></title><link>https://blog.youkuaiyun.com/daide2012/article/details/68946829</link><guid>https://blog.youkuaiyun.com/daide2012/article/details/68946829</guid><author>daide2012</author><pubDate>Sat, 01 Apr 2017 17:53:34 +0800</pubDate><description><![CDATA[Redis底层数据结构之简单动态字符串我们知道在C语言中常常使用空字符’\0’作为字符串的结尾标志，也就是使用N+1的字符数组来表示长度为N的字符串，Redis没有直接使用C语言中的字符串表示，而是构建了自己的一套字符串表示抽象，称为简单动态字符串SDS(simple dynamic string)，至于为什么Redis不采用C语言中的字符串表示方法，这也是我们接下来要探讨的问题，我们首先给出Red]]></description><category></category></item></channel></rss>