SkyBox
    
            
摘要:【SkyBox】 Skyboxes 本质是一个Material,这个Meterial的shader必须设置为ShaderFX/Skybox。 SkyBox可以被绑定到摄像机或设置一个全局的SkyBox。全局的设置方法为“Edit”->"Render Setting"选项的Inspector中...
        
阅读全文
摘要:【OpenGL顶点缓冲区对象】 显示列表可以快速简单地优化立即模式(glBegin/glEnd)的代码。在最坏的情况下,显示列表的命令被预编译存到命令缓冲区中,然后发送给图形硬件。在最好的情况下,是编译后放在图形硬件中以减少传输的带宽。显示列表的优化根据实现的不同而有所不同,而且显示列表一旦被创建...
        
阅读全文
摘要:【OpenGL顶点数组】 在OpenGL中,所有的几何图元都是由顶点定义的,而每个顶点又有很多属性,如:坐标,颜色,法向量等。如果对每个顶点逐个的调用函数来描述,那么,开销是非常大的。而且不方便对复杂几何体顶点的管理。这里采用了顶点数组的方法,不但便于数据的管理,而且大大减少了函数的调用。使用顶点...
        
阅读全文
摘要:【尾递归】 如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成...
        
阅读全文
摘要:【objc变量的获取】 C++成员变量通过偏移来寻找,速度极快。But Objc中的变量通过方法调用来寻找,方法首先根据变量名,找到ivar_t,然后在ivar_t对象中取出偏移,再用此偏移来取值(这最后一步和C++一样)。ivar_t类结构如下: objc-runtime中的object_...
        
阅读全文
摘要:【当property遇上category】 @property可以在类定义中,以及extension定义中使用,编译器会自动为@property生成代码,并在变量列表(ivar_list_t)中添加相应的以下划线开头的变量。 在category中,编译器允许定义@property,但不会为此@p...
        
阅读全文
摘要:【Effective ObjectiveC 2.0 Note】1、The memory for objects is always allocated in heap space and never on the stack。2、对于[NSArray arrayWithObjects:obj1,ob...
        
阅读全文
摘要:【同余】1、整数a,b对模m同余的充分与必要条件是m|(a-b),即a=b+mt,t是整数。2、性质丁。若a1=b1(mod m),a2=b2(mod m),则(a1+a2)=(b1+b2)(mod m)。 推论,a+b=c(mod m),-b=-b(mod m),则a=c-b(mod m)。3、...
        
阅读全文
摘要:【避免Block中的强引用环】 In manual reference counting mode, __block id x; has the effect of not retaining x. In ARC mode, __block id x; defaults to retaining ...
        
阅读全文
摘要:【Grand Central Dispatch】 GCD is one of the technologies for starting tasks asynchronously.This technology takes the thread management code you would ...
        
阅读全文
摘要:【推送唤醒(Remote Notifications)】 在iOS6和之前,推送的类型是很单一的,无非就是显示标题内容,指定声音等。用户通过解锁进入你的应用后,appDelegate中通过推送打开应用的回调将被调用,然后你再获取数据,进行显示。这和没有后台获取时的打开应用后再获取数据刷新的问题是一...
        
阅读全文
摘要:【改变了后台任务的运行方式】 在iOS6和之前的系统中,系统在用户退出应用后,如果应用正在执行后台任务的话,系统会保持活跃状态直到后台任务完成或者是超时以后,才会进入真正的低功耗休眠状态。 而在iOS7中,后台任务的处理方式发生了改变。系统将在用户锁屏后尽快让设备进入休眠状态,以节省电力,这...
        
阅读全文
摘要:【Scheduling the Delivery of Local Notifications】 Apps can use local notifications to display alerts, play sounds, badge the app’s icon, or a combinat...
        
阅读全文
摘要:【Executing a Finite-Length Task in the Background】 Apps that are transitioning to the background can request an extra amount of time to finish any im...
        
阅读全文
摘要:【Determining Whether Multitasking Is Available】 Apps must be prepared to handle situations where multitasking (and therefore background execution) is...
        
阅读全文
摘要:【单位圆上的所有点】 单位园上的点(x,y),满足特点x^2+y^2=1。 我们只要知道x^2+y^2=z^2的解法,就能求出单位圆的坐标表示。 初等数论第二章第3节定理1,x=2ab,y=a^2-b^2,z=a^2+b^2,即是x^2+y^2=z^2所有解。 将等式左右两边同是除以a^2+b...
        
阅读全文
摘要:【init方法返回值自动改写问题】 在ARC开启的情况下,以init开头的实例方法的返回值会被默认无视,返回类型会被编译器改写为类指针类型。 如一人类叫UIButton类,如果一个方法叫 (UILabel*)initTextLable,则编译器会警告返回值UILabel*与方法signature...
        
阅读全文
摘要:【as+bt=1是ab两数互质的充要条件】 充分性,as+bt=1 => (a,b)=1: 因为as+bt=1,设c=(a,b),则c整除a和b,所以c整除as+bt,即c整除1,所以c=1,即a和b互质 必要性,(a,b)=1 => ab+bt=1: 考虑非空集合A={as+bt│s,t为...
        
阅读全文
摘要:【no newline at the end of file】 修复这个警告,在文件结尾回车一下就行了。 这么规定的初衷是,为了每一行都要以换行结束。 因为行尾的/表示连接下一行,如果一个文件最后一行(main函数的右边大括号)行尾有/,那么,紧跟它也被包含进来的下一个源文件的第一行就会被连接...
        
阅读全文
摘要:【svn add文件名包含@符号的解决方案】 在iOS开发过程中,代码得用SVN管理起来,但是遇到这么个问题:Default@2x.png文件svn add不成功,总提示找不到这个文件。 结果查了查资料,原来得这样: 参考:http://www.baidufe.com/item/ebc7916...
        
阅读全文
摘要:【证明3|n(n+1)(2n+1)】 n(n+1)(2n+1) => n(n+1)(n+2+n-1) => n(n+1)(n+2) + n(n+1)(n-1) 因为n(n+1)(n+2)、n(n+1)(n-1)是连续的3个整数,故: 3|n(n+1)(n+2) & 3|n(n+1)(n-1) ...
        
阅读全文
摘要:【Xcode迁移工程常见问题】1、Header Search Paths (HEADER_SEARCH_PATHS) 是否设置正确。在Search Paths group下。 2、Framework Search Paths (FRAMEWORK_SEARCH_PATHS) 是否设置正确。在Sea...
        
阅读全文
摘要:【Multiple build commands for output file】 copy了多个同名文件,就会出现此警告,因为ios机制,所有copy的资源都放置在根目录下。 解决方法中在BuildPhases在CopyBundleResource中,只保留一个资源,或者重命名资源。
        
阅读全文
摘要:【python中descriptor的应用】1、classmethod。 1)classmethod的应用。 2)classmethod原理。 2、staticmethod。 1)staticmethod应用。 2)staticmethod的原理。 3、property。 1)...
        
阅读全文
摘要:【xcode快捷键】1、跳转到指定行:Command + L。
        
阅读全文
摘要:【Cycript】 Cycript allows developers to explore and modify running applications on either iOS or Mac OS X using a hybrid of Objective-C++ and JavaScri...
        
阅读全文
摘要:【令assignment操作符返回一个reference to *this】 关于赋值,可以把它们写成连锁形式: int x, y, z; x =y =z =15; II赋值连锁形式 上述连锁赋值被解析2为 x = (y = (z = 15)); 这里 15先被赋值给 Z,...
        
阅读全文
摘要:【dyld_decache】 Starting from iPhone OS 3.1, the individual libraries files supplied by the system are smashed together into a giant cache file (dyld_...
        
阅读全文
摘要:【Logos】 Logos is a component of theTheosdevelopment suite that allows method hooking code to be written easily and clearly, using a set of special pr...
        
阅读全文
摘要:【Mac hook—DYLD_INSERT_LIBRARIES】1、gcc生成dylib。gcc -dynamiclib -o mysharedlib.dylib mysharedlib.c2、gcc生成dylib,指定flatnamespace。gcc -flat_namespace -dynam...
        
阅读全文
摘要:【MobileSubstrate】 Cydia Substrate(formerly calledMobileSubstrate) is thede factoframework that allows 3rd-party developers to provide run-time patche...
        
阅读全文
摘要:【makefile的规则】 在讲述这个makefile之前,还是让我们先来粗略地看一看makefile的规则。 target可以是一个object file(目标文件),也可以是一个执行文件,还可以是一个标签(label)。对于标签这种特性,在后续的“伪目标”章节中会有叙述。 prereq...
        
阅读全文
摘要:【Theos初步】1、安装Theos。Theos需要在mac和ios上均安装,ios上安装的是Theos服务器,以使得mac的thoes可以直接安装app到ios设备上。如果不需要使用此功能,则仅安装mac版即可。// 在.bash_profile中设置THESO变量export THEOS=/op...
        
阅读全文
摘要:【Theos简介】 Theos is a cross-platform suite of development tools for managing, developing, and deploying iOS software without the use of Xcode. The Th...
        
阅读全文
摘要:【Bypassing iPhone Code Signatures】 Starting with the recent beta releases of the iPhoneOS, Apple has started requiring that all code on the device is...
        
阅读全文
摘要:【共享keychain数据】 当往keychain中插入数据时,默认的kSecAttrAccessGroup就是App自身的BundleID。【官方文档】 You can add a keychain-access-groups entitlement to the application an...
        
阅读全文
摘要:【failed to get the task for process问题】A: Why am I getting "Error launching remote program: failed to get the task for process" when debugging an iPhon...
        
阅读全文
摘要:【Entitlements】 Entitlements confer specific capabilities or security permissions to your iOS or OS X app. You can set many entitlements using the Su...
        
阅读全文
摘要:【找出不同数字】 一个整型数组里除了一个或者两个或者三个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。1,如果只有一个出现一次,考察到异或的性质,就是如果同一个数字和自己异或的活结果为零,那么循环遍历一遍数组,将数组中的元素全...
        
阅读全文
摘要:【使用class-dump】 对于未加壳的Mach-O文件,class-dump可以从Mach-O的section中还原出objc代码的头文件。下面做一些关键演示,以及对关键问题进行说明。 1、标准用法:-H -O dirname。 -H将解析出的头文件写成文件。-O dirname指...
        
阅读全文
摘要:【iOS Keynote】1、2009年暴露的IKee病毒是iOS上公开的第一款蠕虫病毒,它会感染那些已经越狱并且安装了SSH,但是又没有更改其默认root密码"alpine"的iOS设备,并将它们的锁屏背景改成一具英国歌手的照片。2、Cydia上最知名的“共享”源xsellize能够在几乎所有收费...
        
阅读全文
摘要:【xcode恢复语法高亮】 非常简单,在Organizer中删除derivedData。
        
阅读全文
摘要:【关闭SublimeText自动更新】 1、找到Preferences -> Settings-User(设置用户) 2、在最后一个花括号结尾(“}”)前添加一句:”update_check":false,结果如图所示:
        
阅读全文
摘要:【程序自启动】1、启动文件夹。启动文件夹下的文件都会开机自动启动。 2、注册表启动。 3、文件关联启动。 4、通过CreateService()创建服务来启动。 最后,微软的Autoruns工具可以查看所有的启动项。
        
阅读全文
摘要:【Hook技术】1、Inline Hook。2、IAT(导入表) Hook。3、windows钩子函数。 常用函数包括:SetWindowsHookEx()、CallNextHookEx()、UnhookWindowsHookEx()。
        
阅读全文
摘要:【进程间的调试关系】 建立调试器和调试目标的关系,可以通过CreatePorcess和DebugActiveProcess两个函数来完成。 DebugActiveProcess()用于绑定到已运行进程。OllyDbg的附加功能就是通过此函数完成。 解决调试关系可以用如下函数: 【判断进程...
        
阅读全文
摘要:【常见的2种断点方法】1、中断断点。 2、内存断点。
        
阅读全文
摘要:【CrackMe的简单破解】 对于以下这样的输入账号和密码的窗口,我们可以猜测该程序使用最简单的机制实现,即用strmp来比较用户输入的密码和原始密码匹配。所以为了破解该程序,可以通过bp strmp来设置strmp的函数断点,当调用到strcmp的时候就能看到密码了。 设置断点: 运...
        
阅读全文
摘要:【PE文件结构】 【PE结构相关的3种地址】 【特征码】 很多EXE会被加壳,加壳的特点是入口地址被替换。所以入口地址处的代码常常可以用来判断EXE是否被加壳,以及用来判断是哪种程序生成的程序。这些可以判定目标的二进制机器码被称为特征码。特征码匹配就是一个二进制的匹配。
        
阅读全文
摘要:【DLL卸载】1、扫描Module。通过CreateToohelp32Snapshot、Module32First、Module32Next来完成。2、通过FreeLibrary来卸载。通过在kernel32.dll中找到FreeLibrary函数来完成。完整代码如下:
        
阅读全文
摘要:【DLL注入】概述:在目标进程中开辟一块内存,把DLL地址写入,然后通过CreateRemoteProcess调用LoadLibrary引用该内存地址来加载该DLL。1、创建远程线程,此线程需要指定调用的函数地址。通过OpenProcess可以获取目标进程的句柄。 2、通过VirtualAlloc...
        
阅读全文
摘要:【调用DLL的2种方式】 DLL在生成的时候会有dll、lib2个文件,另外包含相应的.h。1、静态方式,通过lib来引用dll,以及引入.h。 2、只通过dll来使用,前提是知道内部的函数符号。
        
阅读全文