// Playground - noun: a place where people can play import UIKit //------------------------------------------------------------------------------ // 1. 定义固定格式的字典 // dict1的全部"键值"类型一致(都是字符串) var dict1 = ["name": "mary", "a…
找关键CALL和关键跳 方法一: 输入假码注册程序,记录下错误提示信息. OD载入程序--> 右键-->查找-->所有参考文本字串-->(右键-->查找文本,注:不要区分大小写,选择整个范围)找到上面记录的错误提示文本 或:右键-->超级字符串参考-->查找ASCII码/UNICODE->(右键-->查找文本,注:不要区分大小写,选择整个范围)找到上面记录的错误提示文本 -->双击进去,关键CALL和关键跳就在其上面附近.一般在其上有提示注册成功…
课前自泼凉水: 前两课的介绍的方法,不管是NOP填充还是JUM的无条件跳转,其实都有极大的局限性. 甚至单纯就效果而言,几乎无用. 且不说利用OD搜索关键字本身就很难搜得到. 就现在的软件保护而言,也几乎不存在只有一处验证的情况.有几处,十几处,甚至更多处验证的情况并不特殊. 所以,这些课程包括之后的,多半也是熟悉一下原理罢了.摆正心态,抱着一个学习的态度就好. 基于上面的原因,这节课引入了两个概念:关键跳和关键CALL. 顾名思义,关键跳就是关乎验证密码或者注册码的最直接的一个je.如果找到这…
一.编译器和语法变化 函数或方法参数 调用函数或方法时从第一个参数开始就必须指定参数名 在Swift的历史版本中出现过在调用函数时不需要指定任何函数参数(或者从第二个参数开始指定参数名),在调用方法时则必须从第二个参数开始必须指定参数名等多种情况,而在Swift3.0中不管是函数还是方法都必须从第一个参数开始必须指定参数名(当然可以使用"_"明确指出调用时省略参数). // 从第一个参数就必须指定参数名,除非使用"_"明确指出省略参数 func sum(num1:I…
1.效果图     2.NewsViewController.swift // // NewsViewController.swift // NavigationDemo // // Created by 赵超 on 14-6-27. // Copyright (c) 2014年 赵超. All rights reserved. // import UIKit class NewsViewController: UIViewController { override func viewDidLo…
这阵子一直在自学Swift, 因为之前iOS的开发一直用Objective-C, 所以习惯了C语言那种宏定义方式, Swift作为一款更加安全的语言, 放弃了C语言中的宏定义, 有效的防止预编译时代码宏替换的安全隐患, 但是也并非不能进行宏定义, 在这里我们可以像java一样进行全局常量的定义, 一样的方便快捷. 简单的宏通过常量设置即可, 复杂的宏就需要使用函数来返回了, 但是使用起来也会很方便, 下面我会分别把OC的宏定义和Swift的全局常量拿出来, 让大家对比比较. 也会详细的介绍新建宏…
找了许久没找到答案, 在下面的链接中, 我解决了这个问题: http://stackoverflow.com/questions/26366082/cannot-access-property-of-swift-type-from-objective-c // Swift -------------------------------- @objc protocol FooDelegate:NSObjectProtocl { func bar() } class Foo: UIViewContr…
引子 环境 lua 5.2 a = {}   for i=1,2 do a[i] = i*3 end   a[4] = 11;   print(a[#a])   ---print 11 -----------------------------------   a = {}   for i=1,3 do a[i] = i*3 end   a[5] = 11;   print(a[#a])      ----print 9 --------------------------------- #a…
一.简述 swift中并没有加入宏系统,C语言使用#define定义的基本常量在导入Swift时被Swift编译自动转为Swfit语言的全局变量.但复杂的宏定义不能被Swift转换.Swift中类似宏定义,可以单独创建一个类,如Const.swift,在此类中声明一些常量. 例如: // 屏幕的宽 let SCREEN_WIDTH = UIScreen.main.bounds.size.width // 屏幕的高 let SCREEN_HEIGHT = UIScreen.main.bounds.…
Swift中Selector变化 2.2 之前,使用字符串作为方法名称 //无参数 btn.addTarget(self, action: Selector("buttonPress") , forControlEvents: .TouchUpInside) //有参数 btn.addTarget(self, action: Selector("buttonPress:") , forControlEvents: .TouchUpInside) 2.2-3.0期间…