📄 cs1.5crk.asm
字号:
.ENDIF
.IF WeaponName[0]=='B' && WeaponName[1]=='4' && WeaponName[2]=='2'
mov lpBaseAddressx1,0afb2h
jmp testb2
.ENDIF
.IF WeaponName[0]=='B' && WeaponName[1]=='4' && WeaponName[2]=='3'
mov lpBaseAddressx1,08348h
jmp testb2
.ENDIF
.IF WeaponName[0]=='B' && WeaponName[1]=='4' && WeaponName[2]=='4'
mov lpBaseAddressx1,01da2h
jmp testb2
.ENDIF
.IF WeaponName[0]=='B' && WeaponName[1]=='4' && WeaponName[2]=='5'
mov lpBaseAddressx1,0a2fdh
jmp testb2
.ENDIF
.IF WeaponName[0]=='B' && WeaponName[1]=='4' && WeaponName[2]=='6'
mov lpBaseAddressx1,0250eh
jmp testb2
.ENDIF
.IF WeaponName[0]=='B' && WeaponName[1]=='4' && WeaponName[2]=='7'
mov lpBaseAddressx1,04f03h
jmp testb2
.ENDIF
.IF WeaponName[0]=='B' && WeaponName[1]=='4' && WeaponName[2]=='8'
mov lpBaseAddressx1,0a9b3h
jmp testb2
.ENDIF
.IF WeaponName[0]=='B' && WeaponName[1]=='5' && WeaponName[2]=='1'
mov lpBaseAddressx1,073d2h
jmp testb2
.ENDIF
.IF WeaponName[0]=='B' && WeaponName[1]=='8' && WeaponName[2]=='3'
mov lpBaseAddressx1,04a10h
mov oBufferx1,04ah
jmp testb2
.ENDIF
.IF WeaponName[0]=='B' && WeaponName[1]=='8' && WeaponName[2]=='4'
mov lpBaseAddressx1,05fd6h
mov oBufferx1,04ah
jmp testb2
.ENDIF
.IF WeaponName[0]=='B' && WeaponName[1]=='8' && WeaponName[2]=='5'
mov lpBaseAddressx1,0b7b8h
mov oBufferx1,04ah
jmp testb2
.ENDIF
mov nWeaponNameSize,0
jmp BeginPatcher
testb2:
.IF WeaponName[4]=='B' && WeaponName[5]=='1' && WeaponName[6]=='1'
mov lpBaseAddressx2,0ca0dh
mov oBufferx2,04bh
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='1' && WeaponName[6]=='2'
mov lpBaseAddressx2,05790h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='1' && WeaponName[6]=='3'
mov lpBaseAddressx2,03508h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='1' && WeaponName[6]=='4'
mov lpBaseAddressx2,09728h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='1' && WeaponName[6]=='5'
mov lpBaseAddressx2,03bach
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='1' && WeaponName[6]=='6'
mov lpBaseAddressx2,04348h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='2' && WeaponName[6]=='1'
mov lpBaseAddressx2,07951h
mov oBufferx2,04ah
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='2' && WeaponName[6]=='2'
mov lpBaseAddressx2,0cf21h
mov oBufferx2,04ah
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='3' && WeaponName[6]=='1'
mov lpBaseAddressx2,09012h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='3' && WeaponName[6]=='2'
mov lpBaseAddressx2,0bbd8h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='3' && WeaponName[6]=='3'
mov lpBaseAddressx2,09cfdh
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='3' && WeaponName[6]=='4'
mov lpBaseAddressx2,08a32h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='3' && WeaponName[6]=='5'
mov lpBaseAddressx2,0c18fh
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='4' && WeaponName[6]=='1'
mov lpBaseAddressx2,01352h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='4' && WeaponName[6]=='2'
mov lpBaseAddressx2,0afb2h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='4' && WeaponName[6]=='3'
mov lpBaseAddressx2,08348h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='4' && WeaponName[6]=='4'
mov lpBaseAddressx2,01da2h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='4' && WeaponName[6]=='5'
mov lpBaseAddressx2,0a2fdh
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='4' && WeaponName[6]=='6'
mov lpBaseAddressx2,0250eh
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='4' && WeaponName[6]=='7'
mov lpBaseAddressx2,04f03h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='4' && WeaponName[6]=='8'
mov lpBaseAddressx2,0a9b3h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='5' && WeaponName[6]=='1'
mov lpBaseAddressx2,073d2h
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='8' && WeaponName[6]=='3'
mov lpBaseAddressx2,04a10h
mov oBufferx2,04ah
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='8' && WeaponName[6]=='4'
mov lpBaseAddressx2,05fd6h
mov oBufferx2,04ah
jmp BeginPatcher
.ENDIF
.IF WeaponName[4]=='B' && WeaponName[5]=='8' && WeaponName[6]=='5'
mov lpBaseAddressx2,0b7b8h
mov oBufferx2,04ah
jmp BeginPatcher
.ENDIF
mov nWeaponNameSize,0
jmp BeginPatcher
;------------------------------------------------------
BeginPatcher:
invoke MessageBox,NULL, addr CopyRightText, addr CopyRightCaption,MB_OK or MB_ICONINFORMATION
invoke CreateProcess,addr CS_AppName1,addr CS_CommandLine,0,0,0,DEBUG_PROCESS+DEBUG_ONLY_THIS_PROCESS,0,0,addr CS_StartupInfo,addr CS_ProcessInfo
test eax,eax
jnz createsucceed
invoke CreateProcess,addr CS_AppName2,addr CS_CommandLine,0,0,0,DEBUG_PROCESS+DEBUG_ONLY_THIS_PROCESS,0,0,addr CS_StartupInfo,addr CS_ProcessInfo
test eax,eax
jz error1
createsucceed:
.while TRUE
invoke WaitForDebugEvent, addr DBEvent, INFINITE
.if DBEvent.dwDebugEventCode==EXIT_PROCESS_DEBUG_EVENT
jmp exit
.elseif DBEvent.dwDebugEventCode==CREATE_PROCESS_DEBUG_EVENT
mov eax,DBEvent.u.CreateProcessInfo.hProcess
mov hProcess,eax
.elseif DBEvent.dwDebugEventCode==LOAD_DLL_DEBUG_EVENT
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSize,NULL
; test eax,eax
; jz error3
;------------------------------------------------------------------------------------------------
xor esi,esi
mov esi,nSize
goon: dec esi
mov ebx,offset oBuffer
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
mov dl,byte ptr [ebx+esi]
cmp al,dl
jnz cdevent
cmp esi,0
jnz goon
cmp IsModified,1
jz cdevent
;----------------------------------------------------
mov eax,lpBaseAddress0
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSize0,NULL
test eax,eax
jz error3
xor esi,esi
mov esi,nSize0
goon0: dec esi
mov ebx,offset oBuffer0
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
mov dl,byte ptr [ebx+esi]
cmp al,dl
jnz error4
cmp esi,0
jnz goon0
mov eax,lpBaseAddress0
invoke WriteProcessMemory,hProcess,eax,addr mBuffer0,nSize0,NULL
test eax,eax
jz error5
;------------------------------------------------------------------------------------------------
mov esi,nWeaponNameSize
.IF esi==3h
jmp Patcher1Weapon
.ELSEIF esi==7h
jmp Patcher2Weapon
.ELSE
jmp PatcherAllWeapon
.ENDIF
Patcher1Weapon:
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddressx
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSizex,NULL
test eax,eax
jz error3
xor esi,esi
mov esi,nSizex
goonx: dec esi
mov ebx,offset oBufferx
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
mov dl,byte ptr [ebx+esi]
cmp al,dl
jnz error4
cmp esi,0
jnz goonx
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddressx
invoke WriteProcessMemory,hProcess,eax,addr mBufferx,nSizex,NULL
test eax,eax
jz error5
mov IsModified,1
jmp cdevent
Patcher2Weapon:
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddressx1
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSizex1,NULL
test eax,eax
jz error3
xor esi,esi
mov esi,nSizex1
goonx1: dec esi
mov ebx,offset oBufferx1
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
mov dl,byte ptr [ebx+esi]
cmp al,dl
jnz error4
cmp esi,0
jnz goonx1
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddressx1
invoke WriteProcessMemory,hProcess,eax,addr mBufferx1,nSizex1,NULL
test eax,eax
jz error5
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddressx2
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSizex2,NULL
test eax,eax
jz error3
xor esi,esi
mov esi,nSizex2
goonx2: dec esi
mov ebx,offset oBufferx2
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
mov dl,byte ptr [ebx+esi]
cmp al,dl
jnz error4
cmp esi,0
jnz goonx2
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddressx2
invoke WriteProcessMemory,hProcess,eax,addr mBufferx2,nSizex2,NULL
test eax,eax
jz error5
mov IsModified,1
jmp cdevent
PatcherAllWeapon:
;------------------------------------------------------------------------------------------------
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress1
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSize1,NULL
test eax,eax
jz error3
xor esi,esi
mov esi,nSize1
goon1: dec esi
mov ebx,offset oBuffer1
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
mov dl,byte ptr [ebx+esi]
cmp al,dl
jnz error4
cmp esi,0
jnz goon1
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress1
invoke WriteProcessMemory,hProcess,eax,addr mBuffer1,nSize1,NULL
test eax,eax
jz error5
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress2
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSize2,NULL
test eax,eax
jz error3
xor esi,esi
mov esi,nSize2
goon2: dec esi
mov ebx,offset oBuffer2
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
mov dl,byte ptr [ebx+esi]
cmp al,dl
jnz error4
cmp esi,0
jnz goon2
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress2
invoke WriteProcessMemory,hProcess,eax,addr mBuffer2,nSize2,NULL
test eax,eax
jz error5
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress3
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSize3,NULL
test eax,eax
jz error3
xor esi,esi
mov esi,nSize3
goon3: dec esi
mov ebx,offset oBuffer3
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
mov dl,byte ptr [ebx+esi]
cmp al,dl
jnz error4
cmp esi,0
jnz goon3
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress3
invoke WriteProcessMemory,hProcess,eax,addr mBuffer3,nSize3,NULL
test eax,eax
jz error5
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress4
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSize4,NULL
test eax,eax
jz error3
xor esi,esi
mov esi,nSize4
goon4: dec esi
mov ebx,offset oBuffer4
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
mov dl,byte ptr [ebx+esi]
cmp al,dl
jnz error4
cmp esi,0
jnz goon4
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress4
invoke WriteProcessMemory,hProcess,eax,addr mBuffer4,nSize4,NULL
test eax,eax
jz error5
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress5
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSize5,NULL
test eax,eax
jz error3
xor esi,esi
mov esi,nSize5
goon5: dec esi
mov ebx,offset oBuffer5
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
mov dl,byte ptr [ebx+esi]
cmp al,dl
jnz error4
cmp esi,0
jnz goon5
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress5
invoke WriteProcessMemory,hProcess,eax,addr mBuffer5,nSize5,NULL
test eax,eax
jz error5
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress6
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSize6,NULL
test eax,eax
jz error3
xor esi,esi
mov esi,nSize6
goon6: dec esi
mov ebx,offset oBuffer6
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
mov dl,byte ptr [ebx+esi]
cmp al,dl
jnz error4
cmp esi,0
jnz goon6
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress6
invoke WriteProcessMemory,hProcess,eax,addr mBuffer6,nSize6,NULL
test eax,eax
jz error5
mov eax,DBEvent.u.LoadDll.lpBaseOfDll
add eax,lpBaseAddress7
invoke ReadProcessMemory,hProcess,eax,addr tBuffer,nSize7,NULL
test eax,eax
jz error3
xor esi,esi
mov esi,nSize7
goon7: dec esi
mov ebx,offset oBuffer7
mov al,byte ptr [ebx+esi]
mov ebx,offset tBuffer
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -