| 查看: 550 | 回复: 1 | |||
| 当前主题已经存档。 | |||
sdlj8051金虫 (著名写手)
|
[交流]
[转贴]POINT H收集翻译
|
||
|
POINT H,2K/XP下所谓的万能断点。从网上收集的点滴,翻译而成。以后遇到相关材料,还将继续补充。 1、什么是POINT H? 它是在XP/2K机子上的老的已知的hmemcpy,搜索user32中:F3 A5 8B C8 83 E1 03 F3 A4 E8,就是POINT H。 或者搜索8B C1 C1 E9 02 F3 A5 8B C8 83 E1 03 F3 A4 E8。一旦找到,它返回位置地址,也就是说在内存拷贝之前。(实际的操作:F9,在内存中搜索上述字符串) 该模式应该发生在USER32的第一个OX3FFFF。比如: 77D46706 mov eax, ecx 77D46708 shr ecx, 2 77D4670B repe movsd ; <-- 在该指令上中断 77D4670D mov ecx, eax 77D4670F and ecx, 3 77D46712 repe movsb 77D46714 call sub_77D46722 (呵呵,我在我的机子上也找到了,还是借用别人的吧,省得麻烦:) 该段代码显示了内存是在哪里从gui-项被拷贝到提供给用户的缓冲器中。追踪一小段,出现SendMessage和Getwindow×××代码段。 2、在OD或SICE中输入: BP “POINT-H的值”或在SICE中用BPX。它类似Win98中的hmemcpy,但工作在2K/XP的80%的程序中(不用于VC++)。但我们可以用一些技巧使它用于所有的程序(也可用于VC++)。当在程序编辑框中输入假的序列号时,程序中断。 3、实际上,输入bpx user32!EcGetText+51可以做到"d edi-ebx"。 4、还有寻找POINT H的另外一个方法:如果有USER32.DLL的符号文件(USER32.PDB或USER32.DBG),可以在IDA中打开USER32.DLL,适用PDB插件加载上面的符号,然后可以搜索函数ECGetText。它就是POINT H。该函数是USER32.DLL的内部函数,调用来自EditWndProc(也是一个内部函数)。 ============================================================== 译者注:我进行了该方法测试,的确找到了该位置。它实际上是对键盘输入和鼠标按键的一个中断,但是和万能断点插件中POINT H的地方不一致。万能断点插件中的POINT H好像常常不能中断,只有VB5和VB6的能中断 [ Last edited by sdlj8051 on 2006-10-6 at 11:30 ] |
» 猜你喜欢
基金委咋了?2026年的指南还没有出来?
已经有5人回复
国自然申请面上模板最新2026版出了吗?
已经有17人回复
纳米粒子粒径的测量
已经有8人回复
疑惑?
已经有5人回复
计算机、0854电子信息(085401-058412)调剂
已经有5人回复
Materials Today Chemistry审稿周期
已经有5人回复
溴的反应液脱色
已经有7人回复
推荐一本书
已经有12人回复
基金申报
已经有4人回复
常年博士招收(双一流,工科)
已经有4人回复
» 本主题相关商家推荐: (我也要在这里推广)
2楼2006-12-29 01:16:52











回复此楼