能力值:
( LV4,RANK:50 )
|
-
-
2 楼
EAX的低8位就是AL
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
怎么表达,怎么写呢,或者截图说明,咋个看法,关键性问题是如何动态观看敌情?
实质性问题还是没有奖明,谢谢。再次感谢。
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
我不知道你想做什么........
如果你用调试器动态调试,中断在代码间某个位置,这个时候通过寄存器窗口观察到的
EAX = 0x12345678
那么AL = 0x78 AX = 0x5678
也就是说
AL = EAX and 0x000000FF
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我知道你说的是OD中间的那个信息输出窗口,
我就想知道,如何才能知道寄存器中何时al变成0或变成1的,找到它变化时的那个地址,用肉眼动态的看出来。
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
|
能力值:
( LV13,RANK:400 )
|
-
-
7 楼
楼主是想像下断点一样,让程序跑起来,但是又需要在每次写eax之前段下来,貌似没有寄存器断点这一功能。
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
如果想要自动判断 if(EAX & 0xFF == 1) {}这样的功能的话, 可以自己实现一个小的调试机制,然后自己自动调试,每次断下的时候取ThreadContext 就行了
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
楼主的思维方式有问题,所谓的断点,关键是那个点字,也就是说,你设置的断点一定是落在程序的一个确定的位置上,你只能在这个位置上“蹲守”,看看当程序运行到这个位置的时候,你要监视的寄存器是否符合条件。你想凭空根据寄存器的值来下断点?谢天谢地,幸好调试器的编写者没有你这种想法,要知道,调试器不仅监视你的程序领空,还会频繁进入系统领空,如果AL一等于确定的值就断下,你还想这样找到关键点,设想一下吧,其可能性不会比大海捞针的一亿次方分之一高!举个例子,50+50=100,但是,并不意味着得到100只有50+50这一种途径,只能说这是无数种途径中的一种!或者说得再具体一点,你只知道程序到达关键点时AL=0或者AL=1,要知道,如果全局地看,在整个程序运行期间,AL=0或AL=1的次数完全就是天文数字,而你所希望了解的那次可以肯定地说,只是其中最普通的一次,绝不会因任何不同可以把一个近乎或者已经麻木熟睡的人唤醒。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
之所以问这个问题,因为近期破解了一个去水印的软件。
该软件未注册时弹出个框,从此可以作为切入点NOP之后,功能限制就解了。
开始吧,我从网上找同版的破解补丁研究人家破解之中的不同点,
由此推测人家的判断注册标志的思路,结果研究中发现有很多东西看起来的破解未必是真破解(有的只不过是伪破解,某些东西不显示而已。比方很多PS的DEMO版的滤镜)再有一直对看雪论坛精华中的文章mov eax,754EF这种直接赋值语句不太明白,不是不明白语句本身的涵义,而是不知此值是从何而来。怎么就看出内存中数值的变化,由此给符合条件的值。我知道一是动态跟出来的,更重要的是通过跟的方式得到上下文衔接走势的依据。 就拿这个图来说吧,它修改先后eax中寄存器的值,也没有写着是0还是1啊。可它改完就管用,再往下走,会走到一些公共运行的地方,错误输入码的地方,但thank you的地方不会再去了,那该用何种更高的手段来判定呢。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
我再把那的值改回去,它又变了,也跟原来不一样啊,是不是必须得找一个相对不变的地方才说的通呢。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
多谢列位的帮助,我总算彻底明白,为什么到那的原因了。
这次真是知其所以然了~~~~~~~~~~~
开心啊,睡觉了,各位晚安吧。
|
|
|