360nirvanteam · 2015/10/29 10:10
有公尺廣告平台為業界領先的移動資訊服務提供商優蜜科技™所有,總部和研發中心設在廣州,在北京設立分支機構。有公尺廣告擁有核心技術及完整智財權,並獲多項國家專利,在使用者特徵識別、精準投放、客戶端防作弊、廣告智慧型投放等關鍵領域遙遙領先。有公尺廣告瞄準7億手機使用者,致力於為數以萬計的企業廣告主提供精準的產品營銷和品牌推廣服務,為應用開發者創造公正和優質的廣告收益。
**是
使用者安裝在手機上的應用列表資訊;
在使用者執行舊版ios時,收集裝置的平台序列號;
在執行新版ios時,收集裝置的硬體元件及元件序列號;
我們nirvanteam也對此進行了詳細的技術分析。
詳細過程開始分析如下
目前網上不太好找這個sdk,而且有公尺也在努力更新sdk。
最後通過社工得到 sdk。
拿到sdk後直接 strings不能搜尋到url的, 劫持包發現了url然後分析發現url都做了編碼。 url如下:
主要是這個url在傳送資料
複製**
通過分析sdk 發現sdk通過大量的私有api。
逆向sdk分析:
通過分析url 去挖掘傳送的資料,sub_2de18 函式主要獲取各種資訊,如下如:
1) 其中獲取序列號資訊**:
ioservicematching("ioplatformexpertdevice")
io_service_t ioplatformexpertdevicev_ios_service= ioservicegetmatchingservice)(
addr_kiomasterportdefault,
"ioplatformexpertdevicev");
cfstringref strref = cfstringcreatewithcstring(kcfallocatordefault, ioplatformserialnumber_v64, 0x600);//creates an immutable string from a c string.
cftyperef serialnumberascfstring =
ioregistryentrycreatecfproperty(platformexpert, cfstr("ioplatformserialnumber"), kcfallocatordefault, 0) ;
if ( serialnumberascfstring )
}複製**
2) 獲得各種裝置資訊主要通過下面函式獲取。
getinfo_from_devicename_and_togetdict_infosub_1ec88((devicename, dict_v8);
複製**
傳入需要獲取的裝置名稱和字典資訊來獲取資訊,裝置名用於獲取資訊,字典是需要獲取的資訊。 函式**如下:
io_iterator_t iterator,iterator2;
ioregistryentrygetchilditerator(result2,"ioservice", &iterator);
io_iterator_t t = ioiteratornext(iterator);
char name[20];
ioregistryentrygetnameinplane(result2,"ioservice", name);
if([devicename isequaltostring: name])
複製**
3) 獲取uuid資訊
4) 廣告標示符(idfa-identifierforidentifier)
asidentifiermanager sharedmanager
複製**
asidentifiermanager
單例提供了乙個方法advertisingidentifier
,通過呼叫該方法會返回乙個上面提到的nsuuid例項。
nsstring *adid = [[[asidentifiermanager sharedmanager] advertisingidentifier] uuidstring];
複製**
5) 螢幕大小 960*640 獲取方式
[[uiscreen mainscreen] bounds]
[[uiscreen mainscreen] scale]
cgrectgetheight
cgrectgetwidth
複製**
6) 手機裝置型號獲取,如下圖:
如上函式假設引數*servicename_a1傳遞值為hw.machine時,返回裝置硬體資訊為iphone3,1
通過分析發現sdk 獲得了如下資訊(測試用的iphone4 ios7.12):
裝置的wifi資訊,
bssid = "d0:fa:1d:20:a:f8"; 這個無線ap的mac位址
ssid = "360wifi-200af8"; 乙個無線ap的名稱。
ssiddata = <33363057 6946692d 32303041 4638>;
複製**
序列號資訊ioplatformserialnumber 5k152fx7a4s
電池資訊 battery-id
攝像機資訊
ios加速度感測器 low-temp-accel-offset
藍芽資訊 wifi-module-sn
device characteristics tlc還是mlc記憶體
uuid 資訊 a2ab842508133b62b680b5f9efa1cd51
充電次數 cyclecount
廣告標示符(idfa-identifierforidentifier
)112fb7fe79fb4b7abf7a8e2ecaf57147
__udid資訊7a32771c3adf2ad0564c3cb2d6920bc6ef9818b7
螢幕大小 960*640
手機裝置型號 iphone3,1
裝置名稱資訊如d. vice:iphone3,1 jailbreak:1 os:iphone os version:7.1.2 name:「panda」的 iphone model:iphone
獲得這些資訊後通過 deflate 壓縮,再通過一次混合加密傳送出去。加密過程如下圖:
經過加密後將資料整合到url上,發後通過post方式傳送出去。
傳送加密如下
nsurlconnection_start
複製**
加密資訊解密如下:
;
fcsn = "";
gyo = "0.000000,0.000000,0.000000";
hv = 2;
ifa = 112fb7fe79fb4b7abf7a8e2ecaf57147;
ifat = 1;
ifst = 3155986;
ise = 0;
jb = 1;
kernid = a2ab842508133b62b680b5f9efa1cd51;
lat = "0.00";
lc = "zh-hans";
lon = "0.00";
mac = "";
mcc = "";
mmcid = "";
mnc = "";
mod = iphone;
odfa = "";
oifa = 112fb7fe79fb4b7abf7a8e2ecaf57147;
osv = "7.1.2";
pd = 3;
pn = "feng.youmiwallsample";
po = "iphone os";
rb = "-1.000000";
rt = 1445444547;
sh = 960;
smv = 1;
sn = 5k152fx7a4s;
spc = "";
ssid = "tp-link_2510";
sv = "5.3.0";
sw = 640;
tid = 005ecs1rcn0k1dltd0o8dngsruf;
ts = 0;
udid = 7a32771c3adf2ad0564c3cb2d6920bc6ef9818b7;
usb = 2;
user = "this is user";
vpn = 0;
wifisn = "";
}複製**
1)有公尺sdk主要用於統計裝置型別的使用情況,這樣來對市場形勢作出判斷來獲取利益。
2)私有api如果通過靜態掃瞄的話意思不大,一般能通過蘋果審核的,私有api都是經過處理的,所以檢查私有api要通過動態hook的方式去檢查。
附件:有公尺ios惡意sdk感染列表
對iOS惡意軟體Unflod的分析
tdvx在reddit上發帖說 從上週起,他用snapchat和google hangouts的使用經常遇到crash,經過排查,他發現是下面這個可疑檔案導致的 library mobilesubstrate dynamiclibraries unflod.dylib i0n1c對這個可疑檔案進行了...
華為收購港灣核心業務 有惡意收購嫌疑
任正非 李一男一笑泯恩仇?糾葛多年的華為 港灣恩怨出現戲劇性的一幕 昨天,兩大 冤家 聯合宣布,雙方就華為收購港灣部分資產達成意向協議書並簽署合作諒解備忘錄。該收購案引起業界 大 如此不可思議 頗具喜劇效果的 大團圓 結局,似乎意味著業界赫赫有名的任正非與李一男 在成為師徒和對手之後已經一笑泯恩仇。...
紅公尺note9和紅公尺note9s有什麼區別
紅公尺note9有著一塊6.67英吋的lcd螢幕,解析度為2400x1080畫素,最高支援90hz的重新整理率。紅公尺手機爆降500這活動太給力了 機會不容錯過 紅公尺note9同樣採用了6.67英吋的lcd螢幕,2400x1080畫素解析度,91 屏佔比,hdr 10技術加持。紅公尺note9採用...