发新话题
打印

[转载]在xp+olly下实现和98+SICE的断点HMEMCPY

[转载]在xp+olly下实现和98+SICE的断点HMEMCPY

信息来源:看雪学院技术论坛
原作者:Ricardo Narvaja
翻译者:4nil

-----------------------------
如下为无插图版。
要看插图版的请下载附件:point-h.part1.rar
point-h.part2.rar
并且是中英对照的,有什么不明确的可以看原版。。。赫赫
这个是完全原版:http://www.redrival.com/immlep/doc/Punto_H_english.rar



Point-h in WinXP tutorial
by Ricardo Narvaja | email ricnar22@millic.com.ar
22.Dec.2oo2

[译者]4nil
[date]3-Jan-05

描述
如何在OllyDbg +Windows XP环境下下Hmemcpy断点
目标文件
Crackme v1.0 de Cruehead http://www.darmozjad.host.sk/import.php3
工具
OllyDbg 1.08b 汉化版

教程
前言
本教程的目的是教你如何在OllyDbg+WinXP情况下下API Hmemcpy断点,就像在Windows 98里一样。Hmemcpy就是那个显示哪里存放了你的用户名和序列号数据的函数的断点。

那个断点(暂称point-h)在每台机器里都是唯一的,在USER32.DLL.可以找到。一旦找到我们就可以用于C++, VB, Delphi, ASM,或者其他编程语言,只要简单的下一个断点在内存的存取上。

如何在我的电脑上找到point-h
首先我们需要定位point-h,这样我们Cruehead的crackme因为crackme不会产生其他信息而且非常简单(当然你也可以用其他程序)。接下来给你一步一步讲述过程。。。。
1)用Olly打开crackme
2)在当前模块搜索名称(标签),选择API 翻译信息。(图1)
译者注:对于中文版,你可以这样做,查看==》执行模式,名字列中选中当前模块USER32,按CTRL+N。
图 1
3)打开后,右击TranslateMessage函数,选择“在导入中条件记录断点,设置如下图的信息。

图 2
提示1。在某些系统里MSG==201对于point-h.没有作用,你可以尝试用MSG==202
4)RUN(F9)
5)输入信息(图3)

Name : narvaja
Serial: 1A2B3C4D5E


图 3
提示2。当然你可以输入任意值作为姓名和序列号,但是1A2B3C4D5E作为序列号更便于在内存中查找,而且不容易有重复。
6)按下OK。
7)Olly在条件断点断下程序。(图4)

图4
8)打开查看==》内存(ALT+M),右击内存列表,选择“搜索”,在ASCII区域填写1A2B3C4D5E(你的注册码)。(图5)

图 5
9)Olly找到符合的字串后会停下来(图6),然后我们标记信息,下BP MEMORY ON ACCESS.

图 6
10)运行(F9)Olly会在point-h断下。(图7)

图 7
77D29303 F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
这个就是我系统的point-h。我们用的Cruehead 的crackme仅仅是为了找到point-h。在接下来的例子里面我们就可以在point-h下断,相当于在Win98里下hmemcpy断点。

关于如何使用POINT-H的几个例子


例1。我们用Cosh

TOP

发新话题