- 博客(340)
- 资源 (2)
- 收藏
- 关注
转载 寄存器中cs,ds,ss,es的区别
首先 cpu中寄存器用于存储内存中数据的物理地址cs 为代码段寄存器,一般用于存放代码; 通常和IP 使用用于处理下一条执行的代码cs:IP基地址:偏移地址cs地址对应的数据 相当于c语言中的代码语句ds 为数据段寄存器,一般用于存放数据;ds地址对应的数据 相当于c语言中的全局变量ss 为栈段寄存器,一般作为
2015-06-01 17:00:03
14172
转载 Android实现双进程守护
做过android开发的人应该都知道应用会在系统资源匮乏的情况下被系统杀死!当后台的应用被系统回收之后,如何重新恢复它呢?网上对此问题有很多的讨论。这里先总结一下网上流传的各种解决方案,看看这些办法是不是真的可行。1.提高优先级这个办法对普通应用而言,应该只是降低了应用被杀死的概率,但是如果真的被系统回收了,还是无法让应用自动重新启动! 2.让service.onStartC
2015-04-01 17:37:03
1918
转载 程序内存分配 堆栈
1) 在栈上创建。在执行函数时,函数内局部变量的存储单元都在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,一般使用寄存器来存取,效率很高,但是分配的内存容量有限。2) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete来释放内存。动态内存的生存期由程序员自己决定,使用非
2015-01-26 16:17:13
726
转载 在eclipse中将android项目生成apk并且给apk签名
生成apk最懒惰的方法是:只要你运行过android项目,到工作目录的bin文件夹下就能找到与项目同名的apk文件,这种apk默认是已经使用debug用户签名的。如果想要自己给apk签名:1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们
2015-01-07 10:25:12
847
转载 Android Native So加壳技术
目前市面上针对Apk的保护主要是基于Dex,公开的有DexGuard、梆梆、爱加密、ApkProtect等,私底下相信很多涉及到技术保密的App开发商都在做自己的保护策略。而针对so的保护就相对滞后了一些,这里有so在app中扮演的角色的原因,也有so自身特点的原因。我个人理解,elf文件相对Windows的PE来说松散一些,物理磁盘上的文件和内存里的文件镜像差异更大,所以在处理上
2014-12-29 10:45:43
5993
转载 android防破解方法汇总
1、禁用调试标志以及检测调试器http://blog.163.com/lyzaily@126/blog/static/4243883720132281016999/2、检测是否在模拟器中运行http://blog.163.com/lyzaily@126/blog/static/4243883720132755797/3、APK签名校验
2014-12-23 15:56:53
1512
转载 Android网络传输中必用的两个加密算法:MD5 和 RSA
MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了。但这两种算法使用环境有差异,刚好互补。一、MD5算法首先MD5是不可逆的,只能加密而不能解密。比如明文是yanzi1225627,得到MD5加密后的字符串是:14F2AE15259E2C276A095E7394DA0CA9 但不能由后面一大串倒推出yanzi1225627.因此可以用来存储用户
2014-12-17 10:51:29
822
转载 公钥与私钥
公钥与私钥数字签名是什么?作者:David Youd翻译:阮一峰原文网址:http://www.youdzone.com/signature.html1.鲍勃有两把钥匙,一把是公钥,另一把是私钥。2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果
2014-12-17 09:44:01
575
转载 Android 动态加载(防止逆向编译)技术
最近工作中接到了一个研究防止逆向编译的任务.研究了几天资料,最后基本实现了防破解技术,在这个工程中,也略有一些心得体会,现整理下来分享,供大家探讨参考研究。文中如有纰漏、失实之处,请大家及时给与指正。 防破解技术主要有四种实现方式:1.代码混淆(ProGuard)技术 2.签名比对技术 3.NDK .so 动态库技术 4.动态加载技术. 参考资料:h
2014-12-16 17:56:15
608
转载 APK反破解之一:Android Java混淆(ProGuard)
转载自:http://www.blogjava.net/zh-weir/archive/2011/07/12/354190.html Android Java混淆(ProGuard)ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目。官网网址是:http://proguard.sourceforge.net/。 Java的字节码一般是非常容易
2014-12-16 17:54:45
833
转载 block一点也不神秘————如何利用block进行回调
我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数时候回调是比通知方便的,所以何乐而不为呢?如果你不知道回调使用的场景,我们来假设一下:1.我现在玩手机2.突然手机没有电了3.我只好让手机开始充电4.充电的过程中我好无聊,我要去看电视,但是我不会一直看电视,我要等手机电充满了停止看电视,继续去玩手机5.我开始看电视6.手机电充好了,我听到手机响了一下,我不看
2014-12-01 11:30:17
585
转载 android测试之getevent/sendevent
关于在android平台上捕获事件的资料互联网上已经铺天盖地,但个人觉得可用性都不太大,大部仅 针对特定设备,而对于其他设备引导性不强,故整理处本文,望对初学者有个有力的帮助: getevent 旨在获取android设备的事件信息,具体参考详细用法(本人亦初学者一枚,无法深入解释) sendevent 则可以向设备发送模拟事件,其中包括touch和keypress 详
2014-11-04 15:45:27
972
转载 android系统中sendevent的妙用
都知道,android系统使用linux内核input子系统来获取按键,触摸以及其他的IO事件,这个小工具就是getevent/sendevent,那么它是怎么用的呢?[cpp] view plaincopyprint? [cpp] view plaincopyprint?root@android:/ # getevent -h
2014-11-04 15:16:28
1155
转载 Android getevent/sendevent详解
getevent&sendevent 是android系统下的一个工具,可以模拟多种按键和触屏操作,产生的是raw event,raw event经过event hub处理产生最终的gesture事件。 === getevent ===getevent 监控当前的事件,鼠标事件,按键事件,拖动滑动等 dd device 1: /dev/input/event
2014-11-04 15:08:13
1904
转载 Android sendevent/getevent 用法
getevent/sendevent源码这两个命令的源码在system/core/toolbox/下,sendevent.c getevent.cgetevent使用getevent获得/dev/input/eventX设备汇报的事件,这个命令还会输出所有event设备的基本信息,如下:add device 1: /dev/input/event1 name:
2014-11-04 14:48:22
683
转载 smali文件对比java文件(转)
smali文件对比java文件: .class :类名 .super :父类 .source :源文件名 .implements :继承的接口 .field :类成员变量 .method :类方法 .parameter :函数参数 p1,
2014-10-30 16:29:59
934
转载 Android系统启动过程
首先Android框架架构图:(来自网上,我觉得这张图看起来很清晰)Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用。启动的过程如下图所示:(图片来自网上,后面有地址) 下面将从Android4.0源码中,和网络达人对此的总结中,对此过程加以学习了解和总结,以下学习过程中代码片段中均有省略不完整,请参照源码。一 Init进
2014-10-24 17:11:00
502
转载 android跨进程事件注入(程序模拟用户输入)
早想写这篇,一直没空,现在总结下。需求:需要在程序内模拟用户输入,比如点击屏幕,或者输入键盘。模拟用户的滑动等。具体的需求,比如测试的时候,测试打开浏览器1000次。或者通过网络发送命令给手机,在手机上执行点击或者输入。再或者,平板和蓝牙鼠标通过蓝牙通信,通过鼠标让平板上的鼠标能移动和点击。这些都需要用到事件注入。分析:模拟用户输入的方式有几种,一是monkeyrunner,这个的
2014-10-15 09:12:21
752
转载 ubuntu12.04下安卓编译环境搭建总结
签:it分类:Android前言: 因为工作需要,经常要编译安卓下的动态库,公司有已经搭建好环境的服务器,但是第一自己想自己搭建一下了解一个整个过程,另外,公司的服务器也经常出现问题,导致编译不了,所以就想自己搭建环境。开始是在公司自己的电脑上装了一个unbuntu的虚拟机,然后在网上找了一个攻略,开始搭建环境。但是一直卡在源码下载那一块,每次源码下载都出
2014-09-22 16:38:40
1002
转载 smail语法 详解
大家都应该知道APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,例如修改后缀后用RAR打开鳄鱼小顽皮APK能看到的是(Google Play下载的完整版版本):Where's My Water.zip\asset\ lib\
2014-09-19 17:27:26
11370
转载 Android的bootloader
安卓系统bootloader模式是什么?如何进入bootloader在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全
2014-09-19 09:09:52
1260
1
转载 计算机是如何启动的?
从打开电源到开始操作,计算机的启动是一个非常复杂的过程。我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示...... 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。零、boot的含义先问一个问题,"启动"用英语怎么说?回答是boot。可是,boot原来的意思是靴子,"启动"与靴子有什么关系呢? 原来,这里的boot是bootstrap(鞋带)的缩写
2014-09-18 15:23:26
508
转载 Android 使用Socket完成进程间通信
近来反编译看一些Android应用,特别是涉及到底层的功能性的应用,比如游戏加速,修改内存,挂机脚本神马的,发现里面的通信机制无一例外的都是使用的socket,基本上已经成为这类应用的一种标配了。Android 使用Socket完成进程间通信例子见下面的下载:免费下载地址在 http://linux.linuxidc.com/用户名与密码都是www.linuxidc.com具体下载
2014-09-12 17:04:59
2932
转载 Android BLE 蓝牙低功耗教程,中央和周边的实现
Android4.3 规范了BLE的API,但是直到目前的4.4,还有些功能不完善。在BLE协议中,有两个角色,周边(Periphery)和中央(Central);周边是数据提供者,中央是数据使用/处理者;在iOS SDK里面,可以把一个iOS设备作为一个周边,也可以作为一个中央;但是在Android SDK里面,直到目前最新的Android4.4.2,Android手机只能作为中央来使用和处
2014-09-11 10:59:09
2700
1
转载 如何单独编译Android源代码中的模块
第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了。以后如果我们修改了Android源代码中的某个模块或者在Android源代码工程新增一个自己的模块,是不是还是执行make命令呢?答案是否定的,Google为我们准备了另外的命令来支持编译单独的模块,以及重新打包system
2014-09-04 11:11:20
532
转载 Android Linux 内核介绍
已经有一些的文章介绍Android内核了,本系列篇将从Linux内核的角度来分析Android的内核,希望给初学者提够有用的信息。本章将简单的介绍 Android内核的全貌,起到一个抛砖引玉的作用。从下一篇开始将详细介绍每一个Android内核驱动程序及其作用。 Android内核是基于Linux 2.6内核的(目前最新开发版本是2.6.31),它是一个增强内核版本,除了修改部分Bug外,
2014-09-04 10:14:32
739
转载 红帽redhat linux有哪些版本?最新版本是多少?
http://wenda.tianya.cn/question/6fe156fd21a3c5aeredhat linux最后一个版本是9.0,于2003年发布,2004年停止支持了。之后redhat公司只发布redhat enterprise linux简称rhel,现在最新版本是rhel5 update2 即rhel5.2,支持到2014年同时还在支持的版本是rhel4,
2014-09-02 11:16:25
5010
转载 【破解利器】反汇编工具 and 反编译(Decompilers)
今天给大家放上 破解利器 之 反汇编工具 and 反编译(Decompilers) 篇反汇编工具IDA ProIDA Pro是DataRescue开发的专业反汇编工具, IDA Pro是一款专业的反汇编工具,己成为了很多Cracker,Hacker, Reverse engineerer的必备工具. C32Asm
2014-08-29 11:07:33
1266
转载 关于android设备管理器的一些分析
作 者: limitemp时 间: 2014-01-12,20:43:04链 接: http://bbs.pediy.com/showthread.php?t=183692想必很多人都知道轰动一时android木马OBAD,该木马利用android设备管理器的漏洞,当用户激活设备管理器后,该程序会在setting设备管理器列表隐藏,应用程序激活成设备管理器后,可以实现锁屏、擦除
2014-08-27 13:34:05
3304
转载 五大常用算法之四:回溯法
一、基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 (1)分支搜索算法 所谓“分支”就是采用广度优先的策略,依
2014-08-25 16:31:46
771
转载 五大常用算法之三:贪心算法
贪心算法一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前
2014-08-25 16:30:07
535
转载 五大常用算法之二:动态规划算法
一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通
2014-08-25 16:29:35
568
转载 五大常用算法之五:分支限界法
一、基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 (1)分支搜索算法 所谓“分支”就是采用广度优先的策略,依
2014-08-25 16:29:13
673
转载 五大常用算法之一:分治算法
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间都与其
2014-08-25 16:27:06
542
转载 五大常用算法之一:分治算法
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间都与其
2014-08-25 16:26:46
102
转载 Java Serializable(序列化)的理解
1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。2、什么情况下需要序列化 a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
2014-08-25 16:01:46
462
转载 AFNetworking速成教程
AFNetworking速成教程目录(?)[-]开始操作JSON操作Property Listsplists操作XML一个小的天气程序一个RESTful类连接到Live Service我还没有死下载图片原文链接:AFNetworking速成教程本文是由 iOS Tutorial 小组成员 Scott Sherwood撰写,他是一个基于位置动态加载
2014-08-21 15:26:59
1134
转载 Java程序打包成jar包
方法一:通过jar命令jar命令的用法:下面是jar命令的帮助说明:用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point][-C dir] files ...选项包括: -c 创建新的归档文件 -t 列出归档目录 -x 解压缩已归档的指定(或所有)文件 -u 更新现有的归
2014-08-19 14:27:09
950
转载 AndroidStudio导出jar包
AndroidStudio 导出jar类库AndroidStudio不像在Eclipse,可以直接导出jar包。AndroidStudio只可以生成aar包。在网上看到许多朋友问怎么可以像Eclipse一样导出jar包,其实我们只要知道它的原理就可以了。用jar命令就可以打包你所需要的资源,并指定jar包名。在网上下载Volley源代码,导出jar包为例子。在Volley项目工
2014-08-19 14:27:08
57366
5
转载 Mac os x下配置 Android ndk 开发环境
1.阅读下面之前,请确保你android sdk的开发环境已经搭建好,ADT也最好是目前最新的. 2.到http://developer.android.com/tools/sdk/ndk/index.html这里下载最新的ndk. 3.下载完成后,解压你下载的文件. 4.配置一下你的.bash_profile; 开启终端,输入命令 pico .bash_profile 首先添加一
2014-08-05 14:00:29
2066
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人