能力值:
( LV9,RANK:140 )
|
-
-
7 楼
弄了一次,发现有太多的不足了,做起来总是事倍功半,所以近期暂时不会弄这个了。
俗话说,真正的成长在于将自己的经验分享给大家,然后再从大家那获取新的突破,如此循环往复不断成长下去。所以欢迎到时候分享啊!(我感觉我好神棍,不知道这算不算忽悠呢。哈哈~)
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
哈哈,我也是像楼主一样一点一点分析so,如何找到脱壳点,如何绕过反调试等等
|
能力值:
( LV9,RANK:140 )
|
-
-
11 楼
嗯,要分析的话需要一些时间,所以暂时也就没去弄了,只是粗略看了一下。其它的判断以及解密都在第二个so里面,一些dvm的函数它是直接在模块列表中找libdvm.so以及libart.so,遍历模块找jar@classes.dex然后找dataoff+datasize的地方有段0x291的加密以qi开头的数据,appkey,sigcheck什么的,都保存着。
再后续的natives函数什么的就没看了,暂时看到的就这几个点了。不过虽然我没有分析,不过我的分析方法也在这文档里面了。属于比较笨的方法。
|
能力值:
( LV3,RANK:30 )
|
-
-
14 楼
楼主的这篇文章很有参考价值,过了反调试后,又前进了一步。不知道楼主是怎么把函数名给弄出来的?我一直弄不出反汇编时的函数名。
|
能力值:
( LV3,RANK:30 )
|
-
-
16 楼
libjiagu.so:ACC12390 ; ---------------------------------------------------------------------------
libjiagu.so:ACC12390 STMFD SP!, {R4-R7,LR}
libjiagu.so:ACC12394 LDR R4, =(unk_ACC18EB0 - 0xACC123A8)
libjiagu.so:ACC12398 SUB SP, SP, #0x9C
libjiagu.so:ACC1239C MOV R7, R0
libjiagu.so:ACC123A0 LDR R4, [PC,R4] ; unk_ACC18EB0
libjiagu.so:ACC123A4 LDR R3, [R4]
libjiagu.so:ACC123A8 MOV R6, R1
libjiagu.so:ACC123AC MOV R2, #0x94
libjiagu.so:ACC123B0 MOV R1, #0
libjiagu.so:ACC123B4 MOV R0, SP
libjiagu.so:ACC123B8 STR R3, [SP,#0x94]
libjiagu.so:ACC123BC BL memset_0
libjiagu.so:ACC123C0 LDR R3, =0x6F732E2A
libjiagu.so:ACC123C4 MOV R2, #0
libjiagu.so:ACC123C8 MOV R0, SP
libjiagu.so:ACC123CC STR R3, [SP,#0xC]
libjiagu.so:ACC123D0 STRB R2, [SP,#0x10]
libjiagu.so:ACC123D4 STR R7, [SP]
libjiagu.so:ACC123D8 STR R6, [SP,#4]
libjiagu.so:ACC123DC BL unk_ACC0EDF4
libjiagu.so:ACC123E0 LDR R3, =(dword_ACC55380 - 0xACC123F0)
libjiagu.so:ACC123E4 LDR R1, =(aMakekey - 0xACC123F4)
libjiagu.so:ACC123E8 ADD R3, PC, R3 ; dword_ACC55380
libjiagu.so:ACC123EC ADD R1, PC, R1 ; "makekey"
libjiagu.so:ACC123F0 STR R0, [R3]
libjiagu.so:ACC123F4 BL unk_ACC0EE28
libjiagu.so:ACC123F8 SUBS R12, R0, #0
libjiagu.so:ACC123FC BEQ loc_ACC12424
libjiagu.so:ACC12400 BIC R0, R12, #0xFF0
libjiagu.so:ACC12404 BIC R0, R0, #0xF
libjiagu.so:ACC12408 MOV R1, #0x1000
libjiagu.so:ACC1240C MOV R2, #3
libjiagu.so:ACC12410 MOV R7, #0x7D
libjiagu.so:ACC12414 SVC 0
libjiagu.so:ACC12418 LDR R3, =(unk_ACC18ECC - 0xACC12424)
libjiagu.so:ACC1241C LDR R3, [PC,R3] ; unk_ACC18ECC
libjiagu.so:ACC12420 STR R3, [R12]
libjiagu.so:ACC12424
libjiagu.so:ACC12424 loc_ACC12424 ; CODE XREF: libjiagu.so:_Z10__fun_a_17PcjS_Rii+73Cj
libjiagu.so:ACC12424 LDR R3, =(dword_ACC55380 - 0xACC12434)
libjiagu.so:ACC12428 LDR R1, =(aJni_onload - 0xACC12438)
libjiagu.so:ACC1242C ADD R3, PC, R3 ; dword_ACC55380
libjiagu.so:ACC12430 ADD R1, PC, R1 ; "JNI_OnLoad"
libjiagu.so:ACC12434 LDR R0, [R3]
libjiagu.so:ACC12438 BL unk_ACC0EE28
libjiagu.so:ACC1243C LDR R1, [SP,#0x94]
libjiagu.so:ACC12440 LDR R3, =(dword_ACC5537C - 0xACC12450)
libjiagu.so:ACC12444 LDR R2, [R4]
libjiagu.so:ACC12448 ADD R3, PC, R3 ; dword_ACC5537C
libjiagu.so:ACC1244C CMP R1, R2
libjiagu.so:ACC12450 STR R0, [R3]
libjiagu.so:ACC12454 BNE loc_ACC12460
libjiagu.so:ACC12458 ADD SP, SP, #0x9C
libjiagu.so:ACC1245C LDMFD SP!, {R4-R7,PC}
libjiagu.so:ACC12460 ; ---------------------------------------------------------------------------
比如 这里是我的 动态逆向的,最后在makekey 和 JNI_OnLoad 处,但我怎么没有显示loadAndInitSo 这个函数名呢?
|
能力值:
( LV3,RANK:30 )
|
-
-
18 楼
分析的不错啊,不过360的反调试还是比较常规,脱壳也不难,能用的工具也不少,赞
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
楼主问一下 文档里(17页)你说干调反调试的地方弄个死循环
但是实际SO中你是怎么加上去的 loc_753779d0这一句的
|
能力值:
( LV9,RANK:140 )
|
-
-
21 楼
bluth
楼主问一下 文档里(17页)你说干调反调试的地方弄个死循环
但是实际SO中你是怎么加上去的 loc_753779d0这一句的
用的是ndk工具里的as.exe手动编译的arm汇编,然后在ida里面进行对应的修改就可以了。
|