自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (8)
  • 收藏
  • 关注

原创 Android LLVM-Obfuscator C/C++ 混淆编译的深入研究

一、 LLVM是什么?(1)LLVM是lowlevel virtual machine的简称,是一个编译器框架。苹果公司的Xcode 4.0之后用的都是LLVM编译器。(2)LLVM 诞生于2003.10伊利诺伊大学香槟分校,创始人ChrisLattner,现任苹果公司『开发者工具』部门的主管。   二、 LLVM-Obfuscator 是什么?(1)LLVM-

2015-04-29 19:30:04 24202 21

原创 c/c++字符串混淆方案总结

有过破解native程序经验的人都知道,在大量的汇编代码面前不可能是从头开始理解代码的,必须找到一两个点进行突破。字符串往往就是这样的关键点,在代码中hardcode的字符串会可以原封不动的在生成的binary中查找到。所以要增加破解的难度,对字符串进行混淆(或者叫加密,下面的文字可能混淆和加密混着用,在这里没有区别)是很重要的一步。只要字符串在代码中出现,那么其必然会在binary中出现,所以要

2015-04-29 19:14:29 22994 5

转载 Android DEX安全攻防战

英文原版:http://www.strazzere.com/papers/DexEducation-PracticingSafeDex.pdf该文章发表于Black Hat 2012,虽然内容不够新鲜,也许好多方法目前已经失效,但是仍然会给我们反逆向方面很多的启示!一、DEX相关基础知识     1、什么是DEX?          DEX是Dalvik EXecutable的简称

2015-04-28 20:04:16 1445

转载 Android dex分包方案

当一个app的功能越来越复杂,代码量越来越多,也许有一天便会突然遇到 下列现象 :1. 生成的apk在2.3以前的机器无法安装,提示INSTALL_FAILED_DEXOPT2. 方法数量过多,编译时出错,提示:Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xf

2015-04-28 19:29:33 1812 1

转载 Android apk编译/反编译工具baksmali和smali用法

1. smali 下载地址:http://code.google.com/p/smali/downloads/list 用法如下:首先把baksmali-1.4.1.jar和smali-1.4.1.jar文件放到android sdk安装路径下的tools里面,把apk用WinRAR解压并提取classes.dex文件,也放入tools里面,然后用命令行,cd tools目录下,输入jav

2015-04-28 17:41:53 9179

原创 Android DexClassLoader/PathClassLoader 动态加载jar/APK

可以使用Android ClassLoader完成DEX的动态加载,DEX文件可以附属在assert或raw目录也可以运行时从网络下载。1.当前动态加载常用的class loader  (1)DexClassLoader:这个可以加载jar/apk/dex,也可以从SD卡中加载,也是本文的重点。  (2)PathClassLoader:只能加载dex文件和已经安装到Android系统中

2015-04-28 16:25:30 4285 1

原创 Android 悬浮窗的实现

1. 首先在manifest中添加如下权限:注意:在有些手机上,手机自带的权限管理软件默认会禁止悬浮窗口permission,需要在设置中打开本应用的”显示悬浮窗”开关,并且重启应用,否则悬浮窗不能显示在手机桌面上。(例如小米4 手机,需要在系统安全中心App -> Permission -> Your App -> Display pop-up window)2. 通过Cont

2015-04-27 17:27:28 1676

原创 Android <activity-alias> 的用法研究

1. 问题最近在开发公司App的过程中有一个需求:需要改变HomeActivity (launcher 的入口) 的名称为StartupActivity,先不要问为什么会有这么脑残的需求,反正就是要改名称。好吧,那就改吧,按理说也没有什么大碍。可是往往是我们把事情想得太简单—— App 发布后在某些手机上版本升级后,点击桌面icon 竟然无法启动App直接崩溃。后来才搞清楚原因:某些手机安

2015-04-27 11:54:36 4689

原创 Android 关于NDK Clang3.4 编译可执行文件无法启动的问题

1. 发现问题今天遇到一个奇怪的问题:编写了一个C 的可执行二进制文件,利用ndk-build 编译后,调用如下代码执行该文件: public void run() { Process process = null; try { process = Runtime.getRuntime().exe

2015-04-20 20:11:03 1288

原创 process.waitFor() 返回值含义

以下是Linux中返回值对照表"OS error code   1:  Operation not permitted""OS error code   2:  No such file or directory""OS error code   3:  No such process""OS error code   4:  Interrupted system call""

2015-04-20 16:17:09 7187

原创 Linux 进程间管道pipe通信

1. 函数说明    pipe()会建立管道,并将文件描述词由参数filedes数组返回。对于调用fork 创建的子进程,父子进程之间通信常用pipe来实现,非常方便。 #include //参数 // filedes[0]为管道里的读取端 // filedes[1]则为管道的写入端 //返回值 // 若成功则返回零,否则返回-1,错误原

2015-04-16 16:01:34 1024

转载 Java ServerSocket用法深入分析

本篇文章观点和例子来自 《Java网络编程精解》, 作者为孙卫琴, 出版社为电子工业出版社      在客户/服务器通信模式中, 服务器端需要创建监听端口的 ServerSocket, ServerSocket 负责接收客户连接请求. 本章首先介绍 ServerSocket 类的各个构造方法, 以及成员的用法, 接着介绍服务器如何用多线程来处理与多个客户的通信任务.

2015-04-15 17:24:27 4666

原创 Android RSA加解密算法,MD5RSA签名验证算法

package com.test.security;import java.io.ByteArrayOutputStream;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import

2015-04-15 13:27:30 1996

原创 Android C 层如何输出log

很简单,只要在一个头文件MyLog.h 中做如下定义,然后在需要用的地方include 这个头文件就可以直接调用log 函数了,同Java 层的调用几乎一样:MyLog.h #pragma once#include#define DEBUG 1#define LOG_TAG "myLog"#if DEBUG #define LOGI(fmt, args...) _

2015-04-14 17:29:11 877

原创 Android Socket 通信

最近在开发过程中遇到一个需求:Java 层和 C 层两个进程之间用Socket 通信。所幸Android Java 已经集成了 LocalServerSocket 类,利用该类可以很容易实现Java 层和 C 层进程间通信。1.Java层作为Socket Server /** * Create the server socket */ public voi

2015-04-14 15:49:51 2137 1

原创 Linux 多线程等待超时机制的实现:pthread_mutex_lock/pthread_cond_signal/pthread_mutex_unlock

最近在做一个项目,需要实现两个线程之间的等待超时机制。例如A线程等待B线程,需要实现等待超时机制。解决方案是利用条件变量实现。1. 条件变量    条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其它的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程。这些线程将重新锁定互斥锁并重新测试条件是否满足。一般说来,条

2015-04-08 20:41:59 7575

转载 Linux pthread 多线程编程必备

1 引言  线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。  为什么有了进程的概念后,还要再引入线程呢?使用

2015-04-08 16:14:06 1366

原创 Android Runtime.getRuntime().exec() 使用方法

Android 可以通过Runtime.getRuntime().exec()方法来执行命令或者创建进程。1. Runtime.getRuntime().exec共有六个重载方法:public Process exec(String command)在单独的进程中执行指定的字符串命令。public Process exec(String [] cmdArra

2015-04-08 15:05:01 34503 1

原创 Android 源码Mac-OSX查看工具Sublime-Text2

Windows 电脑上可以用Source Insight查看android 源码,非常方便。但是最近换了MacBook,Mac-OS没有Source Insight,查找了一下,可以用Sublime-Text2 代替。Sublime-Text2 需要安装Package Control插件和CTags Package:一、安装Package Control插件    1.打开控制台

2015-04-02 20:12:09 5454 1

原创 Android 源码编译Linux内核时出现fatal error: linux/netfilter/xt_dscp.h: No such file or directory

最近在Mac OSX上编译android 4.4.2的源码,碰到了N多问题,最头疼的就是在编译过程中遇到如下错误,网上搜索几天都不得解,后来终于搞清楚了:1. 创建大小写敏感的磁盘镜像    在Mac下编译android的源代码需要一个大小写敏感(Case Sensitive)的分区格式如果你原来的分区不是HFS+一类大小写敏感的文件格式,那么最简单的办法就是新建一

2015-04-01 23:37:40 4836 1

android PackageManager 反射调用相关的类

Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用Java反射。android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用PackageManager的API

2016-08-03

Cordova_android_demo

Cordova / PhoneGap 开发 1. 基于HTML,CSS和JavaScript的移动开发框架 2. 跨平台快速开发:能够支持iPhone,Android,Palm,Symbian, WP7, WP8, Bada和Blackberry 3. 核心功能:包括地理定位,加速器,联系人,声音和振动等 4. 拥有丰富的插件,可以以此扩展无限的功能

2016-01-21

Symbian最常用的环境安装

Symbian最常用的环境安装,自己整理的东西,网上有好多种方法,但没有一个系统的总结,该文档时对网上的各种方法的总结

2009-08-30

Symbian开发讲义-绝对的好东西

Symbian开发讲义献给从事手机开发的程序员,适合初学者入门

2009-08-30

word编辑排版技巧-适合长篇文稿的编辑

word编辑排版技巧-适合长篇文稿的编辑,经典的资料,赶快下吧

2009-08-30

高质量C++编程指南--适合有编程经验的人

适合有编程经验的人,指导你改正编程中的误区,提高代码的性能

2009-08-30

程序员面试宝典-绝对经典

好东西,奉献给即将找工作的同学们.里面收录了各大公司的笔试面试题,值得好好研究

2009-08-29

WD412.exe驱动程序开发工具

WinDriver 适合没有驱动程序开发经验的人 比DDK 和DriverStudio 入门容易,简单易学,但是所编的驱动程序不够灵活,不及前二者效率高

2009-08-21

空空如也

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

TA关注的人

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