之前坑了QRC格式歌词转LRC格式,那么现在是合并QRC与LRC。貌似也没什么好说的了,就是些文本处理。直接上代码吧。
Monthly Archives: March 2015
QRC格式歌词转LRC格式
上一篇post里提到了QQ音乐的QRC歌词,不过其他播放器并不能识别出这个格式,于是只好自己写个转换器了。
QQ音乐的QRC歌词分析
今天Naville也依旧在坑QQ音乐的歌词。Dump出的歌词是QRC格式的,也就是QQ音乐自己的格式,这个格式比起传统的LRC多了一个功能(至少目前我发现的):可以让高亮准确地跟着歌词走,而不是一次亮一整句,或者以平均速度高亮完一句歌词。
那么这里就以Naville发给我的一个Sample作为例子吧。
iTunesLibrary.framework的简单使用
昨天还在说python x Scripting-Bridge 访问iTunes很方便,今天就被Naville告知可以用iTunesLibrary.framework。。。
那两篇post,
P.S,其实一开始让我用iTunesLibrary.framework的时候我是拒绝的,因为你不能让我用,我就马上用,第一我要试一下,因为我不愿意用完了以后再加一些特技上去,iTunes资料库“咣”一下,很全、很方便,这样程序[猿|媛]出来一定会骂我,根本没有这样的资料库,就证明上面那个是假的。后来我也经过证实它确实是好用的,我用了大概一个月左右,感觉还不错,后来我在用的时候也要求他们不要加特技,因为我要让程序[猿|媛]看到,我用完之后是这个样子,你们用完之后也会是这个样子!
使用python找出iTunes资料库内符合特定条件的音乐
上一篇post,在python里使用Scripting Bridge与iTunes交互,简单写了一下,这次是一个稍微实用一点的工具。
在 Python 里使用 Scripting Bridge 与 iTunes 交互
最近拿python脚本与iTunes交互的次数越来越多,这里就当是自己的一个笔记吧。
Apple的Scripting Bridge真的是个很不错的东西,只要某个App支持这个技术,并且开放了对应的接口之后,不需要使用DYLD注入也可以在其他程序中实现进程间通信与控制。当然,要想实现更高级的功能,还是得靠逆向与ObjC运行时。
Continue reading 在 Python 里使用 Scripting Bridge 与 iTunes 交互「iOS 8应用逆向工程 」翻译后记
去年12月份左右加入了「iOS 8应用逆向工程 」国际版的翻译工作,这是我第一次从事翻译相关的工作,而这也是iOS安全相关方面的书籍第一次向国外输出,在翻译上没少下功夫,紧张却又谨慎。
翻译小组加上我一共5人,每人两章左右的内容,约25000字左右,在一个月的时间内不仅要翻译完、翻译好,还要不断互相做校对。
在翻译的初期,虽然大家风格差异不大,但也决定一起走一个6000字的磨合期。从语句的结构风格、术语用词上统一,既要精准用词,又要行文自然,不拖泥带水。
翻译中后期,以章或半章(约10000字)为单位边译边校。在每翻译并校队好一章后,会将初稿交给老外review ( technical & grammatical )。
日程虽然相对紧张(前后3个月左右),中间也有一些小插曲,但也总算是有条不紊。一切都是为了能够使「iOS 8应用逆向工程 」的国际版能够如期和大家见面。如果我们的努力可以让更多的,对iOS逆向工程有兴趣的人走进这座宏伟建筑的大门的话,那么我们的心愿也算是达成了吧。
在「iOS 8应用逆向工程 」中文版正式发售之际,预祝「iOS 8应用逆向工程 」中文版和国际版都能大卖!
[data deleted]
iOSOpenDev的补丁~
之前写过为iOSOpenDev增加指定设备端口功能 (English ver. is here),今天在看LPI的时候,书中提到了Linux的内核升级,其中就用了patch来给内核文件打补丁。
这样的方式比起我当时给出的“自己对应目录层级”覆盖文件好多了,于是就当是学习diff和patch的使用方法,做了一个iOSOpenDev的补丁,不过我是按照1.6-2版本的iOSOpenDev做的,其他版本的没有测试。
Usage: sudo gzip -cd iOSOpenDev.patch.gz | patch -p0
Ubuntu中为何没有/etc/inittab文件
最近在看LPI的书,里面经常提到/etc/inittab,正当我想在Ubuntu里看一看这个inittab一般“长”什么样子的时候,系统却告诉我No such file or directory.
这不是很重要的一个文件吗!怎么就不存在呢!
阻止Reveal查看自己App的UI结构
Reveal已经算是逆向工程中常用的软件了(虽然它的本意不是用来逆向查看其他App的UI),为了保护自己的App不被其他人用Reveal来查看UI结构,我给出了一个简单的解决方案,当然,要是有人真的想逆向掉你的App,这也只是时间问题而已。