iPhone逆向基础
2010-06-04 13:52:00 来源:WEB开发网-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk
-framework Foundation
Talker.m hello.m
-o build/iphone_hello
但建立一个Makefile会比较酷,哈哈
DEV = /Developer/Platforms/iPhoneOS.platform/Developer
SDK = $(DEV)/SDKs/iPhoneOS3.1.3.sdk
ARCH = armv6
CC = $(DEV)/usr/bin/gcc
CFLAGS = -arch $(ARCH)
-I”$(SDK)/usr/include”
-I”$(DEV)/usr/lib/gcc/arm-apple-darwin9/4.2.1/include”
-F”$(SDK)/System/Library/Frameworks”
LD = $(CC)
LDFLAGS = -arch $(ARCH) -lobjc
-framework Foundation
-L”$(SDK)/usr/lib”
-F”$(SDK)/System/library/Frameworks”
all: HelloApp
HelloApp: hello.o Talker.o
$(LD) $(LDFLAGS) -v -o $@ $^
%.o: %.m
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
clean:
rm -f *.o HelloApp
注意: 虽然http://www.opensource.apple.com/source/objc4/objc4-371.1/runtime/objc.h里面有typedef char *STR; 的定义
但编译ARM版本不能通过
原理解释:
Phone系统是
1个所有的进程都以root权限运行的FreeBSD系统
所有的应用都以Objective-C创建
类似于COCOA的UIKit框架
文件系统重新组织过的FreeBSD Unix
Objective-C 调用一个方法,就是 往一个对象发送一个”方法名”的消息.
[obj doSomething];
这种发消息的机制, 可以发送任何消息给对象,即使接收消息的对象不能响应该消息. 这不同于静态类型的语言C++或者Java,
一个对象要调用的方法,必须预先定义好.
Objetvice-C的 接口与实现,必须放到不同的代码块里.
一个对象接收到消息,有3种处理方法: 转寄, 忽略,或者处理
OBJC_MSGSEND 的角色
在不同的类和方法之间的连续的消息流. 这个消息流 被_ObjC_MsgSend()函数处理.
编译器将 [foo doit]; 的语句 转换称 下面这样的C风格的函数调用
- ››iPhone应用帮助残障儿童看图说话
- ››iPhone实用工具AppBox Pro使用教程大揭秘
- ››iphone4省电方法
- ››iphone 获取地址的详细信息
- ››iPhone 库的基本内存管理策略
- ››iPhone加密文字亲手做 私密信息有保障
- ››iphone 根据经纬度坐标取详细地址(包括国,省,市...
- ››iphone/ipad ios cocoa object-c 近期苹果UI部分小...
- ››iphone中如何进行多线程编程
- ››iPhone OS SDK的这些事[安装、下载、版本、实例、...
- ››iPhone ObjectC的NSAutoreleasePool
- ››iPhone 判断设备是在Portrait(纵向)还是(Landscap...
更多精彩
赞助商链接