摘要: crackme源代码&作者破文&我改动的版本crackme的相关东西在上面的链接,下面具体说一下破解anti debug的全过程,首先当然是OD载入程序,代码如下:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--00401D80&g... 阅读全文
posted @ 2010-01-09 18:54 认真做人,认真做事 阅读(1600) 评论(6) 推荐(0) 编辑
摘要: 以下是原帖的内容,作者是xfish,谢谢xfish的付出![代码]文章无疑是好文章,但是我觉得还是有问题的,即文章里的“call指令是将下一句指令的偏移压入堆栈”,从如果压入的是指令的偏移,那就谈不上重定位了,因为这个偏移值无论是在病毒体中还是在中毒的程序中都是不会变的。关于这点我也用OD打开一个简单的程序看了一下,事实上call指令压入堆栈的内容应该是下条指令的绝对地址,... 阅读全文
posted @ 2009-10-27 20:59 认真做人,认真做事 阅读(798) 评论(0) 推荐(0) 编辑
摘要: 1byte=8bit1word=2byte1dword=2word=4byte=32bit,这就是32位机说法的来源1byte最大可表示的数位二进制1111 1111,表示成十六进制即FF1int=4byte 1char=1byte1unsigned short int=2byte1unsigned long int=4byte数据在内存中存放的规则是高位在高字节,低位在低字节,因此一个int型变... 阅读全文
posted @ 2009-10-25 10:28 认真做人,认真做事 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 我们可以通过WriteProcessMemory函数直接修改其他进程的内存从而实现内存补丁或者游戏修改之类的功能,但是,有个问题,并不是所有的程序都是能够被写内存的,这从前面的日志 通过CreateToolhelp32Snapshot函数获得系统中当前运行的进程信息2 可以看出来,好多程序的打开状态是失败的。所以,提升当前进程的权限非常非常必要。程序实现的代码如下:[代码]这段代码就是在 通过Cr... 阅读全文
posted @ 2009-10-22 16:28 认真做人,认真做事 阅读(3819) 评论(0) 推荐(0) 编辑
摘要: 以PROCESS_ALL_ACCESS权限打开进程以后既可以使用ReadProcessMemory读取程序内存,也可以使用WriteProcessMemory改写程序的内存,这也是一些内存补丁使用的招数,以下是程序的实现代码[代码]程序的功能是改写名为button.exe程序中内存地址为0x0040505d的值为97,即ASCII值的a,此处内存的原内容为ASCII值的m被修改的程序实现代码如下:... 阅读全文
posted @ 2009-10-21 18:21 认真做人,认真做事 阅读(17324) 评论(5) 推荐(1) 编辑
摘要: 修改一个程序的过程如下:1、获得进程的句柄 2、以一定的权限打开进程 3、调用ReadProcessMemory读取内存,WriteProcessMemory修改内存,这也是内存补丁的实现过程。下面贴出的是调用ReadProcessMemory的例程[代码]程序读取400000地址4个字节的数据,对于exe文件,也就是PE文件,读出来的内容永远都是905a4d,翻译成ASCII字符也就是̶... 阅读全文
posted @ 2009-10-16 11:46 认真做人,认真做事 阅读(6449) 评论(0) 推荐(0) 编辑
摘要: 这是昨天程序的改进版,调用了OpenProcess函数,并输出了函数执行情况,程序代码如下:[代码]在我的电脑上运行的结果如下:[代码]好多失败的,看来要着手研究如何提高进程的权限了 这个小程序可以用来测验一个进程所允许的权限,还是很有用滴 阅读全文
posted @ 2009-10-10 10:28 认真做人,认真做事 阅读(1687) 评论(0) 推荐(0) 编辑
摘要: zzz通过调用CreateToolhelp32Snapshot函数可以对当前系统中运行的进程取一个快照,获得系统中运行的进程的相关信息,获得进程ID以后就可以通过OpenProcess函数获得进程的句柄,实现对进程的控制具体实现代码如下[代码] 阅读全文
posted @ 2009-10-09 15:41 认真做人,认真做事 阅读(979) 评论(0) 推荐(0) 编辑
摘要: 在一个窗口上建立两个按钮,并分别处理每个按钮的消息,程序代码如下:[代码]代码中需要注意的是hButton1=::CreateWindowEx(NULL,"BUTTON","button1",WS_VISIBLE|WS_CHILD,300,200,60,20,hWinMain,(HMENU)1,hInstance,NULL);hButton2=::CreateWindowEx(NULL,"BUTT... 阅读全文
posted @ 2009-09-28 17:02 认真做人,认真做事 阅读(452) 评论(0) 推荐(1) 编辑
摘要: The EnumWindows function enumerates all top-level windows on the screen by passing the handle to each window, in turn, to an application-defined callback function. EnumWindows continues until the last... 阅读全文
posted @ 2009-08-11 18:11 认真做人,认真做事 阅读(1487) 评论(0) 推荐(0) 编辑