首页 技术 正文
技术 2022年11月11日
0 收藏 517 点赞 2,682 浏览 15680 个字

这篇文章本来在2018.5.1号就写完发圈子去了,这两天跟朋友在网吧打单击才想起来,就顺便把内容发上去把

<!–
@page { margin: 2cm }
h3 { margin-top: 0.46cm; margin-bottom: 0.46cm; direction: ltr; color: #000000; line-height: 172%; text-align: justify; page-break-inside: avoid; orphans: 0; widows: 0 }
h3.western { font-family: “Calibri”, sans-serif; font-size: 16pt; so-language: en-US }
h3.cjk { font-family: “宋体”; font-size: 16pt; so-language: zh-CN }
h3.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA; font-weight: normal }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

作者:admin-神风

  1. 用CE找到功能的地址

CS1.6下载地址:https://pan.baidu.com/s/1zaW6FmbZg50WV3EKX_IqHw 密码: srcs

CE下载地址:https://pan.baidu.com/s/1_tVrikxFx2PAHhmlhWVfFQ 密码: dsn9

打开游戏,并利用CE打开游戏进程

这里我们以人物金钱和子弹为例,找到人物基址

①查找金钱

进入游戏后,我们发现金钱数量为800

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

这时候我们在CE中搜索800

【WIN32编程】利用汇编写cs1.6辅助

找到141个数据

我们买点子弹

再搜索剩下的钱

【WIN32编程】利用汇编写cs1.6辅助

通过发现,地址为01A1B9FC上的数值是屏幕上显示的

地址为04949DA4上的数值才是真正的金钱数量

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

同理,我们通过更改子弹数量,但是当我们搜索到剩余198个数据的时候,发现之后的子弹无论怎么更改,这198个数据都随之变动

【WIN32编程】利用汇编写cs1.6辅助

我们这里就靠一个个测试,但我们有个小技巧,就是看地址,发现地址很多都是连续的,我们就找一些在这198个数据中不常见的。

经过排除

【WIN32编程】利用汇编写cs1.6辅助

选出这些地址做测试,最后得到地址为012CE474的数据是真实子弹的数据(有一个数据是用来迷惑的,更改数值后并没有什么卵用)

【WIN32编程】利用汇编写cs1.6辅助

二、找到人物基址

因为游戏里的地址都会变动,比如金钱的地址,血量的地址。

都会随着游戏的重启而变动

但唯一不变的,就是基址,只要通过基址,加上偏移来找金钱、血量的地址

就可以达到在其他的电脑上,也能实现功能了。

我们就通过金钱的地址来找人物的基址

【WIN32编程】利用汇编写cs1.6辅助

首先我们右键地址为04949DA4的数据

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

点击“找出是什么访问了这个地址”

会出来一个框框,可能刚开始没数据,我们返回游戏再买点东西

这时候出现如下数据

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

我们看mov ecx,[esi+000001CC]这个数据

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

指针基址可能是=04949BD8

同时通过红色的数据mov ecx,[esi+000001CC],可以发现,偏移是1CC.

这时候我们用CE再去搜索这个04949BD8地址

一定要勾上Hex再搜索

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

发现搜索后没有绿色的地址(CE中绿色地址代表静态地址也就是基址)

竟然没有基址,那咱们就继续往下面搜

经过测试,只有057FCBF8这个地址才有数据

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

随便点开一个

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

指针基址可能是=057FCB7C

偏移上=7C

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

这次发现一个绿色的地址:025069BC

我们通过CE的功能“手动添加地址”,来验证我们的基址是不是对的

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

可以看到720,的确是我们的金钱数量。

到这里,我们就完工找到人物基址了。

贴上win32编程要用到的功能的基址及偏移

金钱:

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

血量:

【WIN32编程】利用汇编写cs1.6辅助

子弹前弹夹:

【WIN32编程】利用汇编写cs1.6辅助

超市功能:

【WIN32编程】利用汇编写cs1.6辅助

三、利用win32汇编写出辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

竟然已经找出了各个功能的基址及偏移,我们就用最常用的ReadProcessMemory读取数据,并用WriteProcessMemory写入数值。

.if    eax    == ID_TIME1
invoke ReadProcessMemory,hProcess,baseaddr,addr bloodbuf,,
add bloodbuf,7Ch
invoke ReadProcessMemory,hProcess,bloodbuf,addr bloodbuf,,
add bloodbuf,04h
invoke ReadProcessMemory,hProcess,bloodbuf,addr bloodbuf,,
add bloodbuf,160h
invoke WriteProcessMemory,hProcess,bloodbuf,addr nvblood,,

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

上述代码就是血量基址加偏移的搜索并写入

接着,我们就创建一个模态窗口用来做一个界面

invoke    GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

建立模态窗口的同时要在rc资源文件的窗口属性中定义成IDC_MODALFRAME

同时利用消息处理机制来达到功能的实现

创建完窗口后,就要找游戏进程并打开

invoke    FindWindow,NULL,addr szCs
.if eax
invoke GetWindowThreadProcessId,eax,offset pid
invoke OpenProcess,PROCESS_ALL_ACCESS,FALSE,pid
.if eax
mov hProcess,eax

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

在这里用SetTimer函数来建立一个时钟,好锁定我们的值不让其他程序改变。(这里千万不要用死循环去锁定数值,不然程序有可能会崩溃)

SetTimer,hWnd,ID_TIME1,,NULL

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

这里的SetTimer函数建立了一个名字为ID_TIME1,周期为0.1s(100ms)的时钟

然后在到消息处理列表添加一个处理WM_TIMER消息的程序

.if    eax    == WM_TIMER
MOV eax,wParam
.if eax == ID_TIME1
要执行的程序...
.endif
.endif

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

关闭窗口之后,会发送WM_CLOSE消息,同时一定要关闭时钟

.if    eax == WM_CLOSE
invoke KillTimer,hWnd,ID_TIME1
invoke EndDialog,hWnd,NULL

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

最后利用EndDialog结束模态窗口

下面贴上资源文件cs.rc的代码

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#include <resource.h>
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define ICO_MAIN 0x1000 //图标
#define DLG_MAIN
#define IDB_1
#define IDC_MONEY
#define IDC_BLOOD
#define IDC_BULLET
#define IDC_SHOP
#define IDC_MODALFRAME
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN ICON "Main.ico"
IDB_1 BITMAP "Picture1.bmp"
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DLG_MAIN DIALOG , , ,
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | IDC_MODALFRAME
CAPTION "CS1.6辅助 author:admin-神风"
FONT , "宋体"
{
GROUPBOX "功能", -, , , ,
AUTOCHECKBOX "修改金钱为16000", IDC_MONEY, , , ,
AUTOCHECKBOX "锁定人物血量为255", IDC_BLOOD, , , ,
AUTOCHECKBOX "锁定所有枪械前弹夹子弹为50", IDC_BULLET, , , ,
AUTOCHECKBOX "随时随地购物", IDC_SHOP, , , ,
CONTROL "", -, "Static", SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, , , ,
CTEXT "author:admin-神风 QQ:1976604307", -,,,,
PUSHBUTTON "退出(&X)", IDCANCEL, , , ,
CONTROL IDB_1, -, "Static", SS_BITMAP | WS_CHILD | WS_VISIBLE, , , ,

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

以及cs.asm的汇编程序

         .
.model flat, stdcall
option casemap :none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include gdi32.inc
includelib gdi32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ID_TIME1 equ
ID_TIME2 equ
ID_TIME3 equ
ID_TIME4 equ
ICO_MAIN equ 1000h
DLG_MAIN equ
IDB_1 equ
IDC_MONEY equ
IDC_BLOOD equ
IDC_BULLET equ
IDC_SHOP equ
IDC_MODALFRAME equ
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data
nvShop db
nvblood REAL4 .
nvmoney dd
nvbullet dw .data?
hProcess dd ?
hInstance dd ?
hBmp1 dd ?
pid dd ?
bloodbuf dd ?
moneybuf dd ?
bulletbuf dd ?
shopbuf dd ? .const
moneyaddr dd 01A1B9FCh
baseaddr dd 025069BCh szCs db 'Counter-Strike',
Box db 'System Message',
Findsb db 'Not Find !',
Opencg db 'Open the Successful !',
Opensb db 'Open the failure !',
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcDlgMain proc uses ebx edi esi hWnd,wMsg,wParam,lParam mov eax,wMsg
.if eax == WM_CLOSE
invoke KillTimer,hWnd,ID_TIME1
invoke KillTimer,hWnd,ID_TIME2
invoke KillTimer,hWnd,ID_TIME3
invoke KillTimer,hWnd,ID_TIME4
invoke EndDialog,hWnd,NULL
invoke DeleteObject,hBmp1
.elseif eax == WM_TIMER
MOV eax,wParam
.if eax == ID_TIME1
invoke ReadProcessMemory,hProcess,baseaddr,addr bloodbuf,,
add bloodbuf,7Ch
invoke ReadProcessMemory,hProcess,bloodbuf,addr bloodbuf,,
add bloodbuf,04h
invoke ReadProcessMemory,hProcess,bloodbuf,addr bloodbuf,,
add bloodbuf,160h
invoke WriteProcessMemory,hProcess,bloodbuf,addr nvblood,,
.elseif eax == ID_TIME2
invoke ReadProcessMemory,hProcess,baseaddr,addr moneybuf,,
add moneybuf,7Ch
invoke ReadProcessMemory,hProcess,moneybuf,addr moneybuf,,
add moneybuf,1CCh
invoke WriteProcessMemory,hProcess,moneybuf,addr nvmoney,,
invoke WriteProcessMemory,hProcess,moneyaddr,addr nvmoney,,
.elseif eax == ID_TIME3
invoke ReadProcessMemory,hProcess,baseaddr,addr bulletbuf,,
add bulletbuf,7Ch
invoke ReadProcessMemory,hProcess,bulletbuf,addr bulletbuf,,
add bulletbuf,5D4h
invoke ReadProcessMemory,hProcess,bulletbuf,addr bulletbuf,,
add bulletbuf,0CCh
invoke WriteProcessMemory,hProcess,bulletbuf,addr nvbullet,,
.elseif eax == ID_TIME4
invoke ReadProcessMemory,hProcess,baseaddr,addr shopbuf,,
add shopbuf,7Ch
invoke ReadProcessMemory,hProcess,shopbuf,addr shopbuf,,
add shopbuf,3A8h
invoke WriteProcessMemory,hProcess,shopbuf,addr nvShop,,
.endif
.elseif eax == WM_INITDIALOG
invoke LoadIcon,hInstance,ICO_MAIN
invoke SendMessage,hWnd,WM_SETICON,ICON_BIG,eax invoke LoadBitmap,hInstance,IDB_1
mov hBmp1,eax
.elseif eax == WM_COMMAND
mov eax,wParam
.if ax == IDCANCEL
invoke KillTimer,hWnd,ID_TIME1
invoke KillTimer,hWnd,ID_TIME2
invoke KillTimer,hWnd,ID_TIME3
invoke KillTimer,hWnd,ID_TIME4
invoke EndDialog,hWnd,NULL
invoke DeleteObject,hBmp1
.elseif ax == IDC_SHOP
invoke IsDlgButtonChecked,hWnd,IDC_SHOP
.if eax == BST_CHECKED
invoke SetTimer,hWnd,ID_TIME4,,NULL
.else
invoke MessageBeep,-
invoke KillTimer,hWnd,ID_TIME4
.endif
.elseif ax == IDC_BLOOD
invoke IsDlgButtonChecked,hWnd,IDC_BLOOD
.if eax == BST_CHECKED
invoke SetTimer,hWnd,ID_TIME1,,NULL
.else
invoke MessageBeep,-
invoke KillTimer,hWnd,ID_TIME1
.endif
.elseif ax == IDC_MONEY
invoke IsDlgButtonChecked,hWnd,IDC_MONEY
.if eax == BST_CHECKED
invoke SetTimer,hWnd,ID_TIME2,,NULL
.else
invoke MessageBeep,-
invoke KillTimer,hWnd,ID_TIME2
.endif
.elseif ax == IDC_BULLET
invoke IsDlgButtonChecked,hWnd,IDC_BULLET
.if eax == BST_CHECKED
invoke SetTimer,hWnd,ID_TIME3,,NULL
.else
invoke MessageBeep,-
invoke KillTimer,hWnd,ID_TIME3
.endif
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
_ProcDlgMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
invoke FindWindow,NULL,addr szCs
.if eax
invoke GetWindowThreadProcessId,eax,offset pid
invoke OpenProcess,PROCESS_ALL_ACCESS,FALSE,pid
.if eax
mov hProcess,eax
invoke MessageBox,NULL,offset Opencg,offset Box,MB_OK
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
invoke ExitProcess,NULL
.else
invoke MessageBox,NULL,offset Opensb,offset Box,MB_OK
.endif
.else
invoke MessageBox,NULL,offset Findsb,offset Box,MB_OK
invoke ExitProcess,NULL
.endif
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

最后配上一张程序运行图

【WIN32编程】利用汇编写cs1.6辅助

<!–
@page { margin: 2cm }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>
<!–
@page { margin: 2cm }
h3 { margin-top: 0.46cm; margin-bottom: 0.46cm; direction: ltr; color: #000000; line-height: 172%; text-align: justify; page-break-inside: avoid; orphans: 0; widows: 0 }
h3.western { font-family: “Calibri”, sans-serif; font-size: 16pt; so-language: en-US }
h3.cjk { font-family: “宋体”; font-size: 16pt; so-language: zh-CN }
h3.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA; font-weight: normal }
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 115%; text-align: justify; orphans: 0; widows: 0 }
p.western { font-family: “Calibri”, sans-serif; font-size: 10pt; so-language: en-US }
p.cjk { font-family: “宋体”; font-size: 10pt; so-language: zh-CN }
p.ctl { font-family: “Times New Roman”, serif; font-size: 12pt; so-language: ar-SA }
–>

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902