代码改变世界

android apk 防止反编译技术第二篇-运行时修改字节码

2015-04-12 21:39 by 麦子熟了, 361 阅读, 0 推荐, 收藏, 编辑
摘要:上一篇我们讲了apk防止反编译技术中的加壳技术,如果有不明白的可以查看我的上一篇博客http://my.oschina.net/u/2323218/blog/393372。接下来我们将介绍另一种防止apk反编译的技术-运行时修改字节码。这种方法是在工作中在实现app wrapping时,看到国外的一... 阅读全文

linux设备驱动第五篇:驱动中的并发与竟态

2015-04-11 13:25 by 麦子熟了, 1058 阅读, 1 推荐, 收藏, 编辑
摘要:综述在上一篇介绍了linux驱动的调试方法,这一篇介绍一下在驱动编程中会遇到的并发和竟态以及如何处理并发和竞争。首先什么是并发与竟态呢?并发(concurrency)指的是多个执行单元同时、并行被执行。而并发的执行单元对共享资源(硬件资源和软件上的全局、静态变量)的访问则容易导致竞态(race co... 阅读全文

linux设备驱动第四篇:以oops信息定位代码行为例谈驱动调试方法

2015-04-02 07:48 by 麦子熟了, 2938 阅读, 2 推荐, 收藏, 编辑
摘要:上一篇我们大概聊了如何写一个简单的字符设备驱动,我们不是神,写代码肯定会出现问题,我们需要在编写代码的过程中不断调试。在普通的c应用程序中,我们经常使用printf来输出信息,或者使用gdb来调试程序,那么驱动程序如何调试呢?我们知道在调试程序时经常遇到的问题就是野指针或者数组越界带来的问题,在应用... 阅读全文

linux设备驱动第三篇:写一个简单的字符设备驱动

2015-03-28 19:16 by 麦子熟了, 2917 阅读, 1 推荐, 收藏, 编辑
摘要:在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动。本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存。下面就开始学习如何写一个简单的字符设备驱动。首先我们来分解一下字符设备驱动都有那些结构或者方法组成... 阅读全文

linux设备驱动第二篇:构造和运行模块

2015-03-28 19:13 by 麦子熟了, 345 阅读, 0 推荐, 收藏, 编辑
摘要:上一篇介绍了linux驱动的概念,以及linux下设备驱动的基本分类情况及其各个分类的依据和差异,这一篇我们来描述如何写一个类似hello world的简单测试驱动程序。而这个驱动的唯一功能就是输出hello world。在编写具体的实例之前,我们先来了解下linux内核下调试程序的一个重要函数pr... 阅读全文

linux设备驱动第一篇:设备驱动程序简介

2015-03-28 19:09 by 麦子熟了, 476 阅读, 1 推荐, 收藏, 编辑
摘要:首先,我们知道驱动是内核的一部分,那么驱动在内核中到底扮演了什么角色呢?设备驱动程序在内核中的角色:他们是一个个独立的“黑盒子”,使某个特定的硬件响应一个定义良好的内部编程接口,这些接口完全隐藏了设备的工作细节。(说白了,驱动程序除了对外提供特定的接口外,任何实现细节对应用程序都是不可见的。)用户的... 阅读全文

chromium浏览器开发系列第一篇:如何获取最新chromium源码

2015-03-26 20:02 by 麦子熟了, 989 阅读, 0 推荐, 收藏, 编辑
摘要:背景: 最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触chrome浏览器时间也不短了,干脆就总结一下吧。于是乎,本文顺理成章。由于有些细节必需描述清楚,所以这次先讲如何拿到chromium的源码,下次直接把编译过程写出来,供大家参考。前期准备: 之前的chromium源码都是用... 阅读全文

Android Metro风格的Launcher开发系列第一篇

2015-03-23 22:07 by 麦子熟了, 722 阅读, 1 推荐, 收藏, 编辑
摘要:前言:从毕业到现在已经三年多了,回忆一下这三年基本上没有写过博客,总是觉得忙,没时间写,也觉得写博客没什么大用。但是看到很多大牛们都在写博客,分享自己的东西,所以嘛本着向大牛看齐,分享第一,记录第二的目的开始写一个系列的文章,我会把我做一个项目的详细过程分享给大家,供大家参考和交流。好了,评书开讲!... 阅读全文