




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、梆梆加固方案分析和破解-論梆梆安全加固的不可靠 TOC o 1-5 h z HYPERLINK l bookmark7 o Current Document 、梆梆安全加固方案技術(shù)分析2 HYPERLINK l bookmark13 o Current Document APK包文件特征2 HYPERLINK l bookmark19 o Current Document dex文件分析3 HYPERLINK l bookmark28 o Current Document SO文件分析3 HYPERLINK l bookmark94 o Current Document 、梆梆安全加固破解9、
2、梆梆安全加固方案技術(shù)分析樣例分析環(huán)境:APK包:齊魯銀行運(yùn)行環(huán)境:安卓模擬器CPU平臺(tái):ARM平臺(tái),(X86暫不分析)分析工具:JEB,APKIDE,IDA 6.6及HEX編輯工具等(1)APK包文件特征山| assets2O15/&/2S 10:39lib2D15/B/7 13:50META-TNF2015/&/7 13:50M犢Je res.2015/8/7 13:50邕 And roi dM ani Fr-stjcm 12015/5/2019:52XML建B KR|a 1 cldssesides2015/5/20 1452?E 牛27D KEJ clessEiSidex.2015/5/2
3、0 19;52JEXxW24 KBj reEourcEE.arsc2D15/5/20 1S52ARSC女件62 KB圖1齊魯銀行apk文件結(jié)構(gòu)圖1可見(jiàn)classes.dex文件極小。非應(yīng)用真正的dex文件。m eta-data2O15/B/7 13:50:E骸J.rooKA215/BP 13:50Bgenk.jo-nJO15/5/2D ig:5iJSDN立件55 KB些bangde_cla5se5.jar2O15/5/2D 19:52Executable Jar file159 KB1Jcam.rytnng.ba n kql.newql2M5/5/2O 19:52NEWQL 球10 KBcom
4、.yiong.ba n kql.newql.a rt2O15/5/2D 19:52ART翊52 KBcam.rytcing.ba n kql.newql.Ji ri.H2015/5/20 19:S2網(wǎng)翊74 KBcom.rytongba n 2O15/5/2D 19:52L*10 K0com.rytong.ba n kql.neqLxS62015/5/20 19:52ME6海5 KBcom.rytongba n 2015/5/20 19:52L翊6 KB.一、EULA2D15/5/2D 19:52文件1 KBrt.html2O15/5/2C 19:52360 st HTML Do.2 KQli
5、bDejcJH&lper.so2ad 淑&wo2D15/5/2D 19:52叫辨6 KBproducts2U15/5/2O 19:527 KBrelagin.ht也習(xí)5加19:52曳由.文檔亦B|shopping.him 12015/5/20 19:52孑60 sr HTML Dq.1 KB-station.json2IJ15/5/2D 19:52JSON女件129 KBtimeaul!2M5/5/2O 19:S2玄件2 KB圖2 assets/文件目錄梆梆把SO文件都放在assets中。圖2中比較重要文件有:,m,4個(gè)so文件以及一個(gè)jar文件 ”私心心(2) dex文件分析E- _j sm
6、:liE)5E白啟se cne o)印 ard但 UZall. smsli- R Xppl l i: at i unWr apper. zmali-Isj FirstAppli cati un. Eni:liHelper.鄒ali,5, HelparX86. snuili5| MjlassL&ader. smali圖3 dex結(jié)構(gòu)代碼中能看到的so調(diào)用有2處:ACall中的libsecexe.so,以及Applicationwrapper中的 libDexHelper.sOo初步總結(jié):根據(jù)apk包文件結(jié)構(gòu)以及dex逆向中可見(jiàn)的調(diào)用關(guān)系,大約可推斷出梆梆整體的 保護(hù)策略:多層次,明暗集合。(3)
7、 SO文件分析開(kāi)始詳細(xì)分析梆梆的SO文件。根據(jù)上面幾個(gè)方面的觀察,梆梆具有4個(gè)so文件。2個(gè)為顯式調(diào)用,2個(gè)為隱式調(diào)用(調(diào) 用代碼隱藏在so中)。1)四個(gè)so相互調(diào)用關(guān)系:本人的初步研究:首先,Dex中的ACall調(diào)用libsecexe.so ,其次,調(diào)用libsecmain.so,再 次,Dex 中的 ApplicationWrapper調(diào)用 libDexHelper.so,最后,libsecperload.so 這個(gè) so 文件 很奇怪,好像并沒(méi)有被調(diào)用過(guò)。2)四個(gè)so各自特征詳細(xì)分析:* libsecexe.so文件大小81KB,破壞參數(shù)ELF中的section節(jié)表信息,采用加殼保護(hù)變種
8、UPX殼(無(wú) 法使用工具直接脫殼),函數(shù)和變量名都加入混淆處理。展 Chanie segment ta jumpNameSiartEndR.W XD LAlignS-35-TgClassADTD5*LOADOOODOOODR- Lmempage01publicCDMDD01 8建EX1DK0002 57ECDM25DBCRLdword03publicDATA32OT03非LOAD0002AC14DDO2CWCR- L02publicDATA32DD03非ewtein0M2C2307- Lpublic32DOC4ab-s0002C5F4QDOM60077 ?. L05public3200D5圖4
9、僅存在段表,upx加殼(elf文件)特有段表結(jié)構(gòu)NameAddressp E 59F6A&F7E9BC-1BC91&3 B FF9F72 Bl 349000043 DCP&A5AA58BE15 27AD92 9SAE6CA4214E3650002 CD A4PEAEO9FC1D43 B26E F272 F4502CSB9A7610002 C12SP5 9E15 5 66C42CE1727 7A&EC11B D4&E 66DODOJOJECpDA2 F8AEF2 T11C2 63A82E E7F46305 B 84E0002 Cl 34p5 6F69F7F4817FCDB 5 C6FF3 342
10、 27256250002 COESpOCB 333563S19 DCSA1657DD941AE75 D34000M4&0P&UE2FEC9A5 C2 5721Z 97C451F5 BA915 E00004510圖6功能性函數(shù)和變量名混淆I UeiD:H3M2ECLOHO:Bt41S4F0 .iOgDzDBM24F1 .ngDzU:Bt41S4Fl| .ngDzrJQM4FU .iDgD:meQiS4FU LO”W1W6F1| LDMM。朗 NF, .iODzH3M24F14 卬N叫1W6F斗 loho: gtmseFH 杪“二禎朗 LiODzH3M24FU LUflfr-ASgrlE.ngDz
11、rJQM4FU uaDzineQissLOIIDi:Ot412ti| LDMM。朗MM L0ADi:niB2t*KPftclt2lflCr fodK晦仲的i知眄配B斑Ik跋明L毗ff, (IX211A3eBB 站最四.責(zé)皿倡映四. RH?D1UBV 御1EEW眄 血F03ET肺 &匚9驅(qū)的鏈. mEI即I囊, EE5跚肺 eE3H:geBa由日rmm. OKE3F7tE4IID IB, 或ME媚SI. UwiaEHBKIi kWQQv *XF明 BFS% 師城部的 16. txE1SI16ftdH112BS6fr 機(jī)網(wǎng)*gaki1S9tn2.5xES1ft53BDA1Z, 找flM:HE3Bf
12、llT7nR XQW1CM ftc1AaiMl2 7, MEIfliBCBIC r M53:3r E*師C 峰 齡甘Ai陌卸虬 MEIgCim p X”網(wǎng) MC.flWEfltlll QiGe EhdEFaEIIBII IL技HE溥bW6C, ioxeisiiheix), 的E滸潮. ME34H 粼|過(guò)4E2mM: MSCMfliS mxESCMHi SfE拆W網(wǎng) 鍬“偵境(2 ajcEHsniHSflfliSTW&spfj 航nifw弛協(xié)枷頃t4*a IB史.HLIMi.IMflLlM整.ST廣LOUD*qgiQ 就 waCHPHEKv麗岫”師SiLUM航日蛀,驅(qū)頌此Kr r&t iioaL
13、(W日鵬亶7鄰AMDS“sp, sFsfi maLA.b0仲蛀加闿fiOCCSt5- LftT hbEL(WSTHPIFP5FTb E驢HLKLR卜LR廣LiiaD-由的映乏維!rc. (&P4-SP4L181VfLJDDBJHlfffJSJCSTRUCT,F(xiàn)nJp-SPpIHtRLiiaD-最缺乏而碩CM略 i. R+ R4+LS1 LRl】EQIIIIST4idc rpWp & EP,.c1Src7p 5LiiaD-EBQ缺找8LDrhlliQ!t#tH (IR2.AMlria.Rn2.LA.PCLimEUW&E2TCII DHLSspp KFtg.-oiinaRia-i urn缺乏四ST
14、RMLA (Ptl-A12l.LRni2L(J9DHIIII 駐 Wgii diiii ibtSTn IRn,IRT _RJihRr.,lgB J.R1 3-E12TLRwwWCPlSKLSt PIL(J9DEIIIIQE2KT51t&,110k IMOLUM0010耐網(wǎng)0fHLGEL(J9DBIIIIQe?MIBLNLIW。四就W網(wǎng)iphpib略M-gDNHIII*kllllOESWSDRHxIlFDHH?L04I7E1LSV2b4QiaLUM航日蛀加此5TCCP?!?e6t JfiU b#-I1k2ECVWR.ZM-Lai:偷H蛀加。此0缸村姑麗區(qū)。皈皿HOfhRL 54311-U.鹽。M
15、 睇IN.盹,皓L1W。醐1晚甜咽DCD* ONE由MEE 93。滿F曲叫網(wǎng)那iEAO網(wǎng)那SfEm”E8F*仆93研i u roEllflKJAH|g礎(chǔ)牧跖眥.。航1晰日他DkL 株岫#帕網(wǎng)aMCWlF而孔 蛇EHMWM圖8 JNI_OnLoad函數(shù)加密字節(jié)特殊處理綜上所見(jiàn):該SO文件反映了梆梆加固機(jī)制的大量技術(shù)信息。但其核心技術(shù)只是國(guó)外開(kāi) 源的UPX殼。在本文的最后會(huì)針對(duì)UPX殼逆向分析的情況進(jìn)行一些細(xì)節(jié)說(shuō)明。通過(guò)技術(shù)手段進(jìn)行手工脫殼,并dump出so在內(nèi)存中的map并轉(zhuǎn)存二進(jìn)制文件。因Dump出的二進(jìn)制文件,本身無(wú)法修復(fù)elf段表和節(jié)表(手工修復(fù)工作量大),所以在分析 過(guò)程中,結(jié)合了 ru
16、ntime動(dòng)態(tài)調(diào)試內(nèi)存技術(shù)。LOADlibsecexe.sadebugOlSEXIDXdebugOSOlibsecexe.scLOADesctsimdebugOZldebugOScom .rytong. ban kql. q l_2. spk debugD23dalvi k_a ux_Etrurtu red ataa pp com. iryton g. bu. com .rytong. ban kql. q l_2. apk com .rytong. ban kql. q l_2. apk debug0i24d&buq0i25AEFC&OOOAEFDB3F4 AEFDCOOO AEFEDBAC
17、AEFEDEMAEFF2OOOAEFF2CO 匚AEFF415CAEFF424OAEFF4614AEFF462OEFF5000AFOOOOOOAF006000AF007000AFDOEOODAFOIFDOOAFD27ODD AFQ4D-MHDAEFDB3F4 AEFDCDOO AEFED&AC AE FEDE 84 AEFF2000 AEFF2C0C AEFF415C &EFF424。A.EFF4614 AEFF4G2D AEFF5OOD AEFFDOOO AF005000 AHD07000 AHDOEOOOAFaiFooa AFQ27DOO AFO4DODD AF04EOOO圖9-1脫殼前的
18、so在內(nèi)存中段布局Name匐 da捉 debuOOlMl LOAD5r debug網(wǎng) 耄 FY:ny 翌 debuSr LOAD i &Krn知IdR&3tMCl A&5D3OM 菠EMM &B6F舛 AR7flF7=f AB711EDBC 廂: AB71.3OX) EmncM AB71214CErdJk&6fC3UAB7QE7ECA&7nrnE%rJIE.713OM-AB713C14DLAlign1叩Oashyt中pjhlkCO&EDbyi&publicCODELmtrnpagipublicCODEDbytepublicCOSELIpjhlir口3DbytepublkCODEDbytpub
19、lieDRSDbytepub lieCONSTLmnpgg 自publicDATApublicX X X XX: ? -W - - J - W 7- RRR.CCKRR.用 R?T 腿 g ot flO 01 M 03 W Cl g c$ iKi 01 M 01 w ca M 03 0037debuiqDOiABJlSJaQmm沮DOpjblicA1A 一妲一 ttO01hAD7155F4?. Lps 由05public32K05debugOtMAB71TOMa memoR WD . byteMpublicWTAM01debu gM7AB71OTM. a u D . byteMpublicDA
20、A32K01tAS717&XIR W . D . bytMlpciblicDA1A技M01zomrytoNQ ba kqLreqL,ABS140X)AB&1D000R B r D . byte&DpublkCONST32W01A&m23flNameStartEnd圖9-2 脫殼后的so在內(nèi)存中的段布局因?yàn)閁PX為壓縮殼,所以原加載入內(nèi)存的elf各分段被動(dòng)態(tài)解壓到內(nèi)存中,如LOAD段 下方的debug002實(shí)為L(zhǎng)OAD段解壓還原后的代碼及數(shù)據(jù)信息。其他各段類似。此處也可看 出無(wú)法dump出完整elf的原因了。Upx解壓時(shí),并沒(méi)有還原section和segment,實(shí)際也沒(méi) 這個(gè)必要。LOAD礎(chǔ)耐
21、2磨。_init_procLOADuum2&F0MEIHUP1 DAD6R012fiF2PUSH(RB-R7PLRLDflDBU0126FJI炒huhR3. 0K126F81 DADOQOr12fiFdHOUSRLLOADBm2iF89紂SUUSRL 昭 R11 DAD24nousR& R1LOADBU012iFC24nou 5LOAb6BB12fiFE0211ADDSR23 R私 R2LOADUB0i2?08U24LORR4. R1LOAbCD0127S20211SUBSRS3 R5, RALOfiDBIB0TJ27 04024I0RR3a R1aJt(loc_12*E4 - 0k126EB
22、)JLOIiDiODCT127 0602UADDSR3, R3, H5LOfiDBB0r(27 08024I0RRS. Rl.ltgxCL皿Oflm27 0A02UADDS嘰 RQ, H5HAHMHHI/HI:M加HOUSR1, HHxl:LDfiiDOBm27 0E624ADDSRL R1s R1HAHnum/inMXAODSR1, R1,瞞LOniD60012712024PUSH(B3LOAD8091271428SUBSPa SP, WBLUGBm2?1663 BPUSHLR1 DADCR0i2711 DRRL ML 姬LOIHiD000127111034ADDR1, M0 xC1 DAD
23、CR0i271CADDS,R-l ? Rini noD由_h laauu圖10相對(duì)圖7這才是真正的so入口點(diǎn).init_proc源碼,即upx脫殼代碼0H9OE244JHII_Oriitoaduar_C=-M:uar_.8二-8fl叫叫跆UU -U0000E24STRlflSP,War !眺心岫。幽iLDR禎wSB0090E24C沖SUBSPaSPa flfiMCBdKBIEZSiIJ H 0ROD&Lsf a aHxi009DE254maHOUR2MOg 口匪芝如ui aSTR2 =nias-m*。曲UE瀕HOUR2,ttDxIflBQO0000E269LDRR3R3 aWJiNl InMo
24、kelnterFace .GetEnv印U9UE芝64oneHDDR2,%的0000E26BLXR3QE26CUH 0CMP&L0000E27 010HOU HERD,岫FFFFFFFFS1S113EE27UUH 0BHEInc:E2CO000E278moBLJ Hl.J-23 61C ;效驗(yàn)函數(shù)-判斷運(yùn)行環(huán)境0RPI0E27CLDRRL-Clword 2仲殘 - 服E2d 幻LDR禎wpe9RS ; dmrd 2神40000E284UH 0STRLDHR%盹,B3;保存dvflartHl制到參二個(gè)* 5P,asx1IHuar_C;估引日堤eno指豐eflBOE28C010BLJNI._2_f
25、i1?8Cg 口 glE紂日IJ10HLJ HI3麗如E刎明0HOURO.cm0000E29Cloc_E?e:UUlfL XKU : JH1 UnLaad ut-j0000E2VCHDDspaSPa fflfiMCQE2fliQrmLDMFB3P!,(i0 - Bw23m)0Uki23mLDRFEL =(a5teinLibLibdm -知網(wǎng)珈1切0tiW029SUBSP+ 5P+ ttllxBCLDRFiC.R陣:dwDrd_ZflDS0 ; sl:ack_checikmw普脂0LDR鳴i叫j0002304MDUJf no0Bfl2308ABDne, PC. R1 ; /Eyfitera/1
26、iD/lilnluni-soB,0233CSTRR3,用蹄236MBL疝E5S ;可育.勺查看文杵是否存在ULid23Ui顧RS.P R。60623 MSL咔RL =(astemLibLibar - &網(wǎng)。58)如船岫MDIIRi+ ttOADORffl.p PC. It。 ; B,/systen/liU/li&aKt-soB,EJLacicees由弱R皿00023 05CHQUIGGR知膈0023060CHFRS,擁23mBHElot 239CC ;返回岫網(wǎng)如&CNFRtU 廿U0yid23wtCBEQ1OC_S0A8卵披日胸W辨邛l(JC_2307fl;CODE KREI : HaM:0H
27、ffli2i0CC4j0002307 0LDR- ( a Per sist_ys_tlla - ft23i3fi0)叩月卻昭斗皿R1, SFr 14002397S皿RL PC, RO ;配置文4知可以查看或切換。的柬lt模式明胛3的CBLsub MAS ;返回 R9 = 9LDRR1.P =(aLibduri - 株舞函們CNF能.itu :根據(jù)查詢結(jié)果,盲堰動(dòng)態(tài)運(yùn)行環(huán)境Mtayi ie盛 * ttfll圖 12 JNI_OnLoad 的個(gè) sub 函數(shù)至此libsecexe.so的啟動(dòng)代碼部分大概流程解析出來(lái)。其中功能性函數(shù)與dex有關(guān)的很 多。本人搜索了一些關(guān)鍵詞。發(fā)現(xiàn)前面提到的一個(gè)ban
28、gcleclasses.jar這個(gè)jar包也在該so中 處理??偨Y(jié):該so的特點(diǎn),加殼,名稱混淆,但未混淆函數(shù)實(shí)現(xiàn)。獲得dex修復(fù)功能,與classes.dex 和bangcleclasses.jar通訊交互調(diào)用了一些功能函數(shù)。*libsecmain.so第二個(gè)核心so文件。根據(jù)對(duì)libsecexe.so的研究。Libsecmain屬于隱式被調(diào)用者,調(diào)用者很可能就是classess.jar這個(gè)jar文件(本人猜測(cè))。文件大小157KB,破壞ELF中的section節(jié)表信息,采用加殼保護(hù)變種UPX殼(無(wú)法使用 工具直接脫殼),函數(shù)和變量名都加入混淆處理。雖然本so與libsecexe.so的保護(hù)
29、方式幾乎一樣(采用同樣技術(shù)的重復(fù)的圖就不截了)。初步分析后,發(fā)現(xiàn)它仍然有一些自己的獨(dú)特之處。(1)無(wú)JNI_load函數(shù),說(shuō)明該so為純被調(diào)用者。被java或其他so調(diào)用。自身不會(huì)去主 動(dòng)調(diào)用java相關(guān)代碼,如:jar包,dex文件等。(2)新增混淆IDA解析能力,偽造了一批函數(shù)。比如:把入口函.init_proc的代碼放在 另一個(gè)函數(shù)內(nèi)部(對(duì)于elf文件來(lái)說(shuō)關(guān)心的定位并不受影響,程序仍可以正確執(zhí)行)。suesftDBSRLR3, R1R1, flOLM叫.rmSUBS咕,RS, RiULORR3.|f1F#(off je6EftflFFIi -職時(shí)E的FF町 JADDSIR3.R3, R5
30、OCB ifeCO+ EI6B顧SRfl,盹REMHOSRLADOS嘰i1GOOE32SIOLTni,胸/- DxiWLIWLOAD LQM LDAiD ILIUM LOAD IL麗D LDAiD LDAiD LDAiD IL麗DLOAD LDAiD Lg 頃M LOADLDAiD LDOD 頃M LOADLDAiD LOAD LQM LOfiiD LIW LOADLQMLMD ILIUM LOAD IL麗DC0DE16HOUSR0-R?LRR3a kE16EADtHr r 1 :,L0AD:B6EAFFGL0AD:B6EAFFG 10C_iER9FFG;CODE HREF: LDAIL0AD
31、:B6EAFFGADDSPBSPB 時(shí)LOAD:B6EA9FA0EXPOIITyOyMPiDFfiCSEC27E5L DAD i B6EA9FA OhlB角DF AC5EC27E5Q6EAASCQ B6EAA0tl B6EM02 BAEAftOflU Q6EAA6flfi B6EAA0BB 日底EMW麗BAEAftOflA BAEAftOflA B6EAA0BCC0DE1&WFPUSHEKPDRT p5Efiefl2ft9gCiaC731EF7EEiEitt2F0in37ep9CWBgHEaS?C1BC731EF7BI*UD2F0FB7Osuespa sp,掀圖13可見(jiàn)B6EAA000是真正的
32、入口點(diǎn),因?yàn)殡[藏在另一個(gè)函數(shù)內(nèi),IDA無(wú)法按照單一獨(dú)立函 數(shù)進(jìn)行解析(且母函數(shù)本身也不一定合法),導(dǎo)致解析能力明顯偏弱,很多東西無(wú)法正確解析,靜態(tài)環(huán)境就需要手動(dòng)修復(fù)(關(guān)鍵是要重置函數(shù)上下界)。只要能動(dòng)態(tài)調(diào)試起來(lái)影響到是 不太大。觀察該so中未混淆的函數(shù)so_main(dlopen打開(kāi)libdvm.so和libc.so ,通過(guò)dlsym獲取多個(gè)進(jìn)程操作函數(shù)fork, ptrace, wait, kill, mprotect, waitpid,雙進(jìn)程反調(diào)試功能就在該so中,getpid),該函數(shù) 執(zhí)行結(jié)束后,進(jìn)程列表中將會(huì)有2個(gè)。mykill,init,libc_pread64等。處理過(guò)程中多次申
33、請(qǐng)動(dòng)態(tài)堆內(nèi)存,其目的還需深入研究。觀察了一些混淆的函數(shù)發(fā)現(xiàn)該so中有不少open和fopen操作,可見(jiàn)有進(jìn)行讀寫文件。綜上所述:該so的功能大概有2方面:1.開(kāi)啟多進(jìn)程反調(diào)試保護(hù),2.文件恢復(fù)(極可 能是生成classes.dex文件,當(dāng)然生成一個(gè)半成品的dex文件),因?yàn)闀r(shí)間問(wèn)題暫時(shí)動(dòng)態(tài)調(diào)試 只進(jìn)行到多進(jìn)程保護(hù)部分就被卡住,后續(xù)準(zhǔn)備細(xì)致研究后后把多進(jìn)程防護(hù)功能關(guān)閉后,再繼 續(xù)往下調(diào)試,以便獲得更多的信息。*libDexHelper.so文件大小458KB,很明顯該so的核心功能就是修復(fù)dex文件。libDexHelper.so啟動(dòng)前的內(nèi)存系統(tǒng)和文件系統(tǒng)實(shí)時(shí)情況:_a61iiR aR1 u0_
34、a61 u0_a61 u0_a6162809 2015-0?-11 0?2015-09-292015-0?-112209UY7219881S3361_a61_a61_abl2R1R-R9-292015-09-292015-09-292015-09-29&2261S005S13432nWu0_a61u0_a61u0_a61wxit 1139484N484839395131classes.dex classes.jar com.ptcng.hankql.ql com.pytcng.hankql.ql.art cunt. ry Cony . bcti-ikq!. ql. dr I . 20 libD
35、exHe lpeib - so 1 ihsftRRYft .Rfl libsecmain.so libsecpje load.so optIu0_a61117957195716 18996 U0_a6111971179uB_a6111991197圖14內(nèi)存中進(jìn)程情況,可見(jiàn),1197為核心進(jìn)程,1199為反調(diào)試子進(jìn)程圖15執(zhí)行文件夾內(nèi)的多了 個(gè)720KB的classes.dex顯而易見(jiàn),經(jīng)過(guò) classes.dex(24kb), classes.des, libsecexe.so, bangcle_classes.jar classes.jar,以及l(fā)ibsecmain.so等幾個(gè)模塊的前期處理
36、,生成了 一個(gè)待修復(fù)模版型的 classes.dex(720kb)。經(jīng)過(guò)測(cè)試,該classes.dex為非法不完整的dex文件。至U此 classes.dex(24kb)中的 ApplicationWrapper 去加載 libDexHelper.so 進(jìn)行運(yùn)行時(shí)修復(fù) classes.dex (720kb)。該so的特點(diǎn):1未加殼2未破壞elf文件segment和section表3入口點(diǎn)為start函數(shù)(未加密,存放在自定義代碼段seg011中,大量code也在該段中)*libsecpreload.so文件大小14KB,極小型。該so的特點(diǎn):1內(nèi)部?jī)H1個(gè)函數(shù):strlen,感覺(jué)函數(shù)名與函數(shù)功能
37、無(wú)關(guān)2 無(wú) JNI_onLoad 函數(shù)3未加殼4未混淆.text :uutiutiuLyEXPORTstrlen,teKt:G9600C58strlennnnSTHFDSP?, RD, RO, HI01111 uCMP010BNE1OC_C88.tcNt :uutiiitiuyU1URSDRS, RM, RS.text.textlocret_C9C:CODE XREF: 5trlen+24i j,teKt:G9606C9C010LDI1F0SF?. RD, PC, R0; -LB PraELOfl SECSD.t&Xt:UOUOUCE!Elim uBLgetenuTEest :G0G06GB4
38、m uMOUF!1,: rode.text itujutmuuyariaULdlcpcn.text itmutiiiuui;ariaCUPRB. B.text itmutmuctiariaBEQloc_C74.text:uuutmuL4ariaLDRR1, =(aPSac!Jaci4216305 - SmCDB).text:eeo9eccotnuADDR1, PC, R1; p08c9ad138e2OF988eGfdeb7906.text itmutmuii;tnuGLdlsyn.text itmutiiiULtiariaSUESFI5, Ris ttU.text :06QB0CD4ariaB
39、EQloc C74.text itmutmuLyQdOLDRRS, =(aLd_preload_arg - QkCE4).text itmutmuLi:QT1B頑RO, PC, RS; -LD_PRELOflD_ftRCSslumGLgeteny.text :OOEIOCE4en 舊LXR5.text :60090CE8en HJ.QCJCM.text :0030CE8;Endi Df function strlen圖17 strlen函數(shù)代碼Strlen函數(shù)一共就這幾行代碼。函數(shù)功能也極其簡(jiǎn)單,從系統(tǒng)環(huán)境變量 LD_PRELOAD_SECSO中獲取某個(gè)so庫(kù)名并dlopen打開(kāi),在用dlsy
40、m獲取so庫(kù)中函數(shù)名 為乍88c9ad42163050e20f808e0fdeb7988”的函數(shù)指針,再?gòu)南到y(tǒng)環(huán)境變量 LD_PRELOAD_ARGS 中獲取函數(shù)相關(guān)參數(shù)信息,最終調(diào)用p88c9ad42163050e20f808e0fdeb7988函數(shù)。至此上面就是,梆梆加固保護(hù)機(jī)制分析結(jié)果。二、梆梆安全加固破解使用自主開(kāi)發(fā)的脫殼工具對(duì)梆梆加固的某銀行級(jí)別的應(yīng)用進(jìn)行脫殼。首先在手機(jī)上安裝 該銀行apk,然后運(yùn)行apk。使用動(dòng)態(tài)脫殼工具指令進(jìn)行脫殼。會(huì)在/data/下面生成脫殼之后的smali文件,截取部分內(nèi)容如下:I 1Z73-74 tin d 5 r and raid. npfcHgbian
41、k ,ni ; (V|ddD&: I日如u. |航誕; I睫日瓦jddCiT:E配勤cofist/4-必)iint COfilt/il W Jtnt gfit/4 吼 Stnt sfMJt-bDDleam vOP 5|MJt-bOQlflin vzr spuk- hDole-ain vlp nM-tn&tafiice vaFi / M。ff帕Leo/isb/clilua/androtd/nobtIctMmk/b/a;,b31 / ftCdH時(shí)a Len/jsb/ cMM/androtd/nobtlctNivik/b/ +c 4 Z ft或瞻時(shí) 伸 Leu/ jsh/ch ifi-a/andro
42、id/nobi lt!hafik/h/ a; d: Z / fieldg&d Ljv/Lang/StrtngBullder: / l帥萸如日壬ISSeb; Invoke-at*ttc e Landrotd/cs/Envtnsfiftent;,Exterria.lstoragieDtrectory: ()LJava/to/File; nethodeifi |666e: rove - restil t - abjec t vijwf; Ijwuke -virtual vl L Ljaai/iQ/Ftle; Pg-ff tFath; ( ) L iiwa/ Ung /stri ng; / netlw
43、IICSTlI 12: rove - res ifl b - abject vl19613e Invoke-s-tatlc wlj L Jawa/lafig/Strting:. valueOFj (Ljava/lariCj/DbJec t: )LJrtfig E&tM典umaIS61&: rme-re&ult-objct vl|0Q17f Imvke-direct v?P vlj Ljava/lang/5trtingEutider;.V nethode&3| OCils: const-string vlrf/ strtngB5BBieeic!: Ifivake-virtualvlp L va
44、/laftg /StrtngBu 1 Ide r : - a pipefid (L j ava /langi/ it ring:) L Java /lang /Strtng&u lid* r: laeirt nave-resiitt-abject vS|962e: liwoke-virtual 網(wǎng)Ljava /U/lang/Strtmg: ff neldlddac.|562i: sfHJt-objKt w& Lcn/Jsb/chilM/dndrdldl/Hobll-ebMk/b/aj rQi Itt. Ij LJiad/laficj/Boleanj ff rietd鼬daT|S634: mew
45、-instaflce vQh Ljava/lang /St rtna&ira /lang/St ring 陀tmd班|0d3d: pme - result - ob ject v l|0S3e; ifivoke-direct tv?, vlL Ljava/lans/StringButider;.?(Ljava/l-ang/StriasV nethod&T3 ccwst-strtnfl vlP V* / t物睥。眼1041: InvalkE - vi r tual g. vlp L j-ov-a /lang /St ringE u tide r; - a Rpid: ( L j ava/lan
46、j/ St ring;) L j-ov-a /lang /St rtngBu tide r: / nme - res ul t - abject vdlee-RZs cofiit-strlng %!ip Jsbiirik / strtngUSbI。躬*; lovolke-virtual (vP* vl? L java /larig /St rtngBul Ide r; r a iH5fld; (L ava / langi/ Strima;) L java /lang /StringBul Ide r; / | 網(wǎng)旦e fwe - result - gbjec t g|d4d: cotist-s
47、tring vlr / / ringD4fSInvalKe-virtualvlp L j-av /lang /St rtng&u tide r :. d pipe;. k: Z neldgidbiI Bst,31 心代網(wǎng)騷hMX, beam UserLcgtfilnTs, set *stw:es: 口LxHlsb/ch偵誦心nd4叫四彌11曲網(wǎng)巧由業(yè)樸“MmnT*|4G3H: sgrt-abject 對(duì),Lcn/jisbchin-i/andraid/mbiLebanl/beaiE/UserLoginlnf.loinfd:Lcn/jEb/chlnaj-ondrotd/nci!leanklan/U
48、EerLagiriilinfo; / fieldQcl4I做i tr-wE 俯eeet / -wsew-|M34: nek-lfistdiricc Lcji/,j5b/i:htf-alandrDtd/HabLlebark/be-E7i5b/chirw/-BndriplLd/ngbkt?(V nethxjdgeB4|SSSi Aput-objACI: 菖、LcA/!jisljjLcn/j-tb/chind/andr4td/rrt4iltarik/lb4AiiU&arLglnilfifat rwid御Iflhr EQCt-objitet 哆, Lcn/isbjehirut/andraidi/rwh
49、iletan*/bea*/Use-rLnglinTnfloinfo:Lcr/Jsbchlnaf-Bndroid/nobtlrtiank/beaftjuserLagirlrFi; / fieldjer14IWM*mm-ofrtett g 2TBGc4 con-K*:tMNfli.http.HySSL&ochtF-Kbwy.aetKEVstDreOnu:(LjAVd/lD/InputEiiLrun: )LJ!feY!iysKurltyjKevbQre;。白蛔:ccwist/i vir frlnt fl *$ mflflOl: tnnst-rtrtnfli #. rTM ff itrlegcMBB9
50、3: tmw*je-5t+tlc vtP LjavBfswwrlityycertyCertlTltatfFKt#ry-,grtlnstance-;LJw*/liHa/String;)LjBvaswwr-l.tir/cert/CertlP|.ct)eFctoryi: / FethoiiBWlP?06; nove-r*sl.t-object vHIT; nsw-4firt-M v2P LjaaAp/u*rc4nfMJtS-trcqnj ff 切pe*t4+f9909:v2h v5j Lims/iJBfferedlnputStrBms,-ri*itF(LjflVd/ip/IiiputMTWHi:)V
51、 / HethodfCEMOEi:; Imw虹-TrWM vtJj. vZj-j LJpw-B/stCMrlty/cert/Certkfkc+tt-rKtorjri.generateCertlifLc-i-te;(LJflYfl/io/lJiputS-l;)Ljava/securkty/crrtCertificate; / netedf!nnnf nni? 皿3 fifilb aai? BBla 血b tidic 前5 aaA 做w g心 叫網(wǎng) nnz? 叫胡 oaz? POZi: nE MHtitin 迎5 前M 血7 血& 血b 次BOBd eeao 叫M 0D4E 叫M MM ntHT
52、nnti皿 HH4d 血史 血f aasfi 白Ml aass:hiM-rJll:-OijeCT V?蛇卜 L利云門#門5/1卻;,i興Hw =i:h間妁iniKik#-!tatie ). LjdvaiuKurltyK*ytcrA; .gATbAfaultlyf#: )LjdMd/ldncicrliiqis NROM- riMwLt-Cb jfltIntake-ftjittf. k2 p.卵口REtau時(shí)l”習(xí) 1自9/敏廣如:幾村對(duì)WMurlf 如匹b&r H wth財(cái)村白網(wǎng)noa- rfiwlt- fibjdet Miconsit/4 1.航nt a N 袖ugwtK 言L 航nt 白 N
53、 Intake-Yirtul. MiP v2, vSJj Lji iHurltvjKeStarc:; A044 LJJMdjiojInputStreinr nethDd*04EDfiNftr!. vlr 七廣 ff 此53部1?7invoke-rt rtvj-L vl P v禮 v*Lj-w#y5urtty/KeyEtore; - setCerttftcateEntry: (LLang/String; LjHVJisecu rtty/cert/CErtiritf-;)V yy Fthc!dg6B2bHwe-ct f vl retum-cbject vfl- Hawe-:tton- vfl nw
54、e-c4jt v2 j. vl inwiw-TlirtM*!. vfl|. tmra虹-frWM -(v2|. g. Ml 口口我 811 ff -Midrtudil UfiR NObMa-dbjtCt W&B Ml $i h -ma HDi/e-ejucetloni Inake-vkrtuJl Mi, throM gqoe-except Lon* Mi Irwake-irt rtirj-L tvl goto MM / -ms v2 v2|.Ml月-W32 HWE-iCJKiet Lon- g Hmfte-iftjtct v+j. mO u隊(duì) M-u hdwt-eiii: Vi. g iRMkA-Srcl uiR gm凸韻詁-M27的.vfi HDi-dbeCt MS. Ml visQDtQ h “拍BQLjatffl/Becwrli tr/cert/CertificflteDcttlon .print5tHCkTrit: * FEthodiessfLBBIjp/llBpvtStrtiMi. C )V。Hrthnd|a3BVL.av 旨/y/lQE.edptlg;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 探討2025年公共營(yíng)養(yǎng)師考試選材策略試題及答案
- 戰(zhàn)勝2025年企業(yè)人力資源管理師挑戰(zhàn)試題及答案
- 護(hù)士資格證考試復(fù)習(xí)策略試題及答案
- 中藥調(diào)配技巧試題及答案
- 2025年公共營(yíng)養(yǎng)師考試互動(dòng)備考及答案
- 健康管理師考試科目詳解試題及答案
- 2025屆河北省唐山市灤南縣高三下學(xué)期聯(lián)合考試物理試題含解析
- 教師資格筆試教學(xué)效果評(píng)估試題及答案
- 拓寬視野鄉(xiāng)村全科執(zhí)業(yè)考試試題及答案
- 法考試題及答案
- 固定式起重機(jī)每月定期檢查表
- 腳手架驗(yàn)收合格牌
- 光的直線傳播-說(shuō)課
- 山東省青島市市北區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期11月期中數(shù)學(xué)試題
- 氣體檢測(cè)記錄表
- 臨水作業(yè)安全專項(xiàng)方案
- 2021年北京市基礎(chǔ)教育教學(xué)成果獎(jiǎng)申報(bào)書
- 第四專題 中國(guó)革命新道路的探索歷程課件
- 《遙感導(dǎo)論》全套課件
- 煤質(zhì)化驗(yàn)工安全操作規(guī)程
- 醫(yī)療廢物處置流程圖3個(gè)
評(píng)論
0/150
提交評(píng)論