能力值:
( LV6,RANK:90 )
|
-
-
2 楼
cmp dword ptr [edi+8],offset sub_8746230
edi +8处存放的是一个地址, 此处用来判断这个地址是否和 sub_8746230这个函数的地址相同,如果相同,就跳转。
|
能力值:
( LV7,RANK:110 )
|
-
-
3 楼
[QUOTE=marxixing;707149]cmp dword ptr [edi+8],offset sub_8746230
edi +8处存放的是一个地址, 此处用来判断这个地址是否和 sub_8746230这个函数的地址相同,如果相同,就跳转。[/QUOTE]
同意!应该是用来判断某个函数的地址,可能程序之前有反调试检测,检测到调试就把sub_8746230的地址改了不让程序执行真正的sub_8746230!
|
能力值:
( LV9,RANK:180 )
|
-
-
4 楼
这题我帮不了你了.
请出简单一点的.
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我知道是跳转,可是为什么要比较这个函数,这个函数什么也没有做,我觉得应该不是和反调试有关,但是还是很迷茫,是编译器优化的原因,还是程序本身就是这个逻辑。
不好意思,越说越糊涂
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
如果没有得到满意的答案,可不可以不结贴
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
感觉不是和反调试有关,而感觉跟调试有关。感觉在debug或者某种情况下,调用这个函数;而在正式发布的时候跳过了函数,为了图省事,就改成比较了。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
可是被调用的这个函数什么也没有做,就是压栈出栈,为什么要这样比较呢,而且我在这么程序里遇到了不知一次
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
哪位高手给帮着解答一下
我也想知道为什么,那个函数什么都没做但还要跟它的地址比较
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
我猜测啊,这个ebp+8的函数指针在这个函数内有一个switch...case的结构,cmp dword ptr [edi+8],offset sub_8746230这个比较应该属于default下
处理方式了,
|
能力值:
( LV7,RANK:100 )
|
-
-
11 楼
看的我也不是很明白...
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
[QUOTE=asmc;707398]我猜测啊,这个ebp+8的函数指针在这个函数内有一个switch...case的结构,cmp dword ptr [edi+8],offset sub_8746230这个比较应该属于default下
处理方式了,[/QUOTE]
这么比较是在函数的一开始,也就是刚用参数赋值,就进行比较了,没有switch结构
|
能力值:
( LV4,RANK:50 )
|
-
-
13 楼
[QUOTE=kakakaka;707125]在函数开始不久有一句:
mov edi,[ebp+arg_4]
cmp dword ptr [edi+8],offset sub_8746230
jz 函数结束
......
但sub_8746230为:
sub_8746230 proc near
pu...[/QUOTE]
你的代码贴的太少,根本没有办法分析
|
|
|