能力值:
( LV2,RANK:10 )
|
-
-
20 楼
代码不长,直接贴上来吧~嘿嘿.LZ不怪我吧~
////////////////////////////////////////////////////////////////////////////////
//
//头文件
//
////////////////////////////////////////////////////////////////////////////////
.data?
hInstance dd ?
ProcessID dd ?
hTokenHandle dd ?
CallAddress db ?
hProcess dd ?
tp dd ?
inta dd ?
.data
winname db "扫雷",0
nofind db "请您先启动扫雷",0
error db "错误",0
openerror db "不能打开进程",0
right db "恭喜",0
msg_map db "你现在已经突破自定义的地图限制,高度最小可为2,宽度最小可为7",0
msg_mine db "您现在自定义的雷的数量可以设置的最小值已经变为1",0
ok db "处理完毕",0
timestop db 6 dup(90h),0
address_time dd 01002ff5h,0
timedec db 0FFh,0Dh,9Ch,57h,00h,01h,0 ;时间递减代码
time db 0FFh,05h,9Ch,57h,00h,01h,0 ;时间恢复代码
address_map1 dd 010015F0h,0 ;行数突破代码
address_map2 dd 010015fFh,0 ;列数突破代码
map1 db 02h,0 ;高度最少为2
map2 db 07h,0 ;宽度最少为7
address_mine dd 0100162Dh,0 ;雷数最小值
mine db 01h,0 ;雷数的最小值
address_nodie dd 01003536h,0 ;死不了地址
nodie db 90h,90h,0 ;死不了代码
address_kill dd 01003592h,0 ;秒杀地址
address_kill2 dd 0100352Dh,0 ;秒杀地址2
address_kill3 dd 01003536h,0 ;秒杀地址3
kill db 01h,0 ;秒杀代码1
kill2 db 90h,90h,0 ;秒杀代码2
kill3 db 0EBh,0 ;秒杀代码3
msg_kill db "处理完毕,请再次按下即可过关",0
////////////////////////////////////////////////////////////////////////////////
//
//主函数
//
////////////////////////////////////////////////////////////////////////////////
.elseif eax==WM_COMMAND
mov eax,wParam
mov ebx,eax
invoke FindWindow,NULL,offset winname
.if(eax==0)
invoke MessageBox,0,offset nofind,offset error,0 ;不能打开进程
.endif
mov hProcess,eax
invoke GetWindowThreadProcessId,hProcess,offset ProcessID ;获取进程ID
invoke OpenProcess,PROCESS_ALL_ACCESS,TRUE,ProcessID ;打开进程
mov hProcess, eax
.if (eax==0)
invoke MessageBox,0,offset openerror,offset error,0 ;不能打开进程(打开失败)
invoke ExitProcess,0
.endif
mov eax,ebx
.if eax == IDC_BTN1 ;退出
invoke ExitProcess,0
.elseif eax == IDC_BTN2 ;秒杀
invoke WriteProcessMemory,hProcess,address_kill, offset kill,1,offset inta
invoke WriteProcessMemory,hProcess,address_kill2,offset kill2,2,offset inta
invoke WriteProcessMemory,hProcess,address_kill3,offset kill3,1,offset inta
invoke MessageBox,0,offset ok,offset right,MB_OK
.elseif eax == IDC_BTN3 ;时间禁止
invoke WriteProcessMemory,hProcess, address_time,offset timestop,6,offset inta
.elseif eax == IDC_BTN4 ;时间递减
invoke WriteProcessMemory,hProcess,address_time,offset timedec,6,offset inta
.elseif eax == IDC_BTN5 ;恢复原来状态
invoke WriteProcessMemory,hProcess,address_time,offset time,6,offset inta
.elseif eax == IDC_BTN6 ;界面突破
invoke WriteProcessMemory,hProcess,address_map1,offset map1,1,offset inta
invoke WriteProcessMemory,hProcess,address_map2,offset map2,1,offset inta
invoke MessageBox,0,offset msg_map,offset right,MB_OK
.elseif eax == IDC_BTN7 ;雷数量突破
invoke WriteProcessMemory,hProcess,address_mine,offset mine,1,offset inta
invoke MessageBox,0,offset msg_mine,offset right,MB_OK
.elseif eax == IDC_BTN8 ;死不了
invoke WriteProcessMemory,hProcess,address_nodie,offset nodie,2,offset inta
invoke MessageBox,0,offset ok,offset right,MB_OK
.endif
|