求索

Make Something Different

[WebKit]遭遇Mac OS私有API

WebKit并不是完全开源的, Apple封装了一部代码在一个静态库(libWebKitSystemInterfaceXXXX.a)中,并没有提供源代码。而且不同版本的OS (包括iOS),会有特定的版本。 这就是我今天从分析中了解到的, 觉得过程比较有趣,记录一下。 1. 在WebK...

2013-05-09 22:49:55

阅读数:3195

评论数:3

Objective-C的方法替换

Objective-C的方法替换 (Method Replacement for Fun and Profit) 本文将要讨论Objective-C中的方法替换(method replacement)和swizzling(移魂大法)。   重写类的方法(Overriding Met...

2013-01-23 00:08:44

阅读数:11205

评论数:3

[iOS逆向工程] 在汇编语言调试中获取当前实例句柄

在分析Safari行为的时候想到要用objective-c的特性随时可以语义化的查看一下UIView的各种状态,比如在UIView方法内部设了个断点,想看一下当前视图结构。只要得到当前实例的句柄就可以了。查了一些资料,记录一下。 函数参数的传递 iOS Simulator里应用...

2012-12-19 01:03:32

阅读数:5797

评论数:5

Twitter广告平台的私有API

Promoted Tweets是Twitter的一个广告平台。本文作者是发现在Twitter官方的应用中并没有显示一些广告,而决定分析Twitter是不是做了什么手脚。没有详细的步骤,只是可以了解一些工具的使用和Twitter的一个小动作。   Mac上的Twitter有些奇怪...

2012-12-12 06:53:38

阅读数:2215

评论数:0

[Mac OS/iOS]反汇编工具Hopper分析Crash Log

在Mac OS下分析Crash Log有很多种方法,这里不是要说明如何分析的Crash Log, 主要是展示下Hopper的使用。 强大的IDA大家可能已经知道,但它的Mac OS版本又让人回到了DOS时代。幸运的是Mac OS有了一个小巧的替代品:Hopper, 基本上满足了工作上的反汇编的需要...

2012-12-12 06:40:45

阅读数:16935

评论数:1

iOS:应用程序的线程安全性

本文在于说明iOS应用的Objective-C代码的线程安全性。先是简单介绍一下线程安全的基本知识,然后通过一个小例子来观察非线程安全代码,最后会稍稍介绍一个可以用来分析线程安全隐患的工具。 1) 基础知识 (Threading Basics) 当启动一个应用时,iOS会对应创...

2012-11-01 00:41:51

阅读数:10714

评论数:4

[Objective-C]为现有对象增加额外的实例变量/数据

想到要如何为所有的对象增加实例变量吗? 使用Category可以很方便地为现有的类增加方法,但却无法直接增加实例变量(有为此使用查表法的,也算曲线救国吧)。不过从Mac OS X v10.6开始,系统提供了Associative References,这个问题就很容易解决了。 我根据Ob...

2012-10-09 23:01:38

阅读数:3186

评论数:0

【iOS/Mac OS】程序崩在objc_msgSend(),怎么办?

程序崩在objc_msgSend(),怎么办?   最可能的原因是,当你向一个已经释放的对象发送消息时,或者虽然指针是正确的,却被别的对象破坏了内容(比如内存越界),再或者使用了悬摆指针(dangling pointer)。偶尔的时候也会是因为内存错误导致运行时的数据结构被破坏,但通常问题还是...

2012-09-24 23:55:45

阅读数:14852

评论数:3

拦截MPMoviePlayerController的点击事件

为了解决在MPMovieController上添加一个和控制栏一起显示的按钮,特别研究了一下MPMoviePlayerController的结构 (controlStyle是default,为了便于查看,省去了部分输出): (lldb) po [m_view recursiveDescr...

2012-09-20 23:27:27

阅读数:9835

评论数:6

Objective-C中Extension与Category的使用

Objective-C 2.0增加了class extensions用于解决两个问题: 允许一个对象可以拥有一个私有的interface,且可由编译器验证。支持一个公有只读,私有可写的属性。 私有接口(Private Interface) Objective-C 2.0以前, 若要定义私...

2012-09-18 23:22:04

阅读数:11619

评论数:1

混合使用Objective-C,C++和Objective-C++

之前有段时间,我参与了一项使用了C++库的Objective-C项目。写了一篇关于混编的文章,结果却出乎意料的成为Google搜索中关于Objective-C++的最靠前的结果之一。 后来,Apple将基于LLVM的clang做为主选编译器。其作用之一就是可以保证Objective-C的...

2012-09-02 23:42:59

阅读数:57781

评论数:9

XCODE 4.0.2 & 4.1分布式编译

转载请注明出处:http://blog.csdn.net/horkychen (译注:我一直思考如何把旁边的电脑也用来一起编译一个大工程,今天发现了这份资料。先翻译一下,找时间实践。) 不知道是什么原因,XCode 4.x似乎不支持分布式编译了。虽然可以通过定义distcc服务...

2012-07-12 23:46:20

阅读数:4245

评论数:1

为XCode 4加速

转载请注明出处:http://blog.csdn.net/horkychen          1. XCode 4打开时,自动加载上次的工程,需要较长时间。      这是因为Lion提供了新功能让应用程序恢复上次关闭时的状态。如果仅是临时不希望下去打开时不要打开现在使用的项目,可以在退...

2012-07-12 22:50:28

阅读数:8260

评论数:2

Cocos2D-HTML5开源2D游戏引擎

转自:http://www.programmer.com.cn/12198/ 文/林顺 Cocos2D-HTML5是基于HTML5规范集的Cocos2D引擎的分支,于2012年5月发布。Cocos2D-HTML5的作者林顺将在本文中介绍Cocos2D-HTML5的框架、API、跨平台能...

2012-07-03 23:08:37

阅读数:2367

评论数:0

小心,Mac OS也有类似万能密码!

上次系统故障,差点要重装系统。好在找到了一个方法同大家分享。 如果你有了一台苹果电脑,但还不清楚如何设置Firmware password(类似BIOS密码,默认是空的),那你还是要了解一下。 开机按Alt不松,进RecoveryHD, 再进终端,输入resetpassword,然后你...

2012-07-03 13:03:55

阅读数:6344

评论数:0

懒人可以用Automator提高工作效率

转载请注明出处:http://blog.csdn.net/horkychen Mac OS里除了Apple Script, 还有一个更简单的自动化工具Automator,恰当运用可以提高工作效率。   下面举一个简单的例子, 比如在Mac OS执行Android模拟器,不想用AVD再选对...

2012-07-02 20:32:18

阅读数:11012

评论数:0

编写小程序查看CSDN博客信息(ASIHTTPRequest+TFHpple)

转载请注明出处:http://blog.csdn.net/horkychen 作为一个iOS练习,使用ASIHTTPRequest+TFHpple写了个小程序读取CSDN博客的已读等信息。其中ASIHTTPRequest负责发送HTTP Request以获取博客主页,然后使用TFHpple ...

2012-06-19 21:48:49

阅读数:3730

评论数:0

iOS上Web开发之远端调试

转载请注明出处:http://blog.csdn.net/horkychen 浏览器上的Debugger,基本由JavaScript写成,有兴趣可以下个FireBug Lite研究一下。PC端Debug很方便,也有远程调试,手机上的浏览器也有支持,原理相同。 今天下午了解了一下iOS上Sa...

2012-06-08 22:14:15

阅读数:7966

评论数:1

检查程序对动态库的依赖

转载请注明出处:http://blog.csdn.net/horkychen 测试程序时会出现找不到指定的库或库函数的错误,表示某个依赖库不存在或版本不正确。如果使用的是动态加载的动态库所依赖的包不存在,如果程序没有做好异常处理的话,会让你很难定位到问题。比如GDI+库。假设一个程序A,调用了动...

2011-11-02 00:16:46

阅读数:7306

评论数:2

[BoUML]生成代码

此处简单介绍一下运用免费的UML工具Bouml生成C++代码。 在BoUML中的各个视图和组件基本有以下的结构:    Project      -> View          -> Diagrams          -> Components   每一个组件,

2011-10-07 13:24:21

阅读数:2379

评论数:0

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