從業(yè)iOS后,也算兢兢業(yè)業(yè),平時(shí)關(guān)注一些OC,swift動(dòng)態(tài),看別人造的完美輪子來學(xué)習(xí),而自己造的輪子和自己做的飯有相同功效,只有自己能吃的下去。然而這并不是重點(diǎn),重點(diǎn)是自己一直忽略的ios黑產(chǎn),其實(shí)依然一片繁榮。
最近會(huì)幫朋友搞一些ios破殼和逆向、外掛的功能,也算是漲了見識(shí)。下面列舉一些常見的黑產(chǎn)需求:
- 修改別人游戲包,自己獲利。
- 破殼,用途太廣??捎脕硌芯窟壿?,也修改發(fā)布等等。
- 外掛。微信搶紅包,釘釘打卡等。
- 企業(yè)簽名。 昨天報(bào)價(jià) 8W,單個(gè)ios包簽名報(bào)價(jià)大多在 500以內(nèi),看來只是簽名,需要一段才能回本。
雜談:
時(shí)間久了,到現(xiàn)在記得的一些逆向過程中印象比較深的事情。
游戲啟動(dòng)的時(shí)候要驗(yàn)證授權(quán),沒有授權(quán)直接kill。
程序啟動(dòng)的時(shí)候,有6、7個(gè)方法判斷是否是越獄手機(jī),是越獄手機(jī)kill,加大逆向成本。
修改程序中的所有連接域名,換殼。
還有逆向的較量,別人加的外掛防破解,而你又要去破解他的外掛,逆向之防逆向。
下面寫個(gè)最近破解別人寫的外掛程序。
最近的需求時(shí)在別人破解過的包中再次破解。
原始App是一個(gè)保險(xiǎn)銷售使用的銷售軟件,被人破解,加入隨時(shí)隨地指定坐標(biāo)打卡。但是加了一個(gè)授權(quán)碼,收費(fèi)使用。
而我的需求就是在已破解的情況下,再次繞過授權(quán)碼。
通過抓接口,找到驗(yàn)證接口域名,然后確定是每個(gè)動(dòng)態(tài)庫(kù) 的作用。(以為是已經(jīng)破解的,所有 framwork目錄下已經(jīng)有了5,6個(gè)自定義的dylib)。
如下:其中真實(shí)名字已隱藏,畢竟搞別人的app不太地道。
.
├── isMe.dylib
├── JSPatch.js
├── RevealServer.framework
├── custom1.dylib
├── custom2.dylib
├── libsubstrate.dylib
└── custom3.dylib
經(jīng)確定控制驗(yàn)證的庫(kù)為 custom3.dylib,然后用hopper找驗(yàn)證函數(shù)。
void * -[Auth getUserCode](void * self, void * _cmd) {
r0 = [NSUserDefaults standardUserDefaults];
r0 = [r0 retain];
stack[2043] = [[r0 objectForKey:@"!@#$*@#(!@^#(!@^#(!@^#"] retain];
[r0 release];
stack[2041] = [stack[2043] retain];
objc_storeStrong((sp - 0x1c) + 0x8, 0x0);
r0 = stack[2041];
r0 = [r0 autorelease];
return r0;
}
其中 !@#$*@#(!@^#(!@^#(!@^#為key,我就想著直接在啟動(dòng)時(shí)寫入正確的激活碼就可以了。但是并不是一帆風(fēng)順,key其實(shí)和設(shè)備有綁定關(guān)系,這個(gè)被我忽略了,走了挺多彎路才知道。所以我還需要修改設(shè)備的標(biāo)示,繼續(xù)找。
r0 = [UUIDManager getUUID];
r0 = [r0 retain];
stack[1994] = r0;
stack[1992] = [[r0 substringToIndex:0x20, r1, stack[1964], stack[1965]] retain];
stack[1989] = [[NSString stringWithFormat:@"uuid=%@&", stack[1992]] retain];
額,然后在想辦法在 UUIDManager getUUID 返回已經(jīng)綁定過的UUID就可以。
這個(gè)算是通過了。但是要有一些dylib打包的錯(cuò)誤。這個(gè)都是小問題了。
如果是做ios開發(fā)的話,對(duì)逆向有了解的話,對(duì)開發(fā)和安全都會(huì)有提高,比如上面的key就可以不用寫成明文。
已經(jīng)建議我家萌小七(也是媛)看逆向了,不過貌似沒什么興趣。(無奈臉)。還是手把手教吧。