自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

念茜的博客

我是一单线程妞儿

  • 博客(190)
  • 资源 (12)
  • 收藏
  • 关注

原创 iOS安全攻防(二十四):敏感逻辑的保护方案(1)

iOS安全攻防(二十四):敏感逻辑的保护方案(1)Objective-C代码容易被hook,暴露信息太赤裸裸,为了安全,改用C来写吧!当然不是全部代码都要C来写,我指的是敏感业务逻辑代码。本文就介绍一种低学习成本的,简易的,Objective-C逻辑代码重构为C代码的办法。也许,程序中存在一个类似这样的类:@interface XXUtil : NSObject+ (BOOL)isVerifi

2014-06-07 19:04:38 43277 73

原创 iOS安全攻防(二十三):Objective-C代码混淆

iOS安全攻防(二十三):Objective-C代码混淆class-dump可以很方便的导出程序头文件,不仅让攻击者了解了程序结构方便逆向,还让着急赶进度时写出的欠完善的程序给同行留下笑柄。所以,我们迫切的希望混淆自己的代码。混淆的常规思路混淆分许多思路,比如:1)花代码花指令,即随意往程序中加入迷惑人的代码指令2)易读字符替换等等防止class-dump出可读信息的有效办法是易读字符替换。Obj

2014-06-07 17:00:47 134764 41

原创 iOS安全攻防(二十二):static和被裁的符号表

static和被裁的符号表为了不让攻击者理清自己程序的敏感业务逻辑,于是我们想方设法提高逆向门槛。本文就介绍一个防御技巧————利用static关键字裁掉函数符号。原理如果函数属性为 static ,那么编译时该函数符号就会被解析为local符号。在发布release程序时(用Xcode打包编译二进制)默认会strip裁掉这些函数符号,无疑给逆向者加大了工作难度。验证写个demo验证一下上述理论,

2014-03-18 17:11:18 22906 15

原创 iOS安全攻防(二十):越狱检测的攻与防

越狱检测的攻与防在应用开发过程中,我们希望知道设备是否越狱,正以什么权限运行程序,好对应采取一些防御和安全提示措施。iOS7相比之前版本的系统而言,升级了沙盒机制,封锁了几乎全部应用沙盒可以共享数据的入口。即使在越狱情况下,限制也非常多,大大增加了应用层攻击难度。比如,在iOS7之前,我们可以尝试往沙盒外写文件判断是否越狱,但iOS7越狱后也无该权限,还使用老方法检测会导致误判。那么,到底应该如何

2014-03-02 13:38:28 43338 15

原创 iOS安全攻防(十九):基于脚本实现动态库注入

基于脚本实现动态库注入MobileSubstrate可以帮助我们加载自己的动态库,于是开发者们谨慎的采取了对MobileSubstrate的检索和防御措施。那么,除了依靠MobileSubstrate帮忙注入dylib,还有别的攻击入口吗?理理思路,条件、目的很明确:1)必须在应用程序启动之前,把dylib的环境变量配置好2)dylib的位置必须能被应用程序放问到3)最后再启动应用程序啊哈,原汁原

2014-02-21 22:26:20 26707 7

原创 iOS安全攻防(十七):Fishhook

Fishhook众所周知,Objective-C的首选hook方案为Method Swizzle,于是大家纷纷表示核心内容应该用C写。接下来进阶说说iOS下C函数的hook方案,先介绍第一种方案————fishhook .什么是fishhookfishhook是facebook提供的一个动态修改链接Mach-O符号表的开源工具。什么是Mach-OMach-O为Mach Object文件格式的缩写,

2014-02-12 00:08:03 44610 22

原创 iOS安全攻防(十三):数据擦除

数据擦除对于敏感数据,我们不希望长时间放在内存中,而希望使用完后立即就被释放掉。但是不管是ARC还是MRC,自动释放池也有轮循工作周期,我们都无法控制内存数据被擦除的准确时间,让hackers们有机可乘。本文介绍一个小技巧——及时数据擦除。假如一个View Controller A的一个数据被绑在一个property上,@interface WipingMemoryViewController :

2014-01-22 18:47:20 20719 23

原创 iOS安全攻防(九):使用Keychain-Dumper导出keychain数据

使用Keychain-Dumper导出keychain数据iOS系统及第三方应用都会使用Keychain来作为数据持久化存储媒介,或者应用间数据共享的渠道。所以Keychain数据库是hacker们最关注的数据源头之一。不知道是算幸运还是不幸,导出Keychain数据库数据的工具早已非常完善,下载地址:Keychain-Dumper传送门操作步骤极其简单:1)赋予Keychain数据库可读权限Pr

2014-01-17 12:23:55 33253 6

原创 iOS安全攻防(四):阻止GDB依附

阻止GDB依附GDB是大多数hackers的首选,阻止GDB依附到应用的常规办法是:#import int main(int argc, char *argv[]){#ifndef DEBUG ptrace(PT_DENY_ATTACH,0,0,0);#endif @autoreleasepool { return UIApplicationMain(ar

2014-01-13 15:24:54 27796 11

原创 被废弃的dispatch_get_current_queue

苹果为何废弃dispatch_get_current_queue

2014-01-02 11:23:39 37778 16

原创 Objective-C的hook方案(一): Method Swizzling

Objective-C的hook方案(一):  Method Swizzling在没有一个类的实现源码的情况下,想改变其中一个方法的实现,除了继承它重写、和借助类别重名方法暴力抢先之外,还有更加灵活的方法吗?在Objective-C编程中,如何实现hook呢?标题有点大,计划分几篇来总结。本文主要介绍针对selector的hook,主角被标题剧透了———— Method Swizzling 。Me

2013-07-18 23:29:16 124193 65

原创 漫谈Objective-C :空段selector

Objective-C支持空段selector,这显然不具备良好的代码可读性,平时我们也不会这么写这么用,那为什么还要特别提出来说这件事呢?只是想给大家提个醒......

2013-07-05 18:08:39 12281 14

原创 Objective-C 的“多继承”

Objective-C 的“多继承” 当单继承不够用,很难为问题域建模时,我们通常都会直接想到多继承。多继承是从多余一个直接基类派生类的能力,可以更加直接地为应用程序建模。但是Objective-C不支持多继承,由于消息机制名字查找发生在运行时而非编译时,很难解决多个基类可能导致的二义性问题。不过其实 Objective-C 也无需支持多继承,我们可以找到如下几种间接实现多继承目的的方法:消息转

2013-05-24 17:10:43 36856 39

原创 iOS 5与iOS 6的 low-memory 处理

iOS 5 与 iOS 6 的 low-memory 处理移动设备终端的内存极为有限,应用程序必须做好low-memory处理工作,才能避免程序因内存使用过大而崩溃。low-memory 处理思路通常一个应用程序会包含多个view controllers,当从view跳转到另一个view时,之前的view只是不可见状态,并不会立即被清理掉,而是保存在内存中,以便下一次的快速显现。但是如果应用程序接

2013-05-06 19:06:59 20826 32

翻译 在iOS上绘制自然的签名

在iOS上绘制自然的签名这里有一篇很棒的文章写如何在Android上获取流畅的签名:Smoother Signatures,但是我没有找到一篇是写在iOS上如何实现。那么,究竟怎么做才能在iOS设备上获取用户的签名呢?虽然我没有找到任何关于获取签名的文章,但是在App store上已经有了实现得很好的app。  Paper by 53 是一个画画的iPad应用程序,它拥有漂亮并且灵敏的画笔,这也是

2013-04-25 16:29:20 26559 17

原创 将LMbench移植到Android上

将LMbench移植到Android上LMbench是个可移植的,用于评价系统综合性能的多平台开源benchmark,能够测试包括文档读写、内存操作、进程创建销毁开销、网络等性能。通过以下步骤操作,即可将LMbench移植到Android上。1.下载LMbench源码传送门:http://www.bitmover.com/lmbench/get_lmbench.html2.编辑scripts/os

2013-03-12 18:15:17 13574 3

原创 Objective-C 和 Core Foundation 对象相互转换的内存管理总结

Objective-C 和 Core Foundation 对象相互转换的内存管理总结iOS允许Objective-C 和 Core Foundation 对象之间可以轻松的转换,拿 NSString 和 CFStringRef 来说,直接转换豪无压力:CFStringRef aCFString = (CFStringRef)aNSString;NSString *aNSString = (NS

2013-01-30 21:26:37 35219 12

原创 Android 安全攻防(三): SEAndroid Zygote

Android 安全攻防(三): SEAndroid Zygote在Android系统中,所有的应用程序进程,以及系统服务进程SystemServer都是由Zygote孕育fork出来的。 Zygote的native获取主要研究dalvik/vm/native/dalvik_system_Zygote.cpp,SEAndroid管控应用程序资源存取权限,对于整个dalvik,也正是在此动的手脚。首

2013-01-12 12:10:26 13630 6

原创 Android 安全攻防(二): SEAndroid bionic

Android 安全攻防(二):SEAndroid  bionic 最近研究SEAndroid,会陆续对各个模块做对比分析,学习移植SELinux至Android,学习程序管控策略。bionic 作为第一个分析的模块,在此之前,先简单叙述一下SEAndroid,便于后续理解。SEAndroid 与 Android 的区别一句话概括:SEAndroid = SElinux + Android , 通

2013-01-10 19:02:30 13767 9

原创 Android 安全攻防(一):SEAndroid的编译

SEAndroid的编译SEAndroid概述SEAndroid(Security-Enhanced Android),是将原本运用在Linux操作系统上的MAC强制存取控管套件SELinux,移植到Android平台上。可以用来强化Android操作系统对App的存取控管,建立类似沙箱的执行隔离效果,来确保每一个App之间的独立运作,也因此可以阻止恶意App对系统或其它应用程序的攻击。SEAnd

2012-12-19 11:00:31 35273 8

原创 【CSDN2012年度博客之星评选活动】,来投我一票吧

拉个票拉个票~就差你这一票啦 (投票也有礼哦)投票地址:http://vote.blog.csdn.net/item/blogstar/yiyaaixuexi CSDN2012年度博客之星评选活动地址★ 本次活动的最终解释权归CSDN博客频道所有如果您有任何疑问或建议可直接发送邮件至blog(at)csdn.net

2012-12-05 14:50:56 4284 22

原创 iOS开发——加载、滑动翻阅大量图片解决方案详解

加载、滑动翻阅大量图片解决方案详解今天分享一下私人相册中,读取加载、滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制。我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏浏览界面的这短暂的1秒内(和后续的几秒),都发生了什么。常规思路流程点击任意小图后,1.首先制作scrollview框架:大小2个scrollview,小的用于手势缩放单一图片,大的横向依次加载全部照片2

2012-12-03 17:35:49 41681 54

原创 iOS笔记——遍历Tableview

iOS不提倡遍历全部cell,从抛给开发者的API就可以看出来,就给一个visiblecells方法,不让你轻松的拿到全部cell,优化内存使用的极佳方案。非要遍历全部cell怎么办?//只返回可见的cell- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath//只返回当前不可见的cell- (UITableVie

2012-11-30 15:05:31 17237 7

原创 iOS开发——图片转PDF的实现方法

图片转PDF的实现方法Quartz 2D概述Quartz 2D是Core Grapgics下的2D绘图引擎,适用于iOS和Mac OS X。 它具有强大的绘图功能,提供视角效果渲染,反锯齿渲染,颜色管理,绘制PDF等等。开发者无需考虑不同设备不同分别率的显示效果,因为这一切适配操作Quartz 全都自己包了。具体Quartz可以做些什么,下图给出了最佳答案:图片转PDF的工具类利用Quartz 2

2012-11-21 19:13:13 25494 33

原创 Xcode 再次开启欢迎界面的办法

有多少人开始觉得这个界面烦人,把勾勾掉了。又有多少人勾掉后又觉得不方便,想再次开启却找不到相关设置的位置?Command + Shift + 1

2012-11-02 10:08:29 13157 5

原创 iOS6的旋屏控制技巧

iOS6的旋屏控制技巧在iOS5.1 和 之前的版本中, 我们通常利用 shouldAutorotateToInterfaceOrientation: 来单独控制某个UIViewController的旋屏方向支持,比如:- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientatio

2012-10-01 11:06:09 49575 32

原创 各种开源协议License明细

free  ≠ 免费 本文主要摘录各种开源协议介绍。Apache Licence 2.0Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:需要给代码的用户一份Apache Licence如果你修改了代码,需要在被修改的文件中说明。在延伸的代

2012-08-22 15:10:29 19055 6

转载 iOS平台XML解析类库对比和安装说明

iOS平台XML解析类库对比和安装说明在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML、TouchXML、KissXML、TinyXML和GDataXML。问题是应该选择哪一个呢?解析 XML 通常有两种方式,DOM 和 SAX:DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结

2012-08-22 10:28:11 5798 3

原创 iOS开发——播放系统音效、自定义音效

播放系统音效、自定义音效工具类需求大致分为三种:1.震动2.系统音效(无需提供音频文件)3.自定义音效(需提供音频文件)我的工具类的封装://// WQPlaySound.h// WQSound//// Created by 念茜 on 12-7-20.// Copyright (c) 2012年 __MyCompanyName__. All rights reserved./

2012-08-15 18:30:25 17624 18

原创 PhoneGap 2.0 iOS开发环境搭建可能遇到的issue

下载PhoneGap 2.0 后,按照官方的文档一步一步走,并不能一次性成功的创建完整工程。错误如下:PhoneGap安装程序默认把CordovaLib安装在当前用户的Documents/ 下,检查是否存在名为CordovaLib文件夹。若无,请重新执行安装程序。关闭XCode,用命令行创建工程:./phonegap-phonegap-2dbbdab/lib/ios/bin/create hell

2012-08-06 16:43:01 6507 2

转载 iOS常用控件尺寸大集合

元素控件尺寸(pts)Window(含状态栏)320 x 480Status Bar的高度20Navigation Bar的高度44含Prompt的Navigation Bar的高度74Navigation Bar的图标20×20(透明的png)Tool Bar的高度44Tool Bar的图标20×20(透明的png)Tab Bar的高度49Tab Bar的图标30×30(透明的png)竖直时键盘

2012-07-26 09:33:42 7872 3

原创 iOS开发——生命周期

为了处理好应用程序的挂起、暂停等情况下的数据保存,或对应添加所需处理,我们必须了解ios生命周期。但是不要去背去记,做个实验就好。- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ // Override point fo

2012-06-26 11:16:52 6609 8

原创 iOS开发异常错误总结之——wait_fences: failed to receive reply: 10004003

如果在使用UIAlertView的过程中,莫名其妙的出现wait_fences: failed to receive reply: 10004003这个错误,那么十有八九是因为你忘记了关闭键盘。UIAlertView一弹出,倘若键盘没有关闭,就失去了焦点,当UIAlertView关闭,再回到原界面时,就会尴尬的接到wait_fences: failed to receive reply: 1000

2012-06-25 14:17:38 8200 6

原创 iOS开发——keychain的使用

通常情况下,我们用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更为安全的keychain了。keychain里保存的信息不会因App被删除而丢失,在用户重新安装App后依然有效,数据还在。使用苹果官方发布的KeychainItemWrapper或者SFHFKeychainUtils很方便,后来看到 iphone使用keychain来存取用户名和密码

2012-06-25 10:16:15 41193 26

原创 iOS开发——戏说旋屏

横竖屏切换,视图乱了怎么办?首先,我们必须了解一下下列4种状态,它们被用来描述设备旋转方向: UIInterfaceOrientationLandscapeLeft 向左,即HOME键在右 UIInterfaceOrientationLandscapeRight 向右,即HOME键在左 UIInterfaceOrientationPortrait 正立,即HOME键在下

2012-06-17 14:39:01 12034 9

原创 iOS晒作业:涂鸦pdf

除了浏览pdf电子书之外,如期完成了涂鸦pdf。     为了翻页手势和涂鸦手势的正确识别,还是将浏览和涂鸦分离开来的好,对不同view的处理还是少了很多麻烦滴。主要涉及:1. 多context,分层画画- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx2. 触摸事件touches族那些event- (void)touche

2012-06-13 15:00:28 8559 10

原创 iOS开发——遍历目录

实用工具类的积累是任何一个开发人员必不可少的财富。       今天的任务是遍历Documents目录,获得所有pdf电子书的书名,即文件名列表。这种需求很常见,于是乎,不如来捣鼓一个方法:/** * @brief 获得指定目录下,指定后缀名的文件列表 * * @param type 文件后缀名 * @param dirPath 指定目录 * * @return 文件名列表

2012-06-13 10:28:06 17218 17

原创 iOS开发笔记——利用segue传参

当我们选择了storyboard的segue帮我们实现view之间的切换,同时view之间的参数传递能力并没有被剥夺,ios为我们提供代理方法:#pragma mark - Segue Methods- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ MyViewController *viewCo

2012-06-11 15:47:09 12000 5

原创 iOS开发笔记——PDF的显示和浏览

今天的任务是:在iOS上加载显示pdf文件。方法一:利用webview-(void)loadDocument:(NSString *)documentName inView:(UIWebView *)webView{ NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:nil];

2012-06-08 16:04:57 74727 69

原创 Linux Qt编程——在程序中启动其他应用、脚本

我们在编程过程中,经常会遇到这样的需求,点击一下按钮,启动另外一个应用程序,或者执行一个脚本。你一定觉得这个多简单啊,有什么可写的?其实实现同一个功能,不同的开发人员写出的代码可能千差万别,执行效率,容错率,是否有唯一启动保护等……当然,我们还是需要通过衡量具体的需求和环境来设计自己的代码,量体裁衣。      最简单的,我们可以通过system直接启动一个应用程序或者脚本:system("./h

2012-05-21 11:22:52 15523 14

iOS 音效音频文件

iOS 音效音频文件 tap.aif

2012-08-15

apache-ant-1.8.2-bin.tar.gz

apache-ant-1.8.2-bin.tar.gz qt for android 必备ant工具

2011-10-18

MinistroConfigurationTool-1.0.apk

MinistroConfigurationTool-1.0.apk qt for android开发必备工具包

2011-10-18

Ministro-2.0.apk

Ministro-2.0.apk qt for android 必备工具包

2011-10-18

Qt自定义专属QQ聊天程序例程

Qt自定义专属QQ聊天程序例程 内含debug,release两个版本,本地无Qt库也可以运行体验。

2011-08-03

MPlayer + libmad 资源打包奉献

MPlayer-1.0rc2.tar.bz2 libmad-0.15.1b.tar.gz

2011-07-13

用eclipse编译c/c++的插件安装和环境配置指导

想用eclipse编译c/c++,但是下载了插件又不会使用怎么办? 该文档详细的一步一步指导你完成操作。步骤附图并且提供快捷的资源下载地址。

2010-05-17

基于FPGA的VGA显示模块设计

基于FPGA的VGA显示模块设计.pdf

2010-05-17

华为Quartus内部资料PDF格式

华为Quartus内部资料PDF格式 FPGA爱好者向往华为的有志之士不妨先睹为快。

2010-05-16

空空如也

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

TA关注的人

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