- 博客(30)
- 收藏
- 关注
转载 android apk 防止反编译技术第一篇-加壳技术
做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习。现在将最近学习成果做一下整理总结。学习的这些成果我会做成一个系列慢慢写出来与大家分享,共同进步。这篇主要讲apk的加壳技术,废话不多说了直接进入正题。一、加壳技术原理所谓apk的加壳技术和pc exe的加壳原理一样,就是在
2015-03-30 19:30:14 4367
转载 FFMPEG高级编程第一篇:环境搭建及编译
前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了。今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家分享一下,顺便做了一下记录以备以后使用时参考。本文(记录)与目前网上很多关于ffmpeg的文章相比有两个特点:一、重点不在于ffmpeg的解码部分(这个本来是ffmpeg最大的亮点),
2015-03-30 19:18:11 621
转载 linux设备驱动第三篇:写一个简单的字符设备驱动
在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动。本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存。下面就开始学习如何写一个简单的字符设备驱动。首先我们来分解一下字符设备驱动都有那些结构或者方法组成,也就是说实现一个可以使用的字符设备驱动我们必须做些什么工作。1、主设备号和次设
2015-03-30 11:13:52 642
转载 你所不知道的html[5]与html中的那些事(一)
文章简介: 关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后,所有的工作都可以达到真正的云方式呢?这一系列的问题你是否已经想明白了呢? 本系列文章将为您一一解答你所不知道的关于html5与html中的那些事;具体会包括如:html5新的
2015-03-29 13:02:22 657
原创 [WebKit内核] JavaScript引擎深度解析--基础篇(一)字节码生成及语法树的构建详情分析
看到HorkeyChen写的文章《[WebKit] JavaScriptCore解析--基础篇(三)从脚本代码到JIT编译的代码实现》,写的很好,深受启发。想补充一些Horkey没有写到的细节比如字节码是如何生成的等等,为此成文。 JSC对JavaScript的处理,其实与Webkit对CSS的处理许多地方是类似的,它这么几个部分:(1)词法分析->出来词语(Token)
2015-03-26 23:26:13 9077 3
转载 浏览器开发系列第一篇:如何获取最新chromium源码(转)
背景: 最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触chrome浏览器时间也不短了,干脆就总结一下吧。于是乎,本文顺理成章。由于有些细节必需描述清楚,所以这次先讲如何拿到chromium的源码,下次直接把编译过程写出来,供大家参考。前期准备: 之前的chromium源码都是用svn来维护,所以源码地址网上贴的到处都是,我看了一下,svn的版本最新的
2015-03-26 11:19:44 852
转载 Android Metro风格的Launcher开发系列第一篇
android apk目录(?)[+]可能大家做Android机顶盒或者Android电视开发的比较少,这类开发基本上都是基于源码的开发,大家有一个git版本库,大家开发完了编译出来一个版本烧到板子上跑,要编译肯定就要编译环境什么的,google推荐的是在Ubuntu系统上搭建开发和编译环境。首先要做的事情是环境搭建:大家可以装双
2015-03-24 10:35:37 1370
原创 Android上学习ARM指令集之开篇
工作中经常碰到crash的问题,如果是Debug版本,有源代码,那还好,调试信息多。万一Release给QA甚至客户之后,再发现crash之类的问题,如果不熟悉ARM指令、看不懂现场,那调试起来可就费劲了。往往只能到处去猜,相信大家都有过这种难过的经历。 这段时间比较闲,正好利用起来为入门ARM指令集写点初级文章,没什么远大理想,写到哪里算哪里,权当娱乐罢了。
2015-03-21 16:04:29 2406
转载 计算机航向
回复CSDN和KAOYAN诸位网友的几点看法,(为避免吵架,郑重声明,本人不是高手,只是有感而发的一点个人陋见,欢迎指正,事先感谢): 就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。 如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择。因为计算机学院才能让你在理论上更上一层楼。软件学院从教学计
2015-03-20 15:13:31 674
原创 词法分析器的工作过程分析
Webkit中,有个词法分析器HTMLTokenizer,她是怎么工作的呢,网页字节流是她的输入,她的输出是一个个的词语Token,比如div,input,img,script等等HTML文件中的标准元素(Element)。
2015-03-20 12:57:24 2397
原创 Webkit初始化以及加载URL过程中各种对象的建立时序以及DOM树的建立详情分析
众所周知,Webkit需要创建DOM树。为此它需要创建WebView, Chrome,Page,Frame, Document, Document Parser, DOM Tree Builder(DOM树的建造引擎),ScriptRunner, Resource Handle等等对象。 同时,还需要创建为上面这些对象服务或者与之通信的支持对象,比如:与本地窗口相关的ChromeClient, 与FrameLoader事件相关的FrameLoaderClient,为Document服务的D
2015-03-20 12:22:41 1960
原创 QtWebkit里RenderLayer树的绘制详细流程分析
QtWebKit从绘制事件(Qt的paint)发出,到WebCore的RenderLayer数的绘制详细流程分析如下。 首先是QWidget收到paintEvent,发送给Qt的QWebView,在QWebView里,创建Qt的画笔QPainter,然后使用此画笔再调用Qt的QWebFrame的渲染函数render把这个QWebFrame绘制到裁剪区里。在QWebFrame的ren
2015-03-19 00:04:48 1797
原创 从最简单的实例学习ARM 指令集(五)
上一篇文章里,我们的子函数f1的参数是4个,arm果然如我所料采用r0-r3传递函数参数,这次我们再把参数加多: test7.c#include void f1(int p1, int p2, int p3, int p4, int p5){ p5++;}void main(){ int d = 4; f1(d, d, d, d, d);} 然后
2015-03-18 12:16:55 1668
原创 从最简单的实例学习ARM 指令集(四)
上一篇讲到子函数调用,这篇讲讲参数传递。先看下面一个小不点程序:test5.c#include void f1(int p1){}void main(){ int d = 4; f1(d);} 然后编译:arm-linux-gnueabihf-gcc test.c -o test5 然后看看汇编代码:arm-linux-gnueabihf-objdump -
2015-03-18 11:18:35 3954
原创 改进的SMS4算法的差分故障与暴力联合攻击
改进的SMS4算法的差分故障与暴力联合攻击(1.中国科学院研究生院,北京100049)摘要SMS4是在国内正式使用并于2006年公布的第一个用于无线局域网的商用分组密码算法.文中研究了SMS4对差分故障和暴力联合攻击的安全性.攻击使用随机故障模型,提出一种简化的轮函数差分故障攻击与暴力攻击相结合的方法.用该攻击方法不到1分钟就可以完全恢复出128位的种子密钥
2015-03-18 09:15:45 2659
原创 从最简单的实例学习ARM 指令集(三)
上一篇讲到赋值运算,这篇讲讲子函数调用,先看最简单范例:test4.c#include void f1(){}void main(){ int d = 4; f1();} 然后编译:arm-linux-gnueabihf-gcc test.c -o test4 然后看看汇编代码:0000835c :1 835c: b48
2015-03-18 00:36:33 2258
原创 从最简单的实例学习ARM 指令集(二)
本篇研究赋值运算是如何实现的。我们在上一篇的范例test2.c的基础上,加上赋值语句 d = b;test3.c#include void main(){ int d = 4; char b = 2; d = b;} 然后编译:arm-linux-gnueabihf-gcc test.c -o test3 然后看看汇编代码:arm-linux-g
2015-03-17 23:27:48 1595
原创 从最简单的实例学习ARM 指令集(一)
打算为入门ARM指令集写点初级文章,没什么远大理想,纯当娱乐算了。 首先编辑一个最简单的函数,包含变量分配及初始化:test1.c
2015-03-17 19:17:59 4946
原创 编译Sanbox
chromium启动总是出现警告提示:[4428:4428:51288848814:WARNING:zygote_host_impl_linux.cc(165)] Running without the SUID sandbox! See http://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on. 更新
2015-03-14 16:20:54 2765
原创 Backing Store ( 五 )的创建
不是所有的RenderLayer都需要创建它的Backing Store,只有网页的RenderObject树之RenderLayer满足如下条件:1 Transform:几何变换2 Video:页面有3 Canvas: 页面有4 Plugin5 Frame6 3DTransforms7 Animation8 Filters:CSS过滤器9 Position
2015-03-10 11:49:35 3979
原创 查看RenderObject树的内部表示
有时候我们需要知道自己写的页面排版的具体细节,DumpRenderTree是个不错工具。它位于WebKit/WebKitBuild/[Debug|Release]/bin目录下,直接运行会出错:gdb ./DumpRenderTree./DumpRenderTree http://192.168.1.100/BoxModeofCSS.html[Thread debugg
2015-03-10 07:52:03 2931
原创 树莓派上运行android
树莓派II来了!这对于想研究安卓的人来说是一个福音。官方配置如下:900MHz 主频四核 ARM Cortex-A7 处理器(博通 BCM2836)1G LPDDR2 SDRAM (Micron)两个全尺寸 USB 接口(可用于供电)一个 microUSB 接口一个全尺寸 HDMI 接口3.5 毫米音频接口RJ45 以太网线接口 想当年我用树莓派I运
2015-03-05 15:28:41 58444 17
转载 SVN cleanup 失败后的处理
svn: 工作副本“某某某某”已经锁定 svn: 运行“svn cleanup 某某某某”删除锁定 (输入“svn help cleanup”得到用法) 然后你就老老实实的运行“svn cleanup 某某某某”。结果SVN又报告一个错误 svn: 在目录“某某某某”中 svn: 处理命令 “modify-wcprop” 于 “某某某某” 出错 s
2015-03-05 11:21:53 865
转载 RefPtr和PassRefPtr基础[1]
历史: 在WebKit中,许多对象采用了引用计数。这种模式是通过类的ref,deref成员函数来递增和递减对象的引用记数。调用一次ref必须调用一次deref。当对象的引用记数为0的时候,对象就被删除。WebKit中许多类创建的新对象引用记数都为0,这被称作是浮动状态(Floating State)。在浮动状态的对象必须调用ref,在删除之前必须调用deref。WebCore中许多
2015-03-04 16:28:18 892
翻译 Tiled Backing Store(四)
3.3 分片底衬仓库(TiledBackingStore)的可见区域矩形 如下图所示,WebCore::Frame::tiledBackingStoreVisibleRect最终请求QGraphicsWebView给出可见区域:3.4 使分片底衬仓库无效 如果frame内容所在的矩形变脏了,WebCore::Frame会使这个矩形变成无效区域,同时告诉分片
2015-03-03 12:56:09 1283
翻译 Tiled Backing Store(三)
3.Qt WebKit之QGraphicsWebView 本节叙述如何通过Qt的QGraphicsWebView实现分片底衬仓库(tiled backing store)。如上静态类图所示,只有实现了分片底衬仓库客户端(TiledBackingStoreClient)的接口的WebCore::Frame才拥有分片底衬仓库实例。其他类只能通过WebCore::Fra
2015-03-03 11:31:49 1255
翻译 Tiled Backing Store (二)
2.2 前缓冲区(Front buffer) 通过QPinter来绘制tile实际上就是要绘制存储在前缓冲区里的pixmap。没有前缓冲区的tile意味着它不需要绘制。2.3 后缓冲区(Backend Buffer) 后缓冲区充当tile内容的屏下(off-screen)后缓冲区并且可以采用Qt的画笔绘制到Qt widget上。在更新后缓冲区的过
2015-03-03 00:56:27 1662
翻译 Tiled Backing Store(一)
1. 概述下列图片从层次的角度解释了什么是Tiled Backing Store:viewport 视图端口:代表用来显示网页内容的区域。Qt里,实际上就是QWidget。Tiled backing store: 可以看作是off-screen的pixmap的缓冲区。为了滚动、缩放操作的平滑,它覆盖的区域总是比viewport要大。 Co
2015-03-03 00:23:21 1942
原创 各种各样的client
我们看webkit代码,到处是client,那么何为client呢? 其实,client(客户端)指的就是对某件事情感兴趣的人(物),对Frame加载感兴趣的人,他可以继承Frame加载器的客户端,通过客户端的一系列接口,他就可以获知Frame加载到什么阶段了。请看FrameLoaderClient的各种各样的事件接口:将要发生型: virtual void dispat
2015-03-02 18:09:30 1154
原创 Frame
frame允许我们在多个独立于窗口的视图(view)里表现文档(document),多视图使我们很方便,比如我可以让有些信息可见、其他信息不可见(比如滚动显示)。举例来说,我们可以在同一个窗口内,让一个frame显示静态标签,而让另一个frame显示导航菜单,第三个frame显示能滚动的document,如何滚动却由第二个frame来选择。是不是很有意思?下面给出一个例子: fr
2015-03-01 23:24:58 876
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人