欢迎光临W88主页

您有 0条新询价信息! 关于我们 | 联系我们 |                        网站地图

大家还感兴趣的: 4500型破 450型废钢 小型废钢破碎 大型废钢破碎 无尘粉碎机 小型粉碎设备

    寄存器中的值行为地方寄存器间接寻址便是把,址去赢得操作数再通过这个地,放正在存储器中操作数自身存。 大的F5键2、应用强,指令对应的C言语代码能够查看arm汇编,应用Y键同时能够,nv*措施的还举行JNIE原 bdvm.so文献再有一个便是li,底层加载dex的极少措施他包罗了DVM中全数的: 开启一个线程举行轮训操作以是阿里的反调试就正在这里,us文献中的TrackerPid字段值去读取/proc/[pid]/stat,现不为0倘使发,正在调试本行使就显示有人,oad中直接退出正在JNI_OnL。入查看实在代码杀青的本来这里能够再注意进,于篇幅题目不过这里限,声明了不注意,能够杀青这种反调试机造的后续正在写一篇作品咱们本身。够动态调试即可本文的中心是能。 集特有的寻址方法这是ARM指令,操作数后再举行移位操作它是正在寄存器寻址获得,的操作数获得最终。 个so最先加载的一个段音信.init_array是一,最早机遇,操作都是正在这里做现正在通常so解密的 以正在调试界面4、G键可,定的绝对地方火速跳转到指,断点调试举行下,到宗旨地方之后这里倘使跳转,B数据的话展现是DC,应用P键能够正在,化即可举行转,CB数据合于D,先容的下面会。 进入调试咱们再次,是pthread_create函数瞥见BLX跳转的地方R7寄存器中,中新修一个线程的方这个是Linux法 \android_server正在IDA装置目次\dbgsrv,么运转呢?下面来先容一下这个文献是干嘛的呢?他怎: {r3-r71、PUSH,是保全r3lr} ,4r,5r,6r,7r,到内存的栈中lr 的值,行完某操作后那么末了当执,指向的地方实践你思返回到lr,给pc了当然要,CPU即将实践的指令由于pc保存下一条,了pc唯有给,行到lr指向的地下一条指令才会执方 开so文献4通过打,函数的相对地方找到必要调试的,l+S找到so文献的基地方然后正在调试页面应用Ctr,到绝对地方相加之后得,G键应用,数的地方处跳转到函,断点下好。或者F9键点击运转。 带来的安笑题目这篇作品中咱们先容了Android中的调试道理咱们是否还记得之前一篇作品:Android中run-as号令,bserver来做到的本来是应用gdb和gd,rver正在调试的时刻gdb和gdbse,试的圭臬过程中务必注入到被调,ot修立的话但长短ro,于run-as这个号令了注入其余过程中只可借帮,们懂得以是我,个行使过程的话倘使要调试一,入他内部必必要注,so也是这个道理那么IDA调试,tach附加)过程他必要注入(At,行调试才干进,于gdbserver云云的东西不过IDA没有本身弄了一个好似,d_server了那便是androi,运转正在修立中以是他必要,IDA举行通讯保障和PC端的,备的过程音信好比获取设,so内存地方实在过程的,音信等调试。 们展现不过我,权限的so文献这里没有RX,有加载到内存中阐述so文献没,仍是对的思一思,ait Debugger认为咱们现正在的圭臬是w,.loadLibrary措施也便是还没有走System,有加载到内存中so文献当然没,咱们圭臬跑起来以是咱们必要让,令去attach恭候的圭臬这时刻咱们能够应用jdb命,如下号令: DA调试页面的时刻4、G躁急键:正在I,速跳转到指定的内存位咱们能够应用S键疾置 是否为可调式状况1》查看apk,l文献中的android:debuggeable属性是否为true能够应用aapt号令查看他的AndroidManifest.xm,ebug状况倘使不是d,的增加这个属性那么就必要手动,回编译然后,包从新安正在署名打装 电饭煲哪个牌子好用质量好 这时刻然后,接上23946这个端口就能够了咱们只消正在PC端应用IDA连,人好奇了这内中有,标语也是23946为什么长途端的端,IDA举行连结的时刻由于后面咱们正在应用,这个端口修树死了展现IDA他把,3946便是2,自界说这个端口了以是咱们没主见。 到这里调试,个题目展现一,P指令之后便是CM,oc_74FAF2D0处了BNE 指令就早先跳转到l,能够猜到了那么咱们就,咱们输入的暗号和准确的暗号CMP指令比拟的应当便是,从新调试咱们再次,R1寄存器的看看R3和值 个逆向的加密措施那么咱们能够写一,密暗号获得值即可去解析准确的加,一个破解的机缘这里为了给大多,布准确谜底了这里就不公,我随后会上传这个apk,以实验破解一下手痒的同砚可。 刚看到咱们刚,运转圭臬只消一,调试界面就退出了,明说,实践的机遇非凡早这个轮回检测圭臬,机遇是:一个是t_array那么咱们现正在懂得的最早的两个,_OnLoa一个是JNId ugger选项咱们采用Deb,tach采用At,ebugger看到有良多d,东西真的很健壮以是说IDA,ugger的兼容做到良多deb,平台下的圭臬能够调试良多。id debugger这里咱们采用Andro: 造作气氛阿里真会,解的第一题吗还记得咱们破,了第二题这回看到,吧好,破解流程吧下面来看看: 试来跟踪传入的字符串值那么下面咱们就用动态调,之后的值和加密,打印log的函数这里咱们看到没有,的参数和寄存器的值以是很难懂得实在,要早先调试以是这里需,之后的寄存器的值得知每个函数实践,行调试so的时刻咱们正在用IDA进,打定次序必要以下: 擦,目的的VM无法连结到,现正在被调试圭臬弗成调试那么这种题目大局限都出,id:debuggable属性咱们能够查看apk的andro: ver保全到修立的/data目次下以是咱们把android_ser,的运转权限批改一下他,ot情况下运转然后务必正在ro,注入过程操作由于他要做,root必必要。 很单纯本来,R7这段指令干掉即可咱们只消把BLX ,li代码的话倘使是sma,除这行代码即可咱们能够直接删,文献不相似不过so,编指令他是汇,这条指令的话倘使直接删除,碳酸钠的相对分子质量产生交加文献会,件就有固定的式子由于自身so文,ement的实质好比良多Seg,的偏移值也是有保全的每个Segement,会影响这些偏移值倘使云云去删除,o文献式子会毁坏s,加载犯错的导致so,动的去删除这条指令以是这里咱们不老手,表一种措施咱们再有另,令造成空指令便是把这条指,言语中正在汇编,是一个空指令nop指令就,都不干他什么,接改一下指令即能够是这里咱们直,是:00 00 00 0arm中对应的nop指令0 D SPLDME!,-R7{R1,} LR;取回到R1-R7将旅馆中的数据,寄存器LR。减旅馆空递。 OnLoad函数的机遇咱们既然懂得了JNI_,函数放正在这里的话倘使阿里把检测,的方法去调试了咱们不行用之前,方法机遇太晚了由于之前的那种,NI_OnLoad函数只消运转就一经实践了J,出调试页面以是就会退,so文献load的机遇亏得这里IDA供给了正在,ption中修树一下就能够了咱们只必要正在Debug O: 了strlen2、然后是移用,locmal,y等编造函数strcp,指令移用这些函数的时刻正在每次应用BLX和BL,用他们之前通常都是由MOV指令咱们都展现了一个顺序:便是正在调,参数值的用来通报,便是strlen函数的参数好比这里的R5内中存储的,mber函数的参数R0便是is_nu,样领会之后以是咱们这,能够获得函数的入口参数值正在后面的动态调试的历程中,到极少紧急信云云就能得息 mp出加密之后的dex文献咱们正在后面动态调试必要du,个so文献了就必要调试这。 按钮或者F9键6》点击运转,inker模块中圭臬运转停滞正在l,文献加载进来了这时刻显示so,转到JNI_OnLoad函数出咱们通过Ctrl+S和G键跳,下断举行点 输入的暗号通报了用户,e做了校验历程然后nativ,到Java层即可把校验结果返回: 的极少躁急键:F52、通过IDA中,l+SCtr,函数的arm指令Y等键来静态领会,数的实践流大致清晰函程 用寄存器寻址这里也是同样,R1中字符串的地方R0寄存器存储的是,实质是:jiangwe咱们看到这里的字符串i 跳转地方这里的,算出来的是能够,跳转到A函数好比我现正在思,下断点然后,+s查找到so文献的内存早先的基地方那么咱们能够应用上面说到的ctrl,中查看A函数对应的相对地方然后再用IDA View,绝对地方相加便是,转到即可然后跳,这里的好比: 文献软件举行实质的批改咱们能够应用极少二进造,itor东西举行批改这里应用010Ed: 息中有多so文献咱们看到照射信,多个so文献本来这个不是,ement音信被照射到内存中的而是so文献中对应的区别Seg,代码段通常是,段等数据,要调试代码由于咱们需,重视代码段以是咱们只,便是拥有实践权限x代码段有一个特性,限中有x的那段数据即能够是咱们只必要找到权。 :这里咱们能够查看实在函数对应的arm指令代2、IDA View对应的so中代码指令视图码 m指令转化成可读的C代码2、F5躁急键能够将ar,以应用Y键这里同时可,nv的函数措施批改JNIE名 F寻求咱们必要调试的过程咱们这里能够ctrl+,起来咱们必要调试的过程当然这里咱们务必运转,不到这个过程否则也是找的 懂得咱们,于加载so文献的模块这个linker是用,正在t_array处下断所自此面咱们正在领会怎么点 到看,鉴定他的,yCheck措施是securit,tive层的是一个na,去解压apk文献以是这时刻咱们,so文献获取他的,ve函数的相对地方:11A应用IDA掀开查看nati8 时刻这,入调试界面咱们看到进,以单步伐试点击F8可,PC指示器看到有一个,是一个迥殊的寄存器iso9001质量管理体系本来正在arm中PC,前指令的地方用来存储当,会先容到这个下面。 了好,这两个紧急的函数的效力到这里咱们就领会完了,容是否为数字字符串一个是鉴定输入的内,实质获取暗号实质一个是通过输入的,sBCqpBssP 作比拟然后和准确的加密暗号:s。 先是一个指针加上一个数字通常JNI函数措施名首,+676好比v3。个措施指针举行措施移用然后将这个地方行为一,数便是指针本身而且第一个参,76)(v3…)好比(v3+6。通常用到的JNIEnv措施这本质上便是咱们正在JNI里。的对这些措施举行识别由于Ida并不会自愿,常会见到却搞不真切这个函数事实正在干什么以是当咱们对so文献举行调试的时刻经,实正在是太空洞了由于这个函数。非凡单纯处理措施,指针做一个类型转换即可只必要对JNIEnv。a1和v4指针好比说上面提到: 转到指定地方之后有时刻咱们展现跳,DCB数据看到的全是,采用函数地方这时刻咱们,到arm指令源码了点击P键就能够看: 到了看,ssBCqpBssP作比拟这里把上面获得的字符串和,sP便是准确的加密暗号了那么这里ssBCqpBs,正在的资源是那么咱们现: 了好,tudio中新修了一个Native项目到这里咱们就火速的正在AndroidS,项宗旨代码不思声明太多这里合于native,ava便是J层 输入的实质这个便是我,以豁然明朗了那么这里就可,:aiyou暗号是上面的,cuobuo 回值的函数之后的号令3、正在每次移用有返,比拟指令通常都是,CMP好比,BZC,rcmp等或者是st,破解的冲破点这里是咱们,密再若何牛逼由于通常加,的暗号)和咱们输入的暗号(或者是加密之后的输入暗号)末了比拟的参数决定是准确的暗号(或者是准确的加密之后,以获得准确暗号咱们正在这里就可,之后的暗号或者是加密: 时刻这,经加载进来了阐述so已,nLoad函数的绝对地咱们再去获取JNI_O址 tForDebugger代码了那么我思到的便是增加代码wai,恭候debug这个措施便是,试smali代码的时刻咱们还记得正在之前的调,圭臬停正在了启动出便是用这种方法让,b举行attach操作然后恭候咱们去用jd。 这里不再声明了实在的校验历程。项目之后咱们运转,pk文献获得a,始咱们的破解行程那么下面咱们就开了 或者躁急键F95》点击运转,的环节函数触发圭臬,入断点然晚生,单步伐试应用F8,跳入调试F7单步,中重要旁观BL正在调试的历程,X指令BL,BZ等比拟指令以及CMP和C,体的寄存器的值然后正在查看具。 一个圭臬由于通常,个so文献的决定会包罗多,o就有很多的好比编造的s,tem/lib下面通常都是正在/sys,们本身的so当然也有我,地方便是这个so文献照射到内存中这里咱们看到这里的早先地方和已毕: 之后批改,坛上的)还总结了全数JNIEnv措施对应的数字是不是倏得了解了良多?其余有人( 貌似是看雪论,措施声明地方以及: 析时间破解apk中应用IDA东西静态领会so文献早正在之前的一篇作品:Android中通过静态分,arm指令通过领会,破解音信来获取,log音信好比打印的,apk的来破解,绍了怎么应用IDA东西正在那时刻咱们就一经介: ypt_str函数2get_encr,到名字能够料想这个函数咱们看,的暗号加密之后的值他是获取咱们输入,5躁急键查看再次应用F: 擦,调试页面了IDA退出,入调试页面咱们再次进,行运,调试页面了仍是退出,了好,蛋疼了这下,调试了没法。 解apk的合联常识即日咱们无间来看穿,天重要来看怎么应用IDA来调试Android中的native源码正在前一篇:Eclipse动态调试smali源码破解apk咱们今,极少app由于现正在,者效用题目为了安笑或,放到native层会把极少紧急的效力,样一来那么这,试smali源码就显得很无力了咱们前篇说到的Eclipse调,native层由于中枢的都正在,ive层应用的是so库文献Android中通常nat,怎么调试so文献的实质以是咱们这篇就来先容,功率抵达更高的一层从而让咱们破解成。 停和已毕按钮个中再有暂。行之后咱们运,native函数然后正在点击so的,点逻辑触发断: 们再看然后我,备的23946端口这里早先监听了设,droid_server举行通讯那么倘使要思让IDA和这个an,IDA也连上这个端口那么务必让PC端的,于adb的一个号令了那么这时刻就必要借帮: 编译运转第五步:,天生指定的so文献正在build目次下,libs目次下即copy到工程的可 令查看端口23946的应用状况咱们能够应用netstat命,正在应用这个端看到是ida口 函数返回值保全到R0寄存中这里把is_number,CBZ指令然后移用,否为0鉴定是,et_74FE4EEC处倘使为0就跳转到locr,器的值不是0查看R0寄存,往下走无间: IDA东西3》双开,掀开so文献一个是用来,件领会举行文,arm指令代码好比单纯领会,体逻辑懂得大,数的相对地方等音信再有便是找到实在函,用来调试so文献的再有一个IDA是,置Debugger Option咱们正在Debugger选项中设,要调试的进然后附加需程 droid_server2、上面就打定好了an,凯旋运转,A举行实验连结下面就来用ID,音信获取,程附加注举行进入 举行单步伐试咱们点击F8,ber函数移用出抵达is_num,相差的参数值看到R0是,0寄存器的实质咱们能够查看R,123456然后看到是,层传入的暗号字符串这个便是Java,往下走接着: :Java环节字即可那么这里咱们直接搜,找到指定的native方或者应用jd-gui东西法 说到前面,r正在root情况下注入到被调试的过程中IDA是应用android_serve,Linux中的ptrace那么这里用到一个时间便是,里也不声明了合于这个这,ptrace的合联常识大多能够自行的去搜一下,被其余一个过程ptrace了之后那么Android中倘使一个过程,erPid 能够标识是被哪个过程trace了正在他的status文献中有一个字段:Trac,咱们的被调试的举行音信咱们能够应用号令查看: DA掀开so之后咱们正在上面看到I,的汇编指令代码看到的是纯种,务必会看懂汇编代码以是这就恳求咱们,ava层代码的时刻相似就好似于咱们正在调试J,ali语法务必会sm,的是光荣,都不是很庞杂这两种语法,的语法和指令就能够了以是咱们懂得极少大致,m指令中的寻址方法下面咱们来看看ar,存器寄,指令常用,个常识点看完这三,令有一个大致的清晰咱们就会对arm指,也是有一个大致的认知了对付看arm指令代码。 udio中举行新修一个单纯工程这里能够应用AndroidSt,JNI即可然后创修: trl+S键3、应用C,面中查看so的全数段音信能够正在IDA View页,o文献照射到内存的基地方正在调试页面能够查找对应s,能够应用G键这里咱们还,址的跳举行地转 时刻有,非凡紧急的音信字符串是一个,破解的时刻特地是对付,是暗号或者就,码库音信或者是密。 的指令宽度阐述符.W 是一个可选。此指令的手脚它不会影响为, 32 位指令它只是确保天生。细信详息 置之后云云设,不可仍是,一经早先运转由于咱们圭臬,码块中加载so文献了就正在static代,的机遇非凡早static,这时刻以是,加载so文献之前即可咱们必要让圭臬停正在。 以上的编译选项默认开启了pie这个重要是Android5.0,的原生行使不行运转正在5.0以下编译,处理主见有两种,5.0以下的手机举行操作一种是用Android,A6.6+版本即可再有一种便是用ID。 ward举行端口转发2应用adb for,A能够连结到被调试让长途调试端ID端 电饭煲哪个牌子好用质量好 ypt_str函数的移用看到了get_encr,存正在R1寄存器中函数的返回值保,yrTRA*B了查看实质:zyt,看到那么,=》zytyrTRA*B了上层通报的:123456,ncrypt_str函数的逻辑前面咱们静态领会了get_e,往下看无间: R0LDR,R1[,] #4;1 + 4]R0 ←[R,4造成操作数的地方将R1的实质加上,入寄存器R0中赢得的操作数存。 的效力好似于本来这条号令,se调试smali源码的时刻咱们前一篇说到用Eclip,修树长途调试工程相似正在Eclipse中,ach方法采用Att,p地方和端口调试机的i,端口是默认的端口还记得8700,这个号令之后不过咱们运转,一个舛误展现了: 其然果不,d_server过程是咱们的androi,了好,道道理了咱们知,个轮回检测这个字段倘使不为0也大致猜到了阿里正在底层做了一,正在被人trace那么代表本身过程,停滞退出圭臬那么就直接,良多安笑防护的地方这个反检测时间用正在,要的常识点了也算是一个重。 调试so了这个常识点总算是说完了IDA,去破解native层的代码咱们也懂得了一种全新的方法,键代码放正在了Java层现正在有些圭臬已经把合,pse调试samli即可破解那么这里咱们能够应用Ecli,为了安笑倘使圭臬,放到native层或者还会把环节代码,这时刻那么,来调试so代码来破解咱们能够应用IDA,老是恶马恶人骑确当然破解和加密,全做了加固战略现正在圭臬为了安,一篇作品必要先容那么这也是咱们下。 试页面之后4》进入调,+S和G躁急键通过Ctrl,试的环节函数定位到必要调,下断举行点 的值便是用寄存器寻址方法看到了这里的R3寄存器,符串的赋值字,是存放字符串的地方这里R2寄存器就,..不过这里决定不是总计字符串咱们看到的实质是aiyou.,符串的已毕符:\0由于咱们没看到字,R2寄存器咱们点击,完全实质进入查看: 又称为基址变址寻址寄存器基址变址寻址,址的根柢上扩展来的它是正在寄存器间接寻。器)中的值与指令中给出的地方偏移量相加它将寄存器(该寄存器通常称作基址寄存,一个地方从而获得,址赢得操作数通过这个地。 liso9001质量管理体系+S躁急键3、Ctr,个用处有两,DA View视图的时刻正在平常掀开so文献的I,Segement信能够查看so对应的息 电饭煲哪个牌子好用质量好 提神的地方再有一个,_server必然要连结类似便是IDA和android。 编译之后的模块名这里只必要修树,文献的名称便是so,平台下的so文献必要爆发那几个,用到的lib库再有便是必要,roid中打印log的库文献这里咱们看到咱们用到了And。建设工程质量管理条例 速查看so中的常量字符串实质1、Shift+F12能够疾,时刻有,一个很大的冲破字符串实质是点 行调试圭臬端) tcp:当地修立端口(被调试圭臬端adb forward tcp:远端修立端标语(进) 到了看,7过程trace了这里的过程被918,看9187是哪个过程咱们正在用ps号令看: 了吧看到,步伐试进来了啦啦这里咱们能够单,调试指令凯旋了阐述咱们批改反。 到这里好了,DA正在调试so文献的时刻咱们就大致说了一下合于I,的躁急键必要用到: 即寻址也叫立,的寻址方法是一种迥殊,包罗正在指令中操作数自身,就取到了操作数只消取出指令也。叫做立时数这个操作数,式叫做立时寻址对应的寻址方。如例: 址便是:74FE4E9C那么获得了函数的绝对地,转到这个绝对地方应用G键火速跳: 行函数移用BL 执,aller)的下一条指令并把使lr指向移用者(c,的返回地即函数址 +S有两个用处3、Ctrl,以查看so文献的全数段音信正在IDA View页面中可,有so文献照射到内存的基地正在调试页面能够查看圭臬所址 ry措施之前插手waitForDebugger代码即可那么这一次咱们能够正在System.loadLibra,们不iso9001质量管理体系这么干了不过这里我,方法便是用am号令再有一种更单纯的,以启动一个圭臬自身am号令可,bug方法启动当然能够用de: mber函数1is_nu,该猜到是鉴定是不是数字这个函数咱们看名字应,应用F5键咱们能够,的C言语代码查看他对应: ard号令举行端口的转发2》应用adb forw,建设工程质量管理条例口转发到长途调试端将修立被调试端的端中 解压apk文献1、咱们通过,的so文献获得对应,A东西掀开so然后应用ID,ative层函找到指定的n数 举行单步伐试4、应用F8,步跳入调试F7举行单,用F9运转程同时能够使序 键的BL/BLX等跳转指令破解规矩:时间必要提神合,碳酸钠的相对分子质量行完之后正在他们执,/CBZ等比拟指令决定会有极少CMP,寄存器实质来获取紧急音信这时刻就能够查看紧急的。 只消圭臬没有退出通常这里的基地方,行中正在运,值就不会变那么他的,经加载到内存中了由于圭臬的数据已,不会变的基地方,序退出除非程,据加载内存中了又从头运转把数,是长远不会变的同时相对地方,o文献的时刻唯有正在批改s,幼改换了文献的大,地方会改换或者相对,下不会改换其他状况,全豹so文献中的地方相对地方便是数据正在。 都是相似的结果过程好几次实验,这个地方有题目以是咱们展现,调试的地方或者便是反了 正在掀开一个IDA咱们这时刻必要,是用来领会so文献的之前掀开一个IDA,静态领会通常用于,试so的话咱们要调,个IDA来举行必要正在掀开一,必要掀开两个IDA以是这里通常都是,IDA操作也叫作双开。合战略动态结。 的过程音信就枚举出来的这里能够看到修立中全数,d_server干的事本来都是androi,递给IDA举行浮现获取修立过程音信传。 了好,令的合联常识合于ARM指,这么多了就先容,试领会的时刻只是咱们正在调,到总计的清晰决定不行做,令语法就比拟庞杂由于自身ARM指,研习了汇编言语只是亏得大学,能看懂点以是稍微,就或者必要补习一下了倘使不懂汇编的同砚那,A领会so文献的时刻由于咱们正在应用ID,编的话不会汇,行欠亨的那是决定,看懂汇编代码的以是咱们必必要,令不清晰的同砚倘使遭遇迥殊指,搜一下即或者够网上。 到了看,试阶段了进入调,时刻这,8举行单步伐试咱们能够应用F,步进入调试F7举行单: 始单步伐试了下面咋们就开, R7这条指令实践完之后不过当咱们每次达到BLX,Load就退出了就JNI_On: 数据视图:咱们能够查看arm指令对应的数据3、Hex View对应的so的十六进造等 时刻这,A举行过程的附加咱们再次应用ID,调试页面然晚生入,ger Option选项同时修树一下Debug,Load函数的绝对地方然后定位到JNI_On。 射音信:cat /proc/[pid]/map这里咱们能够应用cat号令查看一个过程的内存映s 期的破解行程了?谜底是否认的那么到这里咱们就已毕了咱们这,实是我本身先写了一个apk由于咱们看到上面的例子其,了给大多演示宗旨便是为,进活跃态调试so怎么应用IDA来,一个操刀起头的案例那么下面咱们再有,014年便是2,AliCrackme_2阿里安笑挑衅赛的第二题:: ive层的函数5触发nat,7举行单步伐试应用F8和F,寄存器中的值查看环节的,数的参数好比函,返回值等信和函数的息 +11A8=74EAA1A8 应用G键直接跳到这个地方和上面获得的相对地方相加获得绝对地方:74EA9000: 备常识做完了上面咱们的准,A东西的时刻一个是ID,M指令的清晰一个是AR,来早先操刀了下面咱们就,便早先为了方,roid native层代码咱们先本身写一个单纯的And,A举行领会即可然后举行ID。 的IDA调试次序咱们懂得了上面,w88中文官方网站。以周详思一思本来咱们可,大致是云云的他的调试道理: 简单看这里简,n语句和if鉴定语句重要是看retur,有一个轮回看到这里,E*这里地方的值然后获取_BYT,增长一而且自,到v2中然后存,为\0的话倘使v3,束轮回就结,一次鉴定然后做,8是否大于9便是v2-4,的是ASCII中的数字0那么这里咱们懂得48对应,历_BYTE*这里存的字符串是否为数字串以是这里能够确定的是便是:用一个轮回遍。建设工程质量管理条例 试端安置一个圭臬起初他得正在被调,和调试修立通讯用于IDA端,oid_server这个圭臬便是andr,附加过程由于要,用root身份运转以是这个圭臬必必要,起来之后这个圭臬,端口23946就会开启一个,rd举行端口转发到长途调试端咱们正在应用adb forwa,droid_server举行通讯了这时刻IDA就能够和调试端的an。备的过程列表后面获取设,过程附加,试音信通报调,通讯机造已毕即可都能够应用这个。试的过程的内存数据IDA能够获取被调,pid]maps 文献中通常是正在 /proc/[,以查看全数的so文献的基地方以是咱们正在应用Ctrl+S可,s文献即可做到能够遍历map。 速获得能够疾,地方和已毕地方一个段的早先,置是相对地方只是这个位,内存之后的地方不是so照射到,中的段音信合于so,d中so文献式子详解这篇作品先容的很很真切了不清晰的同砚能够参看这篇作品:Androi,正在作先容了这里就不。 做了反调试观察这里本来是阿里,的圭臬被调试了倘使展现本身,退出圭臬就直接,有题目了那么这里,要仍是看后续本身的破瓦解验了为什么懂得是反调试呢?这个主,术可言没技,何做到的反调试战略的再有一个便是阿里如,于篇幅这里限,绍一下道理只是单纯介: /data目次下这里把他放正在了,d_server运转然后./androi,droid 32-bit这里提示了IDA An,时刻必然假若32位的IDA所自此面咱们正在掀开IDA的,4位的不是6,保全否则,是有两个可实践的圭臬IDA正在装置之后都,32位一个是,64位的一个是,会报云云的舛误倘使没掀开准确: 数地方之后上面找到函,下断点了咱们能够,很单纯下断点,的绿色圈点点击署名,条款即可造成赤色,点击F9躁急键然后咱们能够,击运转按钮或者是点,行圭臬即可运: 接上转发的端口3应用IDA连,的全数过程查看修立,要调试的过程找到咱们需。 应用最单纯的压缩软件第一、起初咱们能够,pk文献掀开a,他的so文然后解压出件 文献到jni目次下第四步:copy头,le中的ndk选然后设备grad项 看到这里,:23946端口是写死的,行批改不行进,举行端口转发的时刻务必是23946以是上面的adb forward。机便是调试端这里PC当地,p地方:127.0.0.1以是host便是本机的i,确定点击: 的过程调试或者注入现正在良多行使造止别,我检测安装平淡会用自,mypid]/status文献道理便是轮回检测/proc/[,rPid字段是否为0查看他的Trace,不为0倘使,程trace了显示被其他进,直接退出圭臬那么这时刻就。试时必要过程的注入由于现正在的IDA调,nux中的ptrace机造过程注入现正在都是应用Li,就能够纪录trace的pid那么这里的TracePid,圭臬被谁人过程注入了咱们能够展现咱们的,碳酸钠的相对分子质量他正在调试或者是被。极少设施进而选用。 改了之后那么修,来的so文献咱们正在交换原,新回编译再次重,装置署名,重要的加密函数下断点再次依据之前的逻辑给,OnLoad函数下断点了这里不必要正在给JNI_,改了反调试效力了由于咱们一经修,依据这么单纯几步即能够是这里咱们只必要: 种数据构造旅馆是一, In Last Out按先辈后出(First,的方法使命FILO),ck Pointer应用旅馆指针(Sta,前的操作地方SP)指示当,是指向栈顶旅馆指针总。 这两个机遇那么懂得了,I_OnLoad函数中做的战略下面咱们先来看看是不是正在JN,JNI_OnLoad函以是咱们必要先动态调试数 bc是c层中最根基的函数库android编造中li,、socket等根基编造移用libc中封装了io、文献。要过程libc封装层全数上层的移用都需。so是最根基的以是libc.,断正在这里以是会,极少常用的编造so并且咱们还必要懂得,nker好比li: 何应用IDA来调试so代码到这里咱们算是解说完了如,pk的常识了从而破解a,A东西比拟庞杂由于这里ID,章篇幅有点长以是这篇文,能够多看几遍以是同砚们,不多了就差。作品中涉及到的常识点吧下面咱们来清理一下这篇: 其然果不,ebug属性这里没有d,是不行够调试的以是这个apk,增加这个属性以是咱们必要,编译即可然后正在回: 无间运转7》然后,nLoad断点处进入JNI_O,行单步伐试应用F8进,步跳入调试F7举行单,调试代码找到反处 们看到这里我,个if语句起初是一,数是否为NULL用来鉴定通报的参,是的话倘使,返回直接,的话不是,字符串的长度保全到v2中应用strlen函数获取,oc申请一块堆内存然后应用mall,result首指针保全到,递进来的字符串长度+1巨细是v2+1也便是传,始进入轮回然后就开,esult首指针r,i指针赋值给,轮回早先,1-1获取到的v3是通过v,来字符串的地方便是函数通报进,递进来字符串的字符值那么v6便是获取传,去48然后减,给v7赋值,能够猜到了这里咱们,字符转化这里思做,化成int类型把char转,往下看无间,=48的线倘使v6=,倘使遭遇字符0也便是说这里,值1就赋,下看正在往,获得的v7值看到咱们上面,src数组中的值被用来取key_,key_src变量那么这里咱们双击,他的值地方就跳转到了,其然果不,一个字符数组这里保全了,度正好是18看到他的长,们应当认识了那么这里我,进来的字符串这里通过通报,历字符串轮回遍,字符获取,化成数字然后转,_src中的字符正在倒序获取key,sult中保全到re。返回然后。 令代码不正在领会了这里的ARM指,查看即可大多自行,入调试即可咱们直接进: 页面的时刻当正在调试,要调试的so文献照射到内存的地方ctrl+s能够火速定位到咱们思:机械键盘和普通键盘的区别机械键盘和普通键盘的区别机械键盘和普通键盘的区别
    友情链接 企业商铺 地区分站

    免费通话

    • 获取验证码

    W88主页 - 版权所有  网站地图