<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jiang_lostcode的专栏]]></title><description><![CDATA[专注移动互联网，Linux kernel]]></description><link>https://blog.youkuaiyun.com/jiang_lostcode</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jiang_lostcode]]></copyright><item><title><![CDATA[ARM INLINE HOOK （一）]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/103749645</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/103749645</guid><author>jiang_lostcode</author><pubDate>Sun, 29 Dec 2019 23:18:14 +0800</pubDate><description><![CDATA[运行在ARM指令集的CPU上（比如Android手机），通过HOOK机制，对一些关键的方法进行监控，从而达到一些特殊目的，比如性能监控、安全等。

常用的HOOK方法有：GOT表Hook和Inline Hook。而inline hook具有更广泛的适用性，几乎可以Hook任何函数（当然也有特殊情况无法进行inline hook，后面会提到）。相较于GOT表hook，inline hook由于需要能...]]></description><category></category></item><item><title><![CDATA[Dalvik指令分析（三） dex文件的结构]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/43924331</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/43924331</guid><author>jiang_lostcode</author><pubDate>Tue, 24 Feb 2015 14:18:43 +0800</pubDate><description><![CDATA[dex文件结构




header

header_item

the header



上述dex文件header部分的内容如下：
64]]></description><category></category></item><item><title><![CDATA[Dalvik指令分析（二） 从java文件到dex]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/43918851</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/43918851</guid><author>jiang_lostcode</author><pubDate>Mon, 23 Feb 2015 23:05:33 +0800</pubDate><description><![CDATA[写这个系列文章是想了很久但是一直没有时间付诸行动，趁着这两天假期还没有结束，
赶紧动笔，怕上班了就没有时间再静下心来写这些文章，所以有点赶，表现在系列文章的
内容安排上就不是很合理，有些内容还需要丰富，但是聊胜于无吧，先写下再修改，如果
有一些反馈也可以根据反馈来修改。好了，开始第二篇文章。
       这篇文章可以成为dx的HelloWorld，在这篇文章里我会介绍如果将一个java文]]></description><category></category></item><item><title><![CDATA[Dalvik指令分析（一）  hex to instruction]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/43917241</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/43917241</guid><author>jiang_lostcode</author><pubDate>Mon, 23 Feb 2015 19:18:55 +0800</pubDate><description><![CDATA[Dalvik指令介绍请参考官方文档：General design  如果读者对X86或者ARM指令集有一定的
了解，学习Dalvik指令还是很容易的。如果您掌握了Dalvik指令集，就能将dex文件转换为smali
代码，这也是很多android安全研发人员的基本功。
下面从实例讲解Dalvik指令集：
实例1：将如下十六进制指令翻译为davik字节码，从高字节到低字节为：00 02 2C]]></description><category></category></item><item><title><![CDATA[运用smali自动注入技术分析android应用程序行为]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/40630079</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/40630079</guid><author>jiang_lostcode</author><pubDate>Fri, 31 Oct 2014 15:50:37 +0800</pubDate><description><![CDATA[通过smali注入技术，分析apk的行为，可做性能和安全方面数据分析。]]></description><category></category></item><item><title><![CDATA[梆梆加固破解]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/39500197</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/39500197</guid><author>jiang_lostcode</author><pubDate>Sun, 28 Sep 2014 17:32:46 +0800</pubDate><description><![CDATA[加固后的apk脱壳]]></description><category></category></item><item><title><![CDATA[Java字节码分析（一）]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/25324275</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/25324275</guid><author>jiang_lostcode</author><pubDate>Thu, 08 May 2014 17:34:38 +0800</pubDate><description><![CDATA[今天练习的内容，见如下类定义：
import java.lang.reflect.Field;

public class ClassDemo {

   public static void main(String[] args) {

     try {            
        ClassDemo c = new ClassDemo();
        Class cls]]></description><category></category></item><item><title><![CDATA[XMPP开发记录]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/9064619</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/9064619</guid><author>jiang_lostcode</author><pubDate>Mon, 05 May 2014 13:42:19 +0800</pubDate><description><![CDATA[mac下卸载openfire
   sudo rm -rf /Library/PreferencePanes/Openfire.prefPane
   
   sudo rm -rf /usr/local/openfire
   sudo rm -rf /Library/LaunchDaemons/org.jivesoftware.openfire.plist





sto]]></description><category></category></item><item><title><![CDATA[google protocol buffer的使用]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8692367</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8692367</guid><author>jiang_lostcode</author><pubDate>Mon, 20 May 2013 18:03:17 +0800</pubDate><description><![CDATA[下载protocol buffer代码
1、打开根目录下的README.txt，编译、安装
2、进入java目录，mvn install生成jar包
3、定义.proto文件，idl文件，如下所示：
package tutorial;

option java_package = "com.android.contacts.model";
option java_outer_classna]]></description><category></category></item><item><title><![CDATA[通过命令行创建Android工程，并编译发布]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8951655</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8951655</guid><author>jiang_lostcode</author><pubDate>Mon, 20 May 2013 18:00:17 +0800</pubDate><description><![CDATA[1、利用命令行创建一个新的工程：

       android create project --target 1 --name PROJECTNAME --path /PROJECT_PATH --package com.project --activity ActivityName




 2、将对应的信息拷贝到刚才创建的工程中，如拷贝图片资源到/res/drawable-h]]></description><category></category></item><item><title><![CDATA[移植UDT到android]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8457732</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8457732</guid><author>jiang_lostcode</author><pubDate>Thu, 28 Feb 2013 16:04:42 +0800</pubDate><description><![CDATA[在开发过程中，需要使用UDT协议，由于server端使用的是c++版本的udt库，而Android版本在使用udt java版本和c++版本通信时，发现一些问题，google后发现目前的java version can not talk with c++ version，所以只能通过将UDT移植到android上，然后通过JNI的方式进行调用，下面就列出移植过程，供大家参考。
1、下载UDT4]]></description><category></category></item><item><title><![CDATA[定制自己的控件]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8618148</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8618148</guid><author>jiang_lostcode</author><pubDate>Thu, 28 Feb 2013 15:52:41 +0800</pubDate><description><![CDATA[在实际开发中，经常会碰到系统控件不满足咱们的需求，需要对系统控件做一些修定制修改。这篇文章就分析一下如何去定制自己的控件。


在定制控件之前，我们需要弄清楚控件显示的过程，控件显示的过程大概可以分为以下三步：


1. 调用ViewRootImpl的requestLayout方法；//requestLayout Up to ViewRoot

2. 调用onMeasure计算所有]]></description><category></category></item><item><title><![CDATA[Android编译系统]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8141136</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8141136</guid><author>jiang_lostcode</author><pubDate>Sun, 24 Feb 2013 10:33:35 +0800</pubDate><description><![CDATA[这篇文章对Android的编译系统做个大概的分析，希望对大家有帮助，也希望大家一起讨论。
编译系统的框架和结构网上有很多文章描述，本文后面也附了一些链接可供大家参考，我这里就不从这个角度来阐述了，咱们从一些主要的编译文件开始讨论。
一、envsetup.sh文件

      envsetup.sh其主要作用如下：

加载了编译时使用到的函数命令，如：help，lunch，m，mm，m]]></description><category></category></item><item><title><![CDATA[Android联系人模块分析（三）]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8090465</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8090465</guid><author>jiang_lostcode</author><pubDate>Tue, 23 Oct 2012 14:42:01 +0800</pubDate><description><![CDATA[前两篇文章主要讲解了ContactsProvider的结构，这篇文章想详细分析一下ContactsProvider的底层数据表结构（Android4.1.1），和大家一起深入的理解其内部实现。
       ContactsProvider的代码路径位于packages/providers/ContactsProvider/src下，我们可以结合实际的场景来分析ContactsProvider的]]></description><category></category></item><item><title><![CDATA[根据gfp_mask来获得对应的zone]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8101679</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8101679</guid><author>jiang_lostcode</author><pubDate>Tue, 23 Oct 2012 10:49:57 +0800</pubDate><description><![CDATA[本篇文章只是分析一下gfp_mask到zone的对应关系在内核中的实现：
内核代码如下：（3.0） 
#define GFP_ZONE_TABLE	(ZONE_NORMAL << 0 * ZONES_SHIFT)				      \
	| (OPT_ZONE_DMA << ___GFP_DMA * ZONES_SHIFT)			      \
	| (OPT_ZONE_HIGHMEM <<]]></description><category></category></item><item><title><![CDATA[Android联系人模块分析（二）]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8082407</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8082407</guid><author>jiang_lostcode</author><pubDate>Fri, 19 Oct 2012 14:12:11 +0800</pubDate><description><![CDATA[上篇文章讲解了ContentsProvider的基本结构，本篇文章结合实际的联系人模块操作的例子来讲解联系人模块的使用。
       下图为联系人模块中的表结构，各个表项中字段信息，可以参考上篇文章对ContactscProvder的分析中所描述的，在ContactsContract.java文件中定义了各个数据表的结构、Uri等信息。ContactsProvider数据库的三个主要的数据表结]]></description><category></category></item><item><title><![CDATA[Android联系人模块分析（一）]]></title><link>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8032438</link><guid>https://blog.youkuaiyun.com/jiang_lostcode/article/details/8032438</guid><author>jiang_lostcode</author><pubDate>Mon, 08 Oct 2012 18:22:00 +0800</pubDate><description><![CDATA[联系人模块是Android系统中的一个重要的功能模块，目前Android市场上有大量的基于通讯录的应用，本人计划写出系列文章详细介绍联系人模块的结构和使用。作为开头，本篇文章将对ContactsProvider做个简要的介绍。
     Android系统将联系人的信息存储在sqlite数据库中，并通过ContactsProvider提供查询、更新、删除等操作。所以如果需要掌握联系人相关信息的操]]></description><category></category></item></channel></rss>