自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (16)
  • 收藏
  • 关注

原创 【分析】dalvik虚拟机解释执行字节码

参考源码版本:Android-4.4.4_r2提示:大部分分析直接注释在代码内。dvmInterpret函数中调用了dvmInterpretPortable函数对方法的字节码进行解释执行,dvmInterpret在dalvik/vm/interp/Interp.cpp文件中。dvmInterpretPortable函数在dalvik/vm/mterp/out/Int

2015-04-04 07:17:04 6720

原创 【分析】dalvik虚拟机启动过程(三)

源码版本:Android-4.4.4_r2在AndroidRuntime::start中调用AndroidRuntime::startVm函数启动了虚拟机,然后又调用了AndroidRuntime::startReg函数注册Android函数:/* * 向 VM 注册Android本地函数。 * Register android native functions with

2015-03-29 00:28:40 1412

原创 【分析】dalvik虚拟机启动过程(二)

源码版本:Android-4.4.4_r2提示:大部分分析直接注释在代码内。接着上一篇【分析】dalvik虚拟机启动过程(一)JNI_CreateJavaVM函数调用dvmCreateJNIEnv创建JNIEnv后,接着又调用了dvmStartup函数初始化VM:/* * VM 初始化。 * VM initialization. Pass in any

2015-03-29 00:24:43 1741

原创 【分析】dalvik虚拟机启动过程(一)

源码版本:Android-4.4.4_r2提示:大部分分析直接注释在代码内。主要函数的调用层次:|AndroidRuntime::start |AndroidRuntime::startVm |JNI_CreateJavaVM |dvmCreateJNIEnv |dvmStartup

2015-03-29 00:14:53 3541

原创 JNIEnvExt/JNIEnv创建过程分析

参考源码版本:Android-4.4.4_r2---------------------------------dvmCreateJNIEnv函数创建一个JNIEnvExt结构,函数返回时,将JNIEnvExt*强制转换为JNIEnv*:/* * 创建一个新的JNIEnvExt结构,并将它添加到VM列表中。 * 返回时,将JNIEnvExt*强制转换为JNIEnv*。 * C

2015-03-27 21:20:19 1894

原创 【分析】config-portable文件

路径:dalvik/vm/mterp/config-portable-----------------------------------------------------------gen-mterp.py文件可以根据config-portable文件,生成便携(portable)的dalvik解释器的源码,这种风格的解释器可以方便的移植,而根据这个配置文件生成的源码全都是”.cpp”

2015-03-27 00:26:21 1254

原创 【分析】生成dalvik解释器原文件的脚本:gen-mterp.py

源码参考:进入路径:dalvik/vm/mterp/gen-mterp.py----------------------------------------------------------------------------------------------------概述gen-mterp.py根据特定体系结构配置文件,生成dalvik解释器的C和汇编源码。po

2015-03-27 00:22:37 2716

原创 【分析】多dex加载机制

Android源码版本:5.0.2_r1下面是多dex加载的时序图: Android项目有两种方式支持多dex:1. 项目中的Application类继承MultiDexApplication。2. 在自己的Application类的attachBaseContext方法中调用MultiDex.install(this);。我从Mul

2015-03-27 00:06:45 11187 1

原创 构造多dex的apk

步骤1. 在IntelliJ IDEA中创建一个Android项目。2. 修改AndroidManifest.xml文件,在``标签中添加"android:name="android.support.multidex.MultiDexApplication"3. 修改app模块下的`build.gradle`文件,在`defaultConfig`中添加一行:`multiDexEnabl

2015-03-25 10:24:56 9084 1

原创 .\test.sct(5): error: L6236E: No section matches selector - no section to be FIRST/LAST.

.\test.sct(5): error: L6236E: No section matches selector - no section to be FIRST/LAST.

2014-10-19 10:08:53 3786

原创 dex2oat将dex转换为oat的执行路径概览

dex2oat将dex转换为oat的执行路径概览

2014-09-21 15:45:18 13602

原创 Art下DexClassLoader将dex转化为oat文件格式的过程

Art下DexClassLoader将dex转化为oat文件格式的过程

2014-09-21 12:37:28 8670

原创 Android Art模式下openDexFile的调用

在DexFile.java中openDexFile方法调用了native方法openDexFileNative

2014-09-19 18:21:31 4915

原创 ARM学习笔记_20140812

一、进栈出栈操作

2014-08-12 18:47:20 846

原创 ARM学习笔记&思考_20140810

一、CPSR的中断禁止位

2014-08-10 21:27:20 907

原创 VisualGDB编译android代码失败原因及解决方案

VisualGDB编译android代码失败后,如果显示“某个工具从以下位置返回了错误代码: "正在执行生成文件项目操作"”一、

2014-04-05 10:15:37 1979

原创 VisualGDB调试NDK代码无法查看局部变量

VisualGDB调试NDK代码时无法查看局部变量,请检查你NDK

2014-04-04 17:48:50 1770

原创 android编译错误解决办法

一、htmlDir not a directory: out/target/common/docs/gen/bin/bash: line 26: 21282 Killed                  LD_LIBRARY_PATH=out/host/linux-x86/lib javadoc \@out/target/product/sdkDemo/obj/JAVA_LIBRARIE

2014-04-03 20:13:47 11874

原创 PPT转PDF记

老大让我给一个工具写一个使用说明,我听成了用PPT写,没想到交工的时候老大说要写成PDF那就在网上找转换工具吧。用了两个转换工具PowerPoint/PPT to Pdf Converter、PDF虚拟打印机,均没有成功转换成PDF文件,后来在网上查到office 2007居然有差距可以直接将word、ppt转换成PDF我擦,前面的前戏浪费了我两个小时啊插件使用方法转载自:http

2013-03-27 17:14:11 2319

原创 MrleeProtect游戏保护

MrleeProtect驱动保护,是我写的一个功能较为完善且稳定的一个保护。因为MP保护的文件有很多,而且还有R3层的部分,经过讲解视频的讲解和配合完善的注释,可以让大家对于保护的流程和功能有更清晰更快的理解。注意:1. 此套保护仅在Windows XP SP3系统上做过测试。2. 保护程序是在VS2010环境下编译的。MrleeProtect效果:1. 防止受保护进程

2013-02-25 10:11:05 1054

原创 游戏收费模式 - 颠覆传统收费模式

-- 引言 此方法需要完整策划和一套紧密的组合拳。对于任何公司来说都是机会,但如果此方法一旦普及,则将对小型游戏公司产生沉重打击。    转载请说明出处:http://blog.csdn.net/zylc369/article/details/7957142    首先,游戏完全免费,不收任何点卡和道具费用。那么如何盈利哪?    羊毛不出在玩家身上,从合作商身上拔,解决了玩家玩游

2012-09-08 07:37:22 1898 1

原创 驱动写的正确,卸载时蓝屏问题解决

2012-04-20 11:37:54 1322

原创 我做的第一个项目的项目总结

1.了解客户需求了解客户需求不可能一次了解完全,因为客户毕竟不是专业人士,了解客户需求的时候可以根据自己的经验去提醒客户是否需要加某些功能,能了解多少就了解多少,因为客户不会总在你身边。2.敏捷开发一般了解需求可能需要很多次,但我们不能等到需求完全确定的时候再开始做项目,我们要将已经十分确定的需求先做了,等这部分做完了,另一部分需求就很可能已经确定了,这样循序渐进不耽误事儿。

2012-03-16 13:36:41 906

原创 进程权限与OpenProcess

今天写了一个DLL,通过OpenProcess获取一个进程的句柄,可是OpenProcess总是返回0。但这个段代码不写在DLL中,而是嵌入使用这段代码的调用代码时,却可以正常工作,让我很郁闷。查了半天发现,貌似是需要给进程提权,有更高的权限时,OpenProcess才能正常使用,我试了试,果然可以。这里是给程序提权代码的地址和大家分享下:标题:三个给进程提权的方法   地址:http

2011-12-02 15:25:34 3263 2

转载 对 Windows驱动开发技术详解 第九章的(IRP的同步)自我理解

对 Windows驱动开发技术详解 第九章的(IRP的同步)自我理解BY:ALALMN—飞龙 QQ:316118740 BLOG:http://hi.baidu.com/alalmn同步异步处理(这个也都是很好理解的) 在R0和R3下都给了例子////////////////////////////////////////////////////////////////////

2011-11-30 10:49:14 656

转载 对 Windows驱动开发技术详解 第八章的(驱动程序的同步处理)自我理解

对 Windows驱动开发技术详解 第八章的(驱动程序的同步处理)自我理解BY:ALALMN—飞龙 QQ:316118740 BLOG:http://hi.baidu.com/alalmn本章主要对等待 创建新线程 对事件进行初始化操作 信号灯 互斥体 从R0和R3都做了介绍方便大家对比///////////////////////////////////////////

2011-11-30 10:48:23 840

原创 中断请求(IRQ)中断控制器(PIC)

///////////////////////////////////////////////////////////////////////////////中断请求(IRQ)中断控制器(PIC)PIC的中断向量IRQ编号 设备名称 用途IRQ0 Tine 计算机系统计时器IRQ1 Key

2011-11-30 10:42:53 1359

原创 互锁函数

///////////////////////////////////////////////////////////////////////////////互锁函数ExInterlockedXX系列函数通过自旋锁实现 不可以操作分页数据ExInterlockedXX互锁操作函数内核函数 功能ExInterlockedAdd

2011-11-30 10:42:17 2465

原创 WaitForSingleObject、WaitForMultipleObjects、CreateThread

///////////////////////////////////////////////////////////////////////////////用户模式的等待WaitForSingleObject等待一个同步对象DWORD WaitForSingleObject(   HANDLE hHandle, //同步对象句柄  DWORD dwMillisecond

2011-11-30 10:40:36 1850

原创 KeInitializeEvent、KeInitializeSemaphore、KeInitializeMutex

///////////////////////////////////////////////////////////////////////////////内核模式下事件对象VOID KeInitializeEvent( IN PRKEVENT Event, //这个参数是初始化事件对象的指针 IN EVENT_TYPE Type, //这个参数是时间的类

2011-11-30 10:38:17 3710

原创 CreateEvent、CreateSemaphore、ReleaseSemaphore、CreateMutex

///////////////////////////////////////////////////////////////////////////////用户模式 对事件进行初始化操作HANDLE CreateEvent(  LPSECURITY_ATTRIBUTES lpEventAttributes, // 安全属性  BOOL bManualReset, // 复位方式  BO

2011-11-30 10:35:42 2804

原创 PsCreateSystemThread函数说明

// 创建新线程NTSTATUS PsCreateSystemThread( OUT PHANDLE ThreadHandle, //用于输出,这个参数得到新创建的线程句柄 IN ULONG DesiredAccess, //是创建的权限 IN POBJECT_A

2011-11-30 10:26:52 4068

原创 主线程等待子线程完成

#include #include // _beginthread, _endthread#include // 创建线程UINT WINAPI Thread(LPVOID para){ printf("进入Thread......\n"); // 等待5秒 Sleep(5000); printf("离开Thread......\n"); return 0;}int

2011-11-29 23:08:38 1210

原创 使用互斥体同步线程

#include #include // _beginthread, _endthread#include /* * 可以理解信号灯内部有N个灯泡。 * 如果有一个灯泡亮着,就代表信号灯处于激发状态,如果全灭,则代表信号灯处于未激发状态。 */// 创建线程 1UINT WINAPI Thread1(LPVOID para){ HANDLE* phMutex = (HAN

2011-11-29 22:53:12 1280

原创 Win API 互斥体

互斥体是一种常用的同步对象,互斥体可以避免多个线程争夺同一个资源。例如,多线程环境中,只能有一个线程占有互斥体。获得互斥体的线程如果不释放互斥体,其他线程永远不会获得这个互斥体。互斥体的概念类似于同步事件,所不同的是同一个线程可以递归获得互斥体。递归获得互斥体的意思是,得到互斥体的线程还可以再次获得这个互斥体,或者说互斥体对于已经获得互斥体的线程不产生“互斥”关系。而同步事件不能递归获取。互斥

2011-11-29 22:15:11 1304

原创 使用信号灯同步线程

#include #include // _beginthread, _endthread#include /* * 可以理解信号灯内部有N个灯泡。 * 如果有一个灯泡亮着,就代表信号灯处于激发状态,如果全灭,则代表信号灯处于未激发状态。 */// 创建线程UINT WINAPI Thread1(LPVOID para){ printf("进入Thread1......\

2011-11-29 21:52:03 766

原创 使用事件同步线程

#include #include // _beginthread, _endthread#include // 创建线程UINT WINAPI Thread1(LPVOID para){ printf("进入Thread1......\n"); HANDLE* phEvent = (HANDLE*)para; // 设置该事件激发 SetEvent(*phEvent);

2011-11-29 21:13:27 520

原创 _beginthread、_beginthreadEx、CreateThread之间的注意点

首先,线程句柄要通过CloseHandle关闭,但不是每个句柄都需要关闭,内核对象的句柄需要关闭。关于内核对象的介绍参考:http://www.cppblog.com/zwp/archive/2008/12/27/70525.html介绍_beginthread、_beginthreadEx、CreateThread之间的关系参见一下内容:http://blog.csdn.net/

2011-11-29 21:07:01 1165

原创 _beginthreadex函数说明

//第1个参数:安全属性,NULL为默认安全属性//第2个参数:指定线程堆栈的大小。如果为0,则线程堆栈大小和创建它的线程的相同。一般用0//第3个参数:指定线程函数的地址,也就是线程调用执行的函数地址(用函数名称即可,函数名称就表示地址)//第4个参数:传递给线程的参数的指针,可以通过传入对象的指针,在线程函数中再转化为对应类的指针//第5个参数:线程初始状态,0:立即运行;CREATE

2011-11-29 19:18:29 4064

原创 CreateEvent函数说明

// 参数1:LPSECURITY_ATTRIBUTES pEventAttributes 安区参数 一般用户不用考虑它,传入NULL。 // 参数2:表示创建的事件是否是手动模式。 // 如果是TRUE,则是手动模式的事件,事件处于激发状态后,需要手动设置才能回到未激发状态。 // 如果是FALSE,则是自动模式,当事件处于激发状态后,遇到任意一个等待(如:W

2011-11-29 19:09:39 876

Windows7左手鼠标

Windows7左手鼠标

2014-01-27

MyEclipse10.7.1完美破解

MyEclipse10.7.1完美破解

2013-11-09

破解计算器

破解计算器

2013-07-22

走进计算机病毒.part3.rar

走进计算机病毒.part3.rar

2012-11-24

走进计算机病毒.part2.rar

走进计算机病毒.part2.rar

2012-11-24

走进计算机病毒.part1.rar

走进计算机病毒.part1.rar

2012-11-24

VMWare安装苹果MAC教程

VMWare安装苹果MAC教程

2012-10-29

通过 HOOK PsCreateSystemThread 监控线程,入口函数特征码对比来过hs防护软件的保护,asm源码

通过 HOOK PsCreateSystemThread 监控线程,入口函数特征码对比来过hs防护软件的保护,asm源码 通过 HOOK PsCreateSystemThread 监控线程,入口函数特征码对比来过hs防护软件的保护,asm源码

2012-10-07

过HS驱动源码

过HS驱动源码

2012-10-07

Oracle Database 11g完全参考手册.part5

Oracle Database 11g完全参考手册.part5

2012-04-04

Oracle Database 11g完全参考手册.part4

Oracle Database 11g完全参考手册.part4

2012-04-04

Oracle Database 11g完全参考手册.part3

Oracle Database 11g完全参考手册.part3

2012-04-04

Oracle Database 11g完全参考手册.part2

Oracle Database 11g完全参考手册.part2

2012-04-04

Oracle Database 11g完全参考手册.part1

Oracle Database 11g完全参考手册.part1

2012-04-03

编程所积累的经验_不歪

编程所积累的经验 比较杂,都是编程时遇到了疑难的问题解决后做的记录。

2011-10-17

空空如也

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

TA关注的人

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