AppShopper 导入Appstore 历史购买记录

功能页面:http://sskaje.me/sskaje/appstore2appshopper/ (执行速度很慢,建议下载源码自己跑CLI)。
页面源码 http://sskaje.me/sskaje/appstore2appshopper/?s ,各路代码在 https://github.com/sskaje/appstore

以前写的iTunes Gift Card AutoRedeemer在 /index.php/2012/03/itunes-gift-card-autoredeemer/,这个版本把代码集成进去了,但是没测能不能用,因为现在自己没需求了。

iTunes Appstore这边没啥可说的,抓包就是了。

关于Appshopper,一开始的实现方案是使用他家的iOS App,用Charles Proxy抓包拿到完整https的协议(关于Charles Proxy的破解点这里),前一天晚上看了下他家网站提交数据的参数。发现如果需要把某个App添加到wishlist/myapp里,app id能直接拿到,但是还需要查到一个updateid。这个updateid从他家网页实在不好查,虽然可以匹配,但是流程会很麻烦,好在他家iOS App有个detail的接口,能拿到包括 updateid, wantit, ownit 这样的字段。这样实现起来,就逐个app地去查updateid和是否已经添加到wishlist/myapp,若未添加则执行添加。效率堪忧。

Continue reading “AppShopper 导入Appstore 历史购买记录” »

AppShopper 导入Appstore 历史购买记录 by @sskaje: https://sskaje.me/2012/07/appshopper-%e5%af%bc%e5%85%a5appstore-%e5%8e%86%e5%8f%b2%e8%b4%ad%e4%b9%b0%e8%ae%b0%e5%bd%95/

iTunes Gift Card AutoRedeemer

应该没人会有需求,具体应用需求来源不说了。

最开始一直想研究itunes的下载协议,但是中间因为某些原因,先搞了这个。

基本只是实现了登录、load redeem页(有form token)、提交请求(pc端有校验,相当于确认过程,需要输入apple id和密码)。

具体代码在http://sskaje.me/sskaje/code/itunes/auto_redeemer.php,敏感字段已移除或xx掉了,细节没处理,姑且看个协议大概。

用法:
php auto_redeemer.php XXXXXXXXXXXX
php auto_redeemer.php itunes.gift.card.list
php auto_redeemer.php

后两种使用文件,每行一个code,第三种情况默认取itunes.log。

至于下载协议,由于有个签名字段,一直没搞定,半吊子逆向能力,等有空再研究,一直有个设想还没去验证。

iTunes Gift Card AutoRedeemer by @sskaje: https://sskaje.me/2012/03/itunes-gift-card-autoredeemer/

Patches for SphinxSearch Supporting 64-bit Range Step & 64-bit Search Filter

sphinxsearch. Patches available for 2.0.3-release, 2.0.4-release.

当configure指定参数 –enable-id64 时

1 增加 sql_range_step 字段的64位支持
2 调整 bin/search 的filter值为64位

Patches:
for SphinxSearch 2.0.3
for SphinxSearch 2.0.4

示例:
tar xvf sphinx-2.0.3-release.tar.gz

cd sphinx-2.0.3-release

patch -p1 < ../sphinx-2.0.3-release.64.patch ./configure --enable-id64 --prefix=/opt/sphinx203 --with-mysql make -j4 install cd /opt/sphinx203 ./bin/search -c etc/sphinx.ticket.conf -i your_index_name -q -f bigint_field 1110010011010313572

Patches for SphinxSearch Supporting 64-bit Range Step & 64-bit Search Filter by @sskaje: https://sskaje.me/2012/03/patch-for-sphinxsearch-64-bit/

由一个扯淡需求引出的关于Charles Proxy的破解

UPDATE[2013.01.04]: Keygen for Charles Proxy: Login to read more

其实是想研究iTunes的协议然后写个限免自动下载工具的,之前的技术调研没看到网上有现成的实现,所以只能靠自己研究。

Wireshark抓到Client Hello的包能看到两个域,se.itunes.apple.com和p46-buy.itunes.apple.com,p46这个之前试了下,p后边的数字可以从2到50,不过只是半折法试的不保证准确。

知道域名之后,下一步就应该是搭一个https proxy然后将客户端的请求重定向到proxy上。我选择了本地的nginx+修改hosts,然后这逻辑很2的死循环了。后来换用虚拟机改hosts访问宿主机nginx,结果access log里是400的错误。curl直接访问 se.itunes.apple.comde https,得到的响应是503。试图看nginx代码,加个完整请求的日志,然后周六晚上看着看着就睡着了 = =

更早的,为了分析某iphone app的请求,php写了个代理工具,增加了几个数据处理的handler,直接nginx把所有请求fastcgi传到这个php上来,curl转发请求。这次连请求都进不去,自然也用不上了。

昨晚跟@透明de面具 讨论了实现方案,才知道有个叫 Charles Proxy 的东西,找到了Windows版,下载页面上提示需要64位JRE,于是断定核心使用java写的,准备下载下来反编译然后keygen it。

下载,安装,查看安装目录,找到jar包,用 JD-GUI 打开看,代码还原度较高,随便开的几个class文件都没乱码。释放所有源码,grep了几个关键字,找到了Licence的文件,拿过来,反编译,扔到vps上gcj编译,结果各种报错。找 @吉普 请教后找了Eclipse来Quick fix,不过很多错误全都是cast的,long/int和int/long,不分析一下数据根本没法搞。折腾了几个暴力fix,重新编译出来的几个key不可用,估计是算法在fix的时候被毁了。后来试图直接null几个public的方法,重新编译打包运行,程序起不来。

Login to read more
# EOF

由一个扯淡需求引出的关于Charles Proxy的破解 by @sskaje: https://sskaje.me/2012/02/crack-charles-proxy/

12306刷票记

我也记不清啥时候动了写bot刷票这个念头的。原因很简单,我一直认为作为一个以代码谋生的不合格程序员,只有把生产工具用好,才能增加自己存在的价值。

首先说明一下主要开发环境:Windows 7,PHP 5.3,php_curl。

翻到了 第一条关于刷票的微博,附了图

很不低调地炫耀。

要刷票,首先自然得熟悉目标系统,所谓踩点。firefox+firebug,抓了一个标准流程的请求:登录、查票、订票。确认订单一开始没敢点,怕会有什么影响,后来去注册了几个测试号,然后尝试了确认订单的操作。流程本身不复杂,但是提交参数有点太多,一步一步来。

回到图1,登录,其实核心在验证码。

Continue reading “12306刷票记” »

12306刷票记 by @sskaje: https://sskaje.me/2012/01/12306bot/