能力值:
( LV3,RANK:20 )
|
-
-
2 楼
给你顶一下,我IDA附加被检测到APP直接退出了。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
嗯,多谢兄弟帮顶!我也是在运行期附着就退出了。
我将demo.apk改成debug模式运行,可以动态调试,但当它加载了它自己的so后就退出了。
之前尝试在fopen打断点,看它是否通过读取/proc/pid/status的traceid来检测的。但是发现并没有调用该函数。
昨天又尝试了看是否是通过获取系统时间,检测时间差,它确实在JNI_Onload中调用了gettimeofday,应该是这种方式检测并退出的。还在跟进中...
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
将demo.apk改成debug模式运行是啥意思,不懂。
如果你说的通过gettimeofday获取时间判断检测的话建议在这个函数下下个断跑起来看是否有二次调用来确定,不然的话只能从代码入手慢慢分析了。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
就是将demo.apk里的AndroidManifest.xml文件添加了android:debuggable="true"属性,然后用adb shell am start -D方式运行,此时进程就是等待调试状态,然后就可以用ida进行调试了(不过在它执行JNI_OnLoad中时还是会退出)。
我在gettimeofday下了断点,会被调用多次,应该是检测了多次。
|
能力值:
( LV8,RANK:130 )
|
-
-
6 楼
不能hook fopen吗,或者在libc.so fopen函数下断点,发现在读那个文件就跟进去,
或者就算再再牛逼的反调试,就算他一万个进程,你用启动调试,或者ida勾选那个加载so的时候就断下来,不行吗,他的反调试进程都没有跑起来又怎么可以反调试你呢
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
你说的这个方法我知道,我的IDA退出应该是被他的检测机制检测到了反应。
IDA调试蛋疼的就是不能像OD那样修改它代码,不然你就不用那么麻烦了
|
能力值:
( LV8,RANK:130 )
|
-
-
8 楼
 谁说不能修改啊
|
能力值:
( LV3,RANK:20 )
|
-
-
9 楼
我操,一直以为不行,求教训!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
可以调试的,现在就是在它加载so时,执行JNI_OnLoad里,退出了程序,而且也进了exit函数,我在它执行exit之前,把这句nop掉了,不过它又重新执行到这里来了,应该是有多次检测,代码有点复杂,目前还在分析它的逻辑代码呢。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
可以修改它的代码,在Hex View窗口中,找到有修改的位置,按F2,修改完了再按F2就完成了
|
能力值:
( LV3,RANK:20 )
|
-
-
12 楼
原来如此,明白了,感谢指导。
16进制修改还是不如OD
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
嗯,不客气!我也是刚学的,大家互相交流
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
兄弟,你好,看到麻烦回复一下,你还有脱这个壳不?
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
嗯,还需要脱这个壳的!
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
我也一直在研究这个,已经找到了CustomProvider里的native函数了,也是因为调试不了,所以没法进行下去了
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
嗯,在尝试过它的反调试时,发现在JNI_OnLoad里检测机制和正常逻辑是揉在一起的,然后各种switch case,很多处检测,改了它退出的位置后,逻辑就不正常执行了。
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
兄弟,能留个联系方式不?我也在研究这个
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
QQ:306318372 我也在研究这个,大家一起交流
|
能力值:
(RANK:270 )
|
-
-
20 楼
|
|
|