摘要: 使用函数keybd_event可以模拟用户按键,源代码如下[代码]程序的功能是在记事本程序中模拟按下ctrl+c,来粘贴剪贴板中的内容,程序首先将记事本窗口置顶,然后按下复制按键。逆向了一下keybd_event函数,发现他其实是调用的user32.dll中的SendInput函数,而SendInput函数直接调用系统内核,到达系统内核以后OD便无法继续跟踪了。所以,是否keybd_event函数... 阅读全文
posted @ 2009-08-09 22:05 认真做人,认真做事 阅读(2067) 评论(0) 推荐(0) 编辑
摘要: zzz要想获得其他程序edit控件中的信息,只能通过发送WM_GETTEXT消息才能成功,代码如下[代码]设定EDIT中的内容在上篇日志中:) 阅读全文
posted @ 2009-07-29 15:46 认真做人,认真做事 阅读(2660) 评论(0) 推荐(1) 编辑
摘要: zzz如何获得其他程序的EDIT控件中的内容呢?第一个想法就是使用GetWindowText函数,设定其内容的话就是SetWindowText函数,其实不对,这两个函数对于其他的控件都能够正常工作,唯独对于EDIT控件不行,我在这边困惑了好久,甚至想去逆向一下程序,看看到底有没有发送WM_GETTEXT命令和WM_SETTEXT命令了,幸好有google。。。省却一番功夫。贴一段不能成功的代码[代... 阅读全文
posted @ 2009-07-28 17:01 认真做人,认真做事 阅读(2450) 评论(2) 推荐(0) 编辑
摘要: zzz可以调用函数FindWindow(窗口类名,窗口标题)获得窗口的句柄,然后调用EnumChildWindows(父窗口,回调函数名,参数)来获得父窗口下的子窗口的句柄,代码实现如下[代码]获得这些句柄以后就可以为所欲为了,能做的事如下:FindWindow 按类名或窗口名(Caption)查找一个窗口FindWindowEx 类似于FindWindow提供了更多的功能GetLastActiv... 阅读全文
posted @ 2009-07-28 15:34 认真做人,认真做事 阅读(7288) 评论(0) 推荐(2) 编辑
摘要: zzz同样是 Windows环境下32位汇编语言程序设计 书中的例子,程序A向程序B发送消息,程序B响应这个消息,代码如下 [代码]接收程序代码 [代码]例子很简单,但是心里有个疑问,程序A本身产生的消息和程序B产生的消息之间是否有什么差别?能否在程序中识别当前的消息是否本身产生的?否则响应程序的流程不就是乱了吗?我感觉这个消息互发的功能应该没这么简单,继续研究去~发现一件有趣的事情,不仅是WM_... 阅读全文
posted @ 2009-07-27 14:29 认真做人,认真做事 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 一直想找到OD的记录运行过的代码的功能,今天终于弄出来了,使用RUN跟踪,然后在OD的查看-》RUN跟踪里就可以看到所有运行过的代码了。首先讨论一下寻找消息处理函数的方法-》寻找USER32.DefWindowProcA函数法,这个寻找消息处理函数的方法基于一个事实:程序只对自己感兴趣的消息进行处理,而对自己不感兴趣的消息则交给windows默认的方法处理,这个方法就是USER32.DefWind... 阅读全文
posted @ 2009-07-26 14:35 认真做人,认真做事 阅读(2680) 评论(0) 推荐(0) 编辑
摘要: zzz在学习 Windows环境下32位汇编语言程序设计 这本书,获益匪浅,但是里面程序都是汇编写的,看着头大,所以自己试验一下用VC重写一下例程,发现确实是能用,但是最终生成的程序和汇编直接写成的程序还是有很大区别的,我是用的控制台方式重写的,编译完成以后发现开一个程序竟然会有两个窗口,一个是我写的窗口,一个是控制台的窗口,看来VC在我们自己的代码外面又额外的加了很多东西啊。改写的是firstw... 阅读全文
posted @ 2009-07-24 16:33 认真做人,认真做事 阅读(820) 评论(0) 推荐(0) 编辑
摘要: WM_NULL equ 0hWM_CREATE equ 1hWM_DESTROY equ 2hWM_MOVE equ 3hWM_SIZE equ 5hWM_ACTIVATE equ 6hWA_INACTIVE equ 0WA_ACTIVE equ 1WA_CLICKACTIVE equ 2WM_SETFOCUS equ 7hWM_KILLFOCUS equ 08hWM_ENABLE equ 0Ah... 阅读全文
posted @ 2009-07-13 17:28 认真做人,认真做事 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 上篇讲的是对程序的定时器消息下断点,如果要拦截用户消息,比如点击按钮等,则需要对消息WM_COMMAND下条件断点,下断点的位置与定时器消息相同,步骤如下:1 首先找到CWnd::WindowProc函数,进入这个函数以后在函数OnWndMsg前下条件断点,条件为[ebp+8]==WM_COMMAND,代码如下[代码]点击程序按钮,断下command消息,F7跟进73D31B95[代码]与WM_T... 阅读全文
posted @ 2009-07-13 17:22 认真做人,认真做事 阅读(1463) 评论(0) 推荐(0) 编辑
摘要: 如何找到MFC程序中的消息处理函数?1 如果想断下特定的消息的处理函数,则首先在函数CWnd::WindowProc函数中下条件断点,因为消息经过内核到相应的处理函数的过程中必须经过这个函数,此函数的定义如下:[代码]message即为消息,在这个函数中首先调用了函数OnWndMsg对消息进行处理,这个处理过程是找到消息对应的处理函数的过程,如果未能找到相应的处理函数则调用DefWindowPro... 阅读全文
posted @ 2009-07-12 23:36 认真做人,认真做事 阅读(1864) 评论(0) 推荐(0) 编辑