能力值:
( LV7,RANK:100 )
|
-
-
2 楼
如果你用我的ollyhelper插件,可以直接调试记事本,然后设置break on dll时加入LYJM.IME。加载此输入法,就直接断在它的EP了。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
最初由 goldenegg 发布 如果你用我的ollyhelper插件,可以直接调试记事本,然后设置break on dll时加入LYJM.IME。加载此输入法,就直接断在它的EP了。 具体怎么操作,请说详细点,我还不太会用OD。谢谢
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
请问楼主,00894F8D是怎么算得的?
我出错地址为:00874BE9
动态起始地址是:00C10000
那我断在哪儿?
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
最初由 heng9ml 发布 请问楼主,00894F8D是怎么算得的? 我出错地址为:00874BE9 动态起始地址是:00C10000 那我断在哪儿? 我不知道你用的金码是什么版本,我用的是6.0版的,如果你用的是5.0版的话,可能不一样。另外,你说的出错地址是:00874BE9,我不知道是指什么出错地址,我原贴中说的是注册出错的地址,用OD加载LYJM.IME后可在参考字符中查到,反汇编LYJM.IME也可找到。最后,我用的00894F8D这个地址是我将动态调试时LYJM.IME在内存中的段地址00890000加上偏移00004F8D算出来的,动态调试中程序运行到00894F8D时将要显示“注册失败!请检查注册号……”,而在此时,ESI中正好存有正确的注册码,所以,我就在这个地址上设置断点,以便查看正确的注册码。当然,下次调试时,段地址就不一样了,但偏移还是一样的。
另外,这位兄弟要注意,这个软件安装到不同的机器上,生成的LYJM.IME文件不是完全一样的,因此,反汇编后,相应的地址可能不同。顺便说一下,安装后生成的LYJM.MB也不一样,是否注册的信息保存在这个码表文件中,而且,这个码表文件还存有软件序列号,这与机器硬件有关。因此,如果想用LYJM.IME和LYJM.MB文件重新制作安装程序,即使安装成功,软件也无法使用。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
最初由 jtfzp 发布 具体怎么操作,请说详细点,我还不太会用OD。谢谢 谢谢这位兄弟,我通过尝试,已经会用你的插件来调试了,确实方便不少,谢谢。
另外,希望有同志说说设置OD断点的技巧,也好让我这样的新手学习学习。OD确实是一款好东西。同时也希望版主能开个专贴,讨论OD的使用方法技巧,积少成多,促进这个工具的使用与普及。
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
我没有你这个软件,不过这是个常识问题
“mov esi,lyjm.10001cc90”改为“mov esi,esi”,多余字节nop掉(lyjm.10001cc90处存放着出错信息”
问题出在 mov esi,lyjm.10001cc90 处,因为10001cc90是根据动态加载情况由程序自行修改的,所以,你改为mov esi,esi后还是会被加载程序修改回来的。你应该分析一下机器码:
mov esi,lyjm.XXXXXXXX 的机器码是:be XXXXXXXX
mov esi,esi 的机器码是:8b f6
注意那个f6包括后面的数据都会被机器动态改变的,计算机执行到这个地方就有好多种可能的了
但是也不能用跳转,因为跳转会用两个字节
想达到这个目的一是想办法在其他地方跳转
二就是把mov esi,lyjm.XXXXXXXX改成其他的没用的寄存器,例如mov ebx,lyjm.XXXXXXXX,要结合你的上下文了
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
最初由 Binny 发布 我没有你这个软件,不过这是个常识问题 “mov esi,lyjm.10001cc90”改为“mov esi,esi”,多余字节nop掉(lyjm.10001cc90处存放着出错信息”
问题出在 mov esi,lyjm.10001cc90 处,因为10001cc90是根据动态加载情况由程序自行修改的,所以,你改为mov esi,esi后还是会被加载程序修改回来的。你应该分析一下机器码:
........ 首先谢谢你的指点,但是,10001cc90不是根据动态加载情况由程序自行修改的,如果你用W32DASM静态反汇编,他就是这个地址。文件中这个地方是出错的字符。用mov esi,lyjm.10001cc90 这句代码是让那些字符显示出来。我改为mov esi,esi后不会被加载程序修改回来,这在调试时已经证明。在WIN98下,我这样改后,程序运行时就能在原来显示注册码错误信息处显示出正确的注册码。相当于变成了一个注册机了。而同样修改后,在WIN2000下调试时,程序走到这时,代码还是mov esi,esi,下面是三个nop,再下面程序还是与原来一样,但是再往下执行几步程序就关闭退出了。我想来想去不明白,为什么在2000下,程序修改后执行不下去了(代码没变),而在98下,程序修改后却能顺利执行下去。如果你感兴趣,我可以把这个东西发给你看看。我的QQ是120365109.再次谢谢你。
|
|
|