|
[求助]你看看我这个自动单击MessageBox对话框中的Yes按钮的代码,哪里不对?
检查你的API声明和参数类型相不相符。 |
|
[求助]你看看我这个自动单击MessageBox对话框中的Yes按钮的代码,哪里不对?
Private Sub Timer2_Timer() Dim hWnd2 As Long Dim hWnd3 As Long Dim hWnd4 As Long hWnd2 = FindWindow("#32770", "标题") hWnd3 = FindWindowEx(hWnd2, 0, "Button", "是(&Y)") hWnd4 = GetWindowLong(hWnd3, GWL_ID) '取按钮ID If hWnd3 Then m = SendMessage(hWnd3, &H201, 0, &h50005) '发送按钮按下 n = SendMessage(hWnd3, &H202, 0, &h50005) Debug.Print m, n End If End Sub Private Sub Command2_Click() MessageBox Form1.hwnd, "这里是内容", "标题", vbYesNo End Sub |
|
[求助]SEH汇编实现代码异常处理容错让线程和进程走完.
我没有vs 2008,不清楚,不过我又试过vs 2003,用release版本编译,也没有问题。 |
|
[求助]SEH汇编实现代码异常处理容错让线程和进程走完.
你用什么编译器?我是用RadASM配VC6库编译测试过可以显示MessageBox的。 |
|
[求助]SEH汇编实现代码异常处理容错让线程和进程走完.
// 略为修改了一下。 #include <windows.h> #include <tchar.h> #include <stdio.h> DWORD WINAPI ThreadProc(LPVOID lpParameter); int WINAPI sehcode(PEXCEPTION_RECORD pExcept, void *pFrame, PCONTEXT pContext,void *pParam); void test(void); int __cdecl _tmain(int argc, _TCHAR* argv[]) { DWORD tid; HANDLE th = CreateThread(NULL,0,ThreadProc,NULL,0,&tid); WaitForSingleObject(th,INFINITE); MessageBox(NULL,"ThreadOver","test",0);//不执行 return 0; } DWORD WINAPI ThreadProc(LPVOID lpParameter) { _asm{ push offset sehcode; push dword ptr fs:[0]; mov dword ptr fs:[0],esp; } test(); _asm{ pop dword ptr fs:[0]; add esp,4 } return 0; } int WINAPI sehcode(PEXCEPTION_RECORD pExcept, void *pFrame, PCONTEXT pContext,void *pParam) { pContext->Ecx = 3; MessageBox(NULL,"SEH","test",0);//不执行 return 0; } void test(void) { int a=0; int b=4; int c=b/a; printf("%d\r\n",c); } |
|
(详细如图)热血传奇如何在寻路的同时打怪?(即两个功能能否同时进行)
我没有写过外挂,只是说一下想法,不保证有用,如果这个方法没用,楼主可以忽视之。 设计一个全局标志,这个标志是打怪函数进行设定的,而打怪函数是由定时器进行调用的,当打怪函数触发时,修改这个标志,并执行打怪操作。打怪完成再复位这个标志,而寻路函数则在在运行过程中不时测试这个标志位,如果这个标志位被设定,则暂停寻路,当这个标志位被复位时,再继续寻路。 |
|
问个寄存器加减法问题
; 可以用sbb带借位减法或adc带借位加法利用edx:eax进行模拟借位加减运算。 mov eax,0ffffffffh xor edx,edx add eax,2 adc edx,0 ; edx:eax == 100000001h |
|
问个寄存器加减法问题
eax的值本来就是你认为他是0-4294967295的值就是0-4294967295的值,你认为他是-2147483648~+2147483647的值就是-2147483648~+2147483647的值,根本没什么区别的。 |
|
[原创]打造史上最完整APIHOOK完整开发库
不管怎么说,最重要的楼主的分享精神。 |
|
[求助]竹君,你hook的开头5个字节
你那XXXX地址正确吗? |
|
[求助]竹君,你hook的开头5个字节
_declspec (naked) NTSTATUS OriginalObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType OPTIONAL, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL) { _asm { ; 将下面红色部份删除就行了。 mov edi,edi push ebp mov ebp,esp push ecx push ecx push ebx push esi push edi mov eax,XXXX add eax,5 jmp eax } } |
|
[求助]有办法在程序运行过程中打印函数调用堆栈不?谢谢!
写调试器,单步跟踪,遇到函数就取堆栈。或者对某函数下断点,程序中断则取堆栈,Hook注入程序等方法获取函数堆栈。这些方法应该可以。 |
|
[求助]为什么 LoadLibrary kdcom.dll 不能成功呢?
kdcom.dll貌似是内核的dll,R3的应用程序还不够权限加载它。 |
|
[求助]各位师兄 师傅 能帮小弟看下代码的赋值吗
IOCTL_MT_KILLFILE不是一个值,而是一个宏,这个宏展开后就是: CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x207, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)宏函数 CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x207, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)宏函数展开后就是: ==CTL_CODE(0x8, 0x207, 0, 1 | 2) ==IOCTL_MT_KILLFILE == CTL_CODE == 0x8C81C ==((0x8) << 16) | ((3) << 14) | ((0x207) << 2) | (0) 其中: #define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008 #define METHOD_BUFFERED 0 #define FILE_READ_ACCESS ( 0x0001 ) // file & pipe #define FILE_WRITE_ACCESS ( 0x0002 ) // file & pipe 最后:IOCTL_MT_KILLFILE等于的值是:0x8C81C 至于你使用这个值没办法成功通信,就不清楚了。应该编码中有问题。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值