Aimeow的技术小站 活在自己的梦里

Dash4许可证获取方法

之前买过一次Dash 2,当时以为可以一直用下去,结果有一天,Dash从2升级到了3,然后我之前的序列号就不能用了!从此之后,我变成了Dash黑,一直用破解。

但是每次找破解比较麻烦,所以记录下来。

https://kapeli.com/licenses/Dash/2015/181/A9xyvwUTgNKIjFMPNX3Uh4byRMmZgk/license.dash-license

可以打开这个链接,然后升到Dash 4的许可证,然后就可以用啦~


Alfred 3 破解补丁

每次重启系统都要找一下Alfred 3的破解补丁,太过于麻烦。下载链接如下:

https://pan.baidu.com/s/1nuPHTGX  提取码为:pa71

另外在破解好后,因为破解工具会把alfred 3的证书给移除掉,所以需要给他补个证书,否则每次打开都会提示让你同意他读取通讯录。

sudo codesign --force --deep --sign - "/Applications/Alfred 3.app/Contents/Frameworks/Alfred Framework.framework/Versions/A/Alfred Framework"

Reveal查看任意app的高级技巧

Reveal是一个很强大的UI分析工具,与其他几个功能相近的工具(比如PonyDebugger)相比,其最大的特点就是非常直观,用来查看app的UI布局非常方便。其常规用法是将framework集成至Xcode工程中,可参见Reveal的官网http://revealapp.com/,但我们这次讲述的却是非常规用法。
在12/21的#阿里技术嘉年华#上,我给听众展示了使用Reveal查看任意app的效果,估计是当时所展示的工具中最亮眼的一个。既然如此,我就提前在这里把Reveal的这个技巧详细的列出来。
1、越狱设备,iPhone/iTouch/iPad都可以,iOS6以上(惊闻iOS7也已经越狱了);
2、安装Reveal,Trail或正式版都可以,然后越狱设备与安装Reveal的Mac在同一wifi内。
3、点击菜单Help / Show Reveal Library in Finder,获取libReveal.dylib

4、将libReveal.dylib上传到设备的/Library/MobileSubstrate/DynamicLibraries

5、同时编辑并上传一个libReveal.plist,格式如下:

注意,此时是可以指定多个BundleID的,也就是说,你可以同时监控任意多的app;再扩大一步说,如果你愿意,不上传这个libReveal.plist,你可以监控所有app,只要你不觉得机器很慢。。。
6、re-spring或重启iOS设备,打开你想看的app,再从Reveal界面左上角选择要连接的机器,进入不同的页面之后还可以点击右上角的刷新钮来刷新监测的页面信息。

以上是不写一行代码就能够查看任意app的方法,各位看别人app爽的时候,也可以摸摸脖子想想自己的app。
这种“高级技巧”从来没有被Reveal官方提起过,而是我们接触到Reveal之后逐步发现的。一开始的方法比较粗暴,是直接hook想看的app,把libReveal.dylib插进去;后来经过@卢明华 的进一步探索,才总结出这个更简单粗暴的方法。
虽然Reveal是最直观的一个工具,但是在iOS逆向这个领域,它占的比重连1/10都不到,真正的大块头都有点难啃,相信各位都是理解的。
最后,相信我们的书出来之后,会给朋友们更多深度撞击的感觉。

该文章转自http://c.blog.sina.com.cn/profile.php?blogid=cb8a22ea89000gtw


hi,好久不见

Alt text

真的是好久好久没有写博客了。

看了一下,突然发现,入职天猫还差一周就满一周年了。在2016这一年来,我一直将时间投入于工作,没有时间关心身体,也没有时间关心回忆,甚至连每日三省吾身的习惯都已经没了。这么一想,感觉人生只剩工作了。

自己整理下了这一年自己的变化,其中最明显的就是体重了。想想去年这时候还只是83kg左右的体重,如今又长了12kg,不过体检过后除了脂肪肝外好像并没有其它什么太多的问题。想想很长一段时间不怎么规律的生活,持续久坐,又没有运动,长成个胖子也都顺理成章了。

来杭州后就一直没有拜访过几个朋友,感觉挺对不起他们,但是公司位置略偏了些,又没地铁,每次出行都需要打车,没辆车真的很不方便,感觉今年买车这事要排上日程了。

来总结一下2016年,记录一些比较有意义的事,延续一下自己的记忆。

  • 2016年3月14日,我加入了阿里巴巴天猫事业部这个大家庭。
    Alt text

  • 2016年3月26日,作为主持人主持了天猫三月份月趴,这是第一次当主持人,感觉略伤。

  • 2016年4月15日,作为工作人员参加北京清华大学阿里巴巴技术论坛。

  • 2016年4月29号,我们养了一公一母银渐层短毛猫,一只取名为花椒,一只取名为泡椒。

  • 2016年5月10日,阿里日,虽然没有参加成集团的集体婚礼,但是天猫却为我们几个一年内领证的又办了次婚礼。
    Alt text

  • 2016年5月23日,参加新人百年阿里必修客,在这里结识了很多很不错的小伙伴。

  • 2016年6月11日,作为直播技术支持人员到深圳参加了天猫音乐节。

  • 2016年7月底,具体时间不可估,我们又养了一只银渐层与美短生的小猫,取名为青椒,这是只很活泼又很健康的小猫。

  • 2016年8月底,面对越涨越厉害的房价,我们å选择成为了房奴,买了一间130平的房子在西溪海小海。我想之后,我们会定居在杭州。

  • 2016年11月10日晚,作为晚会直播技术来到深圳参加了双十一晚会,与组员一起完成了双十一直播。
    Alt text

  • 2016年11月25日到12月3日,与春子泰国游。

    Alt text


category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性

属性 其实就是get/set 方法。我们可以使用 objcsetAssociatedObject/objcgetAssociatedObject 实现 动态向类中添加 方法

@interface NSObject (CategoryWithProperty)

@property (nonatomic, strong) NSObject *property;

@end

@implementation NSObject (CategoryWithProperty)

- (NSObject *)property {
    return objc_getAssociatedObject(self, @selector(property));
}

- (void)setProperty:(NSObject *)value {
    objc_setAssociatedObject(self, @selector(property), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

@end