(30 gadget day 4) 那边有把吉他,所以 - MYO (2)

今天我终于把MYO搞好了。之前无论如何都Update不动,搜了下发现可以用“直连线”强制升级。Anyway,让我们开始想想这玩意儿能玩啥吧!

又到了这个点儿,家里又只剩下YubiKey等超弱智设备陪着我。就只能打打擦边球了,用手机来充当Gadget吧…

看了一圈MYO的market,发现基本之前想的一些场景都有人实现了。比如用手势来操作chrome,操作鼠标,地图,游戏,甚至trello。

好,吧,惆怅了,写个啥呢…

有把吉他

图片描述

抬望眼,看到有把吉他在远处蓬头垢面的看着我。再看我…再看我就拿你开Live!

嗯,万事具备,只差我不会弹,and没有粉丝了…

好,吧,那写个粉丝呗。请想象一下…“爷弹了个和弦,观众就掌声雷动!” O.O >..<||

图片描述

(30 hackdays day 18) Dexlabs – 有语言的逆向分析服务

以前我做过一段时间的Android逆向,当时是为了检查广告检查病毒,后来用来找到公开的intent跳转到应用内做搜索,再后来为了找到这些应用都跟哪些API打交道,从而统计SDK和产品之间的关联度。之后就再也没接触过这些了。不过前两天发现我还在订阅apk analyze的Google alert邮件,所以就决定再回来看看现在这领域都在玩哪些新玩意儿啦~(其实是找不到新API了吧…)

android-apktool

绝对的老牌选手了,从10年开始就在维护。貌似现在是Connor Tumbleson这家伙在维护。这家伙是Techcom Worldwide的程序员,看起来一直很专注在Android OS这块,以至于他的Vibe里只有两个Tag:Technology, Android OS。对比一下我的…唉,惭愧。(为毛会有粤语…)
图片描述
图片描述

丫做了一堆网站,看了下觉得都挺好玩的。另外最近他把Wordpress换成了Ghost,太酷了!有没有Ghost的博客托管平台啊!顺便再膜拜一下Brut.alll!

图片描述

先看看2.0.0RC2的样子。好久没用过apktool了,第一眼看到的区别就是-advance这个参数,高级信息…是个啥…其他的,似乎跟上次见到的时候无甚差别。不过根据文章介绍,ApkTool终于支持Java7了。

具体的逆向过程我就不讲啦,因为以前做过这个。

dexlabs

主角儿来啦。当我说Reverse engineer的时候,你应该就想到了Reverse engineer as a Service吧~是的,Dexlab就是这样一个产品。看名字就很明白啦,这是个以分析APK为生的公司。

图片描述

里面又碰到一个第一眼不认识的词儿Heuristics(这是要改成30天速成英语四级么…)。好吧,一会儿再看这到底是啥高级功能。

这产品使用很简单,注册个账号,上传个apk,等它告诉你分析完了,就可以开始看结果啦。所以这是个编辑都会干的活儿(没有贬低的意思=.=)。因为是静态分析,所以也不用指望有什么很突破的功能。通过首页的示例基本就可以看出其中一个很重要的功能应该就是类似IDA pro的关联分析静态分析功能。

GMS

普通的小应用不值得分析,让我们直接上大招,Google Mobile Service。这是一套Google在Android上的核心服务,在国产手机上基本不能有。

上传完以后就开始分析,着进度条晃啊晃啊的烦死了,既然你丫不知道进度就谦逊一点嘛!大概4分钟以后分析完了(27MB确实比较大,以前的经验来说这种程序如果是java的就会跑崩了…)。好,下面是大图!可以很快的划过去。

bigfile

这就是这个庞大的GMS的基本信息,就是APKTool能分析出来的那些。重点是看右边的那个Package Deps。好吧,完全看不出来啥了…基本也就能看出几种基本服务类型,Ad啊location啊啥的。

图片描述

最有意思的,是他们还为程序静态分析设计了一套类似SQL的语言,DXQL – Dexter Query Language。不过,通过他们在twitter上的这只推来看(只有一个retweet),应该不会有其他地方使用这种语言…

哦对,其实,这个平台主推的应该还是协作分析的功能。邀请他人来一起分析某个APK,听起来就跟搅基是同义词~

最后,我一直在寻找的API,在FAQ里找到了…

Which extraction/export interfaces does Dexter offer?
None yet. However we want to implement a SDK which can run on the user’s client computer for further analysis. If you contact us about that, it might help to schedule our priorities ;)

事实上,他们对很多功能的回复都是这个: If you contact us about…好吧,这是第一个没有API的XaaS。下次我尽量不那么水…

Google play crawler

With the code of Market API , Apk downloader, Playframework and some other code (reverse the .proto from apk downloader), I made a google play crawler. link

Here’s the .proto used the same way as in apk downloader

package com.google;

message MarketRequest {
		required AuthBody auth = 1;
		required group Pack = 2 {
			optional PackageName packageName = 10;  // android id converted to hexadecimal
		}
}

message PackageName{
	required string name = 1;;
}

message AuthBody{
        required string authSubToken = 1; // authsub token for service 'android'
        required bool isSecure = 2; // is this a secure request or not
        required int32 version = 3;  // always 1002
        required string deviceId = 4;  // android id converted to hexadecimal
        optional string deviceAndSdkVersion = 5; // ro.product.device ':' ro.build.version.sdk 
        optional string locale = 6; // ro.product.locale.language
        optional string country = 7; // ro.product.locale.region
        optional string operatorAlpha = 8; // gsm.operator.alpha
        optional string simOperatorAlpha = 9; // gsm.sim.operator.alpha
        optional string operatorNumeric = 10; // gsm.operator.numeric
        optional string simOperatorNumeric = 11; // sim.gsm.operator.numeric
}
package com.google;

message MarketResponse {
	required group RespBody = 1{
		required bytes header1 = 2;
		required AppInfo info = 9;
	}
}

message AppInfo {
	required group AppInfoBody = 1 {
		required string appId = 2;
		required string appName = 3;
		required string type = 4;
		required string packageName = 5;
		required string downloadUrl = 6;
		required string ParamGroup = 7;
		required int32 someId1 = 8;
		required int32 someType1 = 10;
		required int32 someType2 = 11;
		required int32 someId3 = 12;
		required string market = 13;
		required string marketDA = 14;
	}
}

在WordPress.com的博客.

向上 ↑