2023APP静态测试案例.docx
APP静态测试案例目录一.静态测试31 .DEX(classes.dex文件)代码加密保护32 .原生库(SO文件)代码加密保护53脚本代码(JS,1.ua、Python等)加密保护64.敏感资源文件加密保护65业务敏感文件(证书、配置等)加密保护66运行时签名校验77运行时文件完整性校验88使用不安全的加密算法109使用不安全的哈希算法1210.二次打包(静态文件篡改)检测13I1.不合理使用加密算法(如ECB模式)1512 .应用签名、发布规范1613 .运行时签名校验1614 DEX代码调试标志位未关闭17一.静态测试1.DEX(classes.dex文件)代码加密保护测试描述:对客户端反编译文件DEX进行转换,查看客户端是否对JAVA源生代码进行加密混淆,是否能看到清晰的JAVA代码。详情及测试步骤:1.首先将目标apk修改成.zip后缀的文件,然后解压,提取.dex文件涵菊.一回快捶方式-P藤e历史记录审反向选择剪贴板组织新建打开选择JVi此电BS本地JEfg(B)学习话记逆向工具名称修改日期类型大小快速访问CreditCard20170703-副本2017/7/2010:02XftAOneDrive逆向工具包2017/7/209:43文件夹此电随CreditCard20170703-BU本.zip2017/7/115:20WinRARZIP晒6,054KBDesktopI*CredltCard20170703.叩k2017/7/115:20TianTianapkfile6,054KBGWPS云S档I嵋,图片如CreditCard20170703.apk.jdb22017/7/1918:19JDB2文件f33,343KB*下或J音乐力本地三S(C:)-本地三S(D:)(E:)DVD(G:)Irw国给将apk后缀名改成ZiP3.接着用在dos窗口下打开dex2jar.bat与目标dex文件打开dex文件具体如图al选三三:命线瑞-×IicrosoftTindovs10.0.15063(c)2017IicrosoftCorporation*保留所有权利°W黑霜蜉tey2kdE:律习'逆向工袅逆向工具包Android逆向助手_v2.21ibdex2jar>dex2jar.batclasses.dex:WnDofSsyste»32cdE:学习篦巳逆向工具逆向工具包VndrOid逆向助手_v2.2libdex2jarpfIl11)0fSsystea32>efe,不是内部或外懿令,也不是可运行的程赤5批处理文件。p:fIlTOOfSsyste»32>e::)学习笔记逆向工具逆向工具包'Android逆向助手2.2libdei2jar(tex2jar.batclasses,dexthiscdisdeprecated,usethed2j-dex2jarifpossibledex2jarversion:translator_0.0.9.15We2jarclasses,de->classes_dex2jar.jar4rne11一反编译后获得的文件上:学习笔记逆向工具逆向工具包Andrcid逆向助手_v2.2libde2jar>E:学习爽逆向工具逆向工蛹VndrOid逆向S)丰一v2.2libdex2jar>.I4.将获取的在jd-gui中打开,即可查看JAVA源码并分析其是否进行加密混淆P*ra.»判断依据:是否能看到清晰的JAVA代码2原生库(so文件)代码加密保护测试描述:利用工具反编译SO文件,查看客户端是否对C/C+源生代码进行加密混淆详情及测试步骤:直接用IDApro打开apk,接着选择需要反编译的SO文件2.使用IDApro反编译选择的SO文件,看IDAPro是否能够正确反编译核心的代码。判断依据:SO文件是否能不反编译成清晰的cc+代码3脚本代码(JS,1.uaxPythOn等)加密保护测试描述:查看客户端是否明文存储脚本代码,脚本代码包括JaVaSCript、1.Ua、Python等。详情及其测试描述:1.首先将apk的文件后缀名改成.zip,然后解压2 .然后再利用windows的文件搜索功能搜索脚本文件3 .对脚本文件进行检查,看是否还有业务敏感信息判断依据:脚本代码是否含有业务敏感信息4 .敏感资源文件加密保护测试描述:查看客户端用户登陆的Xml文件是否明文存储敏感信息,查看客户端开发残留或者需要保存在客户端文件或信息是否加密。详情、验证步骤:1.直接用androidkiller打开目标apk。2.利用androidkiller的工程搜索功能,搜索登陆的XnIl文件或者客户端开发残留文件及需要保存在客户端的文件或者信息判断依据:对应的文件是否包含明文的业务敏感数据。5业务敏感文件(证书、配置等)加密保护测试描述:查看客户端是否明文存储用户加密证书或者其他证书,查看客户端是否明文存储SDK等配置文件是否加密。详情、验证步骤:1.直接用androidkiller打开目标apk,查看apk配置文件AndroidMainfest.xml是否加密如下图Omr9Mmw1.-安卓配置文件r*co*orM<cfo*yct>lorJtmIr4rw<>lMM>t>tn_rslyHct*3tylogln.amlrlayoutct>vitysplaH.ml2.直接解压apk文件,然后利用WindOWS自带的搜索文件功能查看证书,查看证书文件是否加密存储,未加密的证书文件如下所示。UE:学习38i2i2向工具CreditCard20170703-SPfassetsapp-public-key.pem-Notepad*+×文件(F)绸殖(E)搜索视图(V)纳码(N)SS(1.)iS三(T)IR(O)宏(M)运行(R)fi6W(P)三(W)?X一。口旦03。鼻CPCa¾l-«W卫却白H逐不为为J切囹,同陷HH:-.H/,*1 BEGINPUB1.ICMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbBiuRZor66S3DuAMGf8X6GJp3MhS4kBfMBnjKgbJeo203jTiV7jpxsvfH115wdMmsDBYZk8SUuchlYl2iAiaHYt24hC3fn4kalHzSBJbq1.XJ+AvM7HI34ZTI8Hpe3KgWX7UOE3a21.nb3j2yKtd2Fkxn8C三5da+PvSQHaCRlfNyGbwIDAQAB16ENDPUB1.ICKEYi7Normaltexttillength:272lines:71.n:2Col:65Sel:010判断依据:加密证书或者其他证书是否是明文存储6运行时签名校验测试描述:对应用进行破解,打包,重新采用第三方签名发布,查看是否添加签名校验。详情、验证步骤:1 .利用工具AndrOiCi逆向助手对源apk进行重新签名,选择apk后,选择apk签名选项,然后点击操作,如下图。Android逆向助手v2.2选择:操作清空日志导出日志关于即可完成对目标apk的重新签名,2 .然后将重新签名后的APK安装至手机,查看能否正常运行判断依据:重新签名后的APK能否正常运行7运行时文件完整性校验测试描述:对客户端进行破解,植入广告,打包,签名运行,查看运行时是否对文件完整性进行校验。详情、验证步骤:对apk进行解压,并利用apktool反编译dex文件,如下图所示:2.篡改smali文件,这里我使用androidKI1.1.修改*6MtW<¾)三MflM11>M(t)XMIo)<<g«M(r)OCW)»I<Jt!¾CQ:BQ三>1BI-'"'»IH,»-JG;ICr14tturn-*vod1-.ndBMithod17.tch<×l>ubllcc>tlcchckpwd<Mvalng0trlng;)X.gitr5J,>tamp.pwd-M*val*n5SttaqTl.prolo9u22.lln11t"gv3.I?!r-A-ZD)<?r-D.19.1Oth1。CaJIv3rrtzMvlngtrl119Xinvoke-t4tIc(vJ>1.)avt1lce9«xPttern;(1.)<val*r>g8trc>g;>1.)avatllree×Pttern;*ove-cult-obecv2.ln13.localvZ,jxtcern11.java/ut1r*s7*xPate*rnjinvok>virtual(v2.pO,.1.)«v«/ut1r*Qx俨ttrej->Mtchr<t)valngctarBqnce/>1.)vautlre5<MNACchjs>v-c«»ult-ot>j4»cvl.localvl.ftcr-11.av*utlr×M*tchrjInvokv-Virtual(vlK1.Java/utll/r*a«x/Hatch«rj->awtcK*OSs>v*r*aultv>IlMIS.local”0.bilreturnVondIwVhod3再利用apktool重新编译修改后的文件,即我们刚刚对反编译的dex文件获取的文件包。>Acdrojcl短ImiW于vNNK、/习名记曲同工KhcKcKKcKcK>M目毋文件,I字习至记曲回工KhcK<KKcK<Kj>ok2/回,法4rJITT单i>l<52靠山樽翦盥%2E*p)<dMddMO应七4.1£OM三l*Mtja*T9RF3tSBYd.qd-MC>HJAa.XOOSMdxX'昼a女工的三PKa«7>问4户才丁包/我以««>m>k博:E字习短记迎向mhccXhh>c>>X-V*ACAplctrool2OO-B,能A9oz目择X三3%iaffimIMKcKcKXcKc>s>*ok<1.pkTtopk¥刃笠H己迎向工h<aX:VsiXcApktrool.2.O.O-BwtOGK<KcKcKcK日传”B字习98记曲同工JhKcKK6cKe.ok.pk4.在手机上安装,运行之后,APK会终端运行,这里就不截图了。判断依据:修改后的apk能否正常运行8使用不安全的加密算法测试描述:检测移动应用在进行敏感数据的加密存储时,是否采用了业界推荐的加密算法。详情、验证步骤:1.使用AndrOidKiIIer打开目标APK.AndroidKillerV1.3.1X)加CreditSwWQl3UIffit*GWGurantocActrvity.smal0IWiia幺IrCCI>*m4名算:$*季:com.9<b.creditc«rd*信息:Ver:Iao(I)SDK:19TargetSOK:231.classpublicomgcbcredtcardaccvcyGWGuarAntorActvcy;2.super1.COaZPUbcredtuadbaseBa3Act,vi,ey;3.orce"GWGuaxAntorAcAc011v9cbxrediUrdctivityJaceChAc0nv9cbxrdcrdctwvtyJcRMACnv9cbxrdordCtMtyWGuACn1.9cbrdtCMdx>n9ctvvftyHAcdoudwlGMtrvity.FcR<ognHACnxioudwellcMtMtyJaceRecogntzHAc0mbxredftc4rdctvMtylddit>HAcom.yenxhenjie.perTni$ion.PermisHReceiverS<rvkJ1.COnVbaidUJocjrtionJUsesPermission1.XdfOid”询8rSCCESS.NETV£M>d<od.p*fmsionCCSSWIA1.Midfoid.Permission.CHANGteWlA.1.Sodrotd.Pefmiiiion.INTERNET1.ndroktprmissifWRlTE-EXTiRtOndroid.Penniitton.READeEXTERh£andro«d.pem>»SMn>CCESS-COAF£,«ndfoid.perTm«onACCES$.nNEaItndoid.permission.CAMERAEMdroktxrmissionMBRATE"Iinstancefields7.fieldprivatefinalTG1.javalanqString;*>.fildprivateAndroidNextZnputs:Z«coa/gichub/yoojia/inputs/AndroidNextZnpucs;1011.fieldprivateandoidHextInputsi:1.coaZgithubZyoojia/inpute/JkndsoidNextInputs1213-fieldprivateandrodNxtZnputsZrxcgchubyoo3iInputsZAnclroidNextXnputsfr324>C4Qedby:b.c.a:couldnotexeccceaand:(C:U9ersgl5ShakaApktoolrindors-x8<biaapt.exeApr-forced-package-id,121-ain-3dk-veroat19.-tr9et-sdk-versiQ433«-verioa-code,1,-versloa-oaBe,1.0-FtCsU9er9bgiSFf>t1.ocalTM(>JlP!UlM02ece5144S013<.u<>.-O.resources.axacr-Orr«s/dravable/wi_title_bAClc_focuaed.9.PMGr-O,resdx*wables三-tltlebcknorl.9.PHGr-O,res/dfwable/ie_t*tl0_b*ci:_pro3ged9PMG,-O.resdrwable'Hitl上一】还9P»G.-O,aracv-XrCsUrbgXSplrtoolfrBe*oricl.pr,-SrE:学习军记建向工具运向工具也Andg*dKi】kr_vi.31pg”cuCrmmg”er<.H,上:学笃记定向工具1.dKlllr-vl3lpro)cuCt<<llcProcDdroldK*nlf*SC.XBlMUhmOVnSOUr8)母头散竞法下一步签名!日到aM三方金引用2.点击下图用红色圈编制的地方即可查看到JAVA源码,如图所示。oMMMIatV*.*4>3.在源代码中查找他的加密算法,他目标APK使用的是不是业界推荐的加密算法,如下图所示三h三三三三三h三190sliAtse9B1909s(iAle9l00lRilafiBftaBBSIBQ僖SiaSl2UcUmM90tilfto3Mr三lIUW*“:MMKttrelUcaUct11ytCe11*<*yytM(bjtWftrreyt4.9<uu«WSUg>eowt*c*scAES加密兑法加密类4.判断依据:kM1:W/McvnAasAa:xa!SewM*O)ctXec<109ctmvtoytell;CWVaM*»*fMHfeytA)UcCct);HtMrnnMreu>r<MfttMeut4Mtlkrffl>.*te11iX<Mv.iM0:MM2*9ug»v9*cm*rvXM<Mc>vU*ffct4ry.tftIaU*erme(ltMto*sSd*l.«ra*r«t«9v<mp*rMtxlM).f>tco-1<>.MT>11.9calCb)cCxtr.c*tUmmm(IKS.<K,'三n*MiM>>:feytl>*ttfCf>%awfe*t<KlflmlXecalOto3c.fMSUc*Sl:IMl><*9aMA.IMVvC<ft*>/<CAfttt>».UU«<19tMtr1.M-F!vff<t<<<rtvf>>trE6KCAftMr)loc!CMet>.doriaal(MVM.H«ftn”CC»yt4>.v>t(*tf*11:RMMtU9f1*Ww11K(>mwMfMMflMUKtIMfti-IM>*WUC9*<1M“IXaBverOMaaAtf<l)(RUBmMalJ*>M»ctatKnMMMnVC<ssl.tff.*Oftv<,StVtM*.aWM*lCBMVU9«,r.*t404f1a.fK>rM>,8o<*IJaneMM,CC3*11:,locX9cuxv*ft*4rPtfaaStrRCifftr.cteMera<Svl:9naS(a.ut:.MVScta*c<3CAUErCmrtc4.9r*tly.¾>KfQ*t.*>K9au是否使用业界推荐的安全的加密算法9使用不安全的哈希算法测试描述:检测移动应用在使用哈希算法时,是否使用了业界推荐的安全哈希算法。详情、验证步骤:1 .使用AndroiclKiIler打开目标PK.AndroidKillerVl.3.1X)-O×<X>J工IMtUTIMrM3工7.fieldprivateandrodN*xcXnpuc*zXvcogihubyoolinpuC0AndroiclNXcXnpuc;privatendxoidNxcXnpucl:Xc*/gichub/yoo31a/XfxpuceZAndroidNexcXnpucaprivate*ndroid>CexcInput*Z:EsfllkZgASng/yoo)1npucAndroidMexcXnpuprivateAndxo»dia】l.er_vl31pr6ecuCmdiXPxoesm,-H,七人刁,记建商工一mseancfilda>Cau*<ll»y:b.c.:couldnotx*ccc三Band:(C:XPwreXhghl55tkaAplrcoolnndov>xO<binpc.«x«tAp-force>p«ckag«-id(127.-ain-dk-ver01on19,rgec-aic-verlon.二3.version-coe*1»-Verelofi-BABev1.0.-.C!U>rQX5ppDat1.ocalTeflpAPKT1.81M0*e4*e5144S0I3<.U,-Orr*ourc.arc9-Orrwe/dcAVAble/aBtldebaekfoeud.>.PMGv-¢,rdraw*bl/CKlwabacknonMl.FMGv-0.s*drwblMBe*eX-bckrapkd9WG.-0.r<adr*>l/bx1cle.b0.IphA9.PWG-0.rc,-I,C:Ver0bglSpmoolfr*evorlc1.pk»-S,E:习之y工K欠败.无d下一中茶名finalTG!1.3avalanScrin9x2 .点击下图用红色圈编制的地方即可查看到JAVA源码,如图所示。Aodroid0llrV1.3.1X)3.在源代码中搜寻所要哈希算法,并分析其是否是业界推荐的安全哈希算法4.判断依据:是否使用了业界推荐的安全哈希算法10,二次打包(静态文件篡改)检测测试描述:对程序进行破解,植入广告,打包,签名运行,查看是否正常运行。详情、验证步骤:1 .用AndrOidkiller对目标APK进行解压,如下图所示:2 .随机抽取一个资源文件进行篡改,也在是在res文件夹下对资源文件进行篡改三RXAMrCM)冲E至二匚OO1.'-A,餐m,atHT辐酱霜W:ZOFCXUOH1*sfiaaiWZM?R>*J?KI1eUmN口工euQ工-XHQProject.MMtt,.T,;b,o¼MoPcMj>ke<.<o<kr.m*.c*or.s<to<uniaW1.aXelCC8,y&A<>im1r<cn.oencggVm,2l*ctox>ntln41andrcxdhttp:/c>m三m.anrotd.CQapkr0ndro<l*>4<<*AAdXOXdtcat-t<wtxweaadxoxdMloraffT&t&lS*Z>6<iaaadxold:colora9rrerrr*><cwX<o<ox>*Wmm-)oMphv4dr*bb¼dp*v4随机删除一个文件3.在利用AndroidKI1.1.ER的编译功能重新编译,签名步骤如下重新编译后在手机上安卓上,看目标APK能否正常运行11.不合理使用加密算法(如ECB模式)测试描述:检测移动应用在使用AES加密算法时,是否使用了ECB模式。详情、验证步骤:I.使用反编译工具反编译APK;2.分析源代码中的加密算法模式。判断依据:使用AES加密算法时是否采用ECB模式12.应用签名、发布规范测试描述:检测app发布版本的签名信息是否为调试版本的签名信息。详情、验证步骤:1.使用JDK自带的jarsigner.exe对APK包进行检查,命令:jarsigner-verify-verbose-certstest,apk效果如下图所示:2.在弹出的签名信息中寻找androidClebUg字样,如果有就是ClebUg签名,如果没有就不是debug签名。判断依据:判断签名相关的信息是否包含debug等信息。13.运行时签名校验测试描述:对应用进行破解,打包,重新采用第三方签名发布,查看是否添加签名校验。详情、验证步骤:1 .使用APKtoolBox对apk重新签名用户重录IeIU¾<fUhgh15QesXtopte$1gI”I目2dttHrfr反“4d02k文件路径.注f3正在多力英工作中WWffe2 .在Android手机或者模拟器上安装运行apk,看APK是否能正常运行判断依据:APK是否能正常运行14DEX代码调试标志位未关闭测试描述:查看AndroidManifest.xml文件中的debuggable属性值是否为true详情、验证步骤:1.使用apktool反编译apk文件,得到AndroidManifest.xml文件2.1. 看AndroidManifest.xml文件中的debuggable属性值是否为true如下图所示:(activityAnti<C*tQOXyl<intm-nitx:<lntnt-filtx>*kytooardRiddnnavigationIozlttloa'«cctvxtyOCtivlcyandroidzconfi9'-ky1>Mr4ai4dnIruvlationIxlt<tla1-1:</intent-filter>cctivicy><lntcctlvllk><ctoryAnt</intent-flItex><acclvitv><in"t-filt*t><xionn<lncenc-filtex><actloAndxold:mmobuvltf.c"mi.ach>>n-prtalt*anIMMt判断依据:测试描述:查看AndroidManifest.xml文件中的debuggable属性值是否为true