Initial MSVC 2008 projects workspace

This commit is contained in:
alexey.min
2012-02-01 05:25:08 +00:00
commit 03de3bdc95
1446 changed files with 476853 additions and 0 deletions

53
my_dsetup/dsetup.asm Normal file
View File

@@ -0,0 +1,53 @@
;wildcard, by Fyyre
;http://fyyre.l2-fashion.de
;modified to not disable GameGuard, by minlexx ;)
; just to link to L2Detect.dll
;
format PE GUI 4.0 DLL at 00400000h
entry DllEntryPoint
include '%fasminc%\win32a.inc'
section '.text' code readable executable
proc DllEntryPoint
mov eax, 1
ret
; next will never be executed, but reference to L2Detect.dll will remain )
call dword [L2Detect_fake] ; minlexx ;) if we don't call it, it won't appear in imports section =[
endp
; include standard dsetup.dll exports (c) Fyyre
include 'inc\exported.inc'
section '.idata' import data readable
library kernel32,'kernel32.dll',\
l2detect,'l2detect.dll' ; minlexx ;)
include '%fasminc%\API\KERNEL32.INC'
import l2detect, L2Detect_fake,'fake' ; minlexx ;)
section '.edata' export data readable executable
export 'wildcard.dll',\
DirectXDeviceDriverSetupA,'DirectXDeviceDriverSetupA',\
DirectXDeviceDriverSetupW,'DirectXDeviceDriverSetupW',\
DirectXRegisterApplicationA,'DirectXRegisterApplicationA',\
DirectXRegisterApplicationW,'DirectXRegisterApplicationW',\
DirectXSetupA,'DirectXSetupA',\
DirectXSetupIsJapan,'DirectXSetupIsJapan',\
DirectXSetupIsJapanNec,'DirectXSetupIsJapanNec',\
DirectXSetupW,'DirectXSetupW',\
DirectXUnRegisterApplication,'DirectXUnRegisterApplication',\
DirectXSetupSetCallback,'DirectXSetupSetCallback',\
DirectXSetupGetVersion,'DirectXSetupGetVersion',\
DirectXSetupCallback,'DirectXSetupCallback',\
DirectXSetupGetFileVersion,'DirectXSetupGetFileVersion',\
DirectXLoadString,'DirectXLoadString',\
DirectXSetupIsEng,'DirectXSetupIsEng',\
DirectXSetupShowEULA,'DirectXSetupShowEULA',\
DirectXSetupGetEULAA,'DirectXSetupGetEULAA',\
DirectXSetupGetEULAW,'DirectXSetupGetEULAW'
section '.reloc' data discardable fixups

BIN
my_dsetup/dsetup.dll Normal file

Binary file not shown.

181
my_dsetup/dsetup_fyyre.asm Normal file
View File

@@ -0,0 +1,181 @@
;wildcard, by Fyyre
;http://fyyre.l2-fashion.de
;
format PE GUI 4.0 DLL at 00400000h
entry DllEntryPoint
ERROR_INVALID_DATA equ 13
include '%fasminc%\win32a.inc'
section '.text' code readable executable
proc DllEntryPoint
cmp dword [IsCorePatched], 1
je @F
call PatchCoreDll
@@:
cmp dword [IsEnginePatched], 1
je @F
call verify_opcodes
@@:
mov eax, 1
ret
call dword [L2Detect_fake] ; minlexx ;) if we don't call it, it won't appear in imports section =[
endp
proc PatchCoreDll
mov eax, [?StaticInit@FName@@SAXXZ] ;check for non-Themida opcodes
mov eax, [eax]
cmp eax, 06AEC8B55h
je @F
ret
@@:
pushad
mov ebp, esp
lea edx, [ebp-4]
push edx ;old protect
push PAGE_READWRITE ;0x40
push 4 ;one dword
mov ebx, [?GL2UseGameGuard@@3HA] ;address of export
push ebx
push -1 ;(-1) == GetCurrentProcess
call [VirtualProtectEx]
; test al, al
; jz @F ;should never fail...
;
mov dword [ebx], 0h ;set ?GL2UseGameGuard@3HLA to false
mov [IsCorePatched], 1 ;mark as complete
mov esp, ebp
popad ;restore registers, etc.
ret
endp
proc verify_opcodes
push edi
mov edi, [?Destroy@UNetworkHandler@@UAEXXZ] ;ExRestart client is always the function above this one,
;for CT2.2 and below...
cmp dword [edi], 0F98B5753h
jne @F
call PatchEngineDll
@@:
pop edi
ret
endp
proc PatchEngineDll ;locate ExRestartClient & IsRASConnected
push edi ;both are non-exported.
push ecx
std ;set the directional flag, search backwards in memory.
mov ecx, 0FFFFh
mov eax, 06AEC8B55h
;edi == address of UNetworkHandler::Destroy ... no need to set it again.
@@:
repne scasb
jcxz error_handler ;if ecx == zero, our search fails.
cmp dword [edi+1], eax
jne @B
inc edi
cmp dword [edi+18h], 007B0EC81h ;sub esp, 7B0h == IsRASConnected
jne _is_ct2_2_or_lower ;if not present, client is CT2.2 or lower.
mov dword [edi], 0C0FEC033h ;replace function start with xor eax, eax .. inc al
add edi, 4 ;move forward by one dword
mov byte [edi], 0C3h ;retn - replace function start with -->> return true;
mov ecx, 0FFFFh
@@:
repne scasb
jcxz error_handler
cmp dword [edi+1], eax
jne @B
inc edi
_is_ct2_2_or_lower:
mov dword [edi], 0C0FEC033h
add edi, 4
mov byte [edi], 0C3h
@@:
cld ;fix the directional flag back.
pop ecx ;restore saved registers.
pop edi
mov [IsEnginePatched], 1
ret
endp
proc error_handler
;when ecx == 0 we display a message box/ExitProcess, searching beyond the code section is pointless
;in this situation and will only end up crashing.
;
cmp eax, 250C862Bh
je @F
push 0
push error_caption
push error_text
push MB_OK
call [MessageBoxA]
push ERROR_INVALID_DATA
call [ExitProcess]
@@:
xor ecx, ecx
mov bl, 0
ret
endp
include 'inc\exported.inc'
section '.data' data readable writeable
cmpb1 dd 0
IsCorePatched dd 0
IsEnginePatched dd 0
dw 0
error_text db 'byte signature not found =( contact me -->> fyyre@nightmail.ru', 0
dw 0
error_caption db 'error_handler', 0
dw 0
Fyyre du 'Fyyre', 0 ; =)
section '.idata' import data readable
library kernel32,'kernel32.dll',\
user32, 'user32.dll',\
core,'core.dll',\
engine,'engine.dll',\
l2detect,'L2Detect.dll'
include '%fasminc%\API\KERNEL32.INC'
include '%fasminc%\API\USER32.INC'
include 'inc\core.inc'
include 'inc\engine.inc'
import l2detect, L2Detect_fake,'fake' ; minlexx ;)
section '.edata' export data readable executable
export 'dsetup_fyyre.dll',\
DirectXDeviceDriverSetupA,'DirectXDeviceDriverSetupA',\
DirectXDeviceDriverSetupW,'DirectXDeviceDriverSetupW',\
DirectXRegisterApplicationA,'DirectXRegisterApplicationA',\
DirectXRegisterApplicationW,'DirectXRegisterApplicationW',\
DirectXSetupA,'DirectXSetupA',\
DirectXSetupIsJapan,'DirectXSetupIsJapan',\
DirectXSetupIsJapanNec,'DirectXSetupIsJapanNec',\
DirectXSetupW,'DirectXSetupW',\
DirectXUnRegisterApplication,'DirectXUnRegisterApplication',\
DirectXSetupSetCallback,'DirectXSetupSetCallback',\
DirectXSetupGetVersion,'DirectXSetupGetVersion',\
DirectXSetupCallback,'DirectXSetupCallback',\
DirectXSetupGetFileVersion,'DirectXSetupGetFileVersion',\
DirectXLoadString,'DirectXLoadString',\
DirectXSetupIsEng,'DirectXSetupIsEng',\
DirectXSetupShowEULA,'DirectXSetupShowEULA',\
DirectXSetupGetEULAA,'DirectXSetupGetEULAA',\
DirectXSetupGetEULAW,'DirectXSetupGetEULAW'
section '.reloc' data discardable fixups
section '.rsrc' data readable resource from 'wildcard.res'

BIN
my_dsetup/dsetup_radar.dll Normal file

Binary file not shown.

2677
my_dsetup/inc/core.inc Normal file

File diff suppressed because it is too large Load Diff

17
my_dsetup/inc/dsetup.inc Normal file
View File

@@ -0,0 +1,17 @@
;fyyre
;
import dsetup,\
DirectXDeviceDriverSetup,'DirectXDeviceDriverSetupA',\
DirectXLoadString,'DirectXLoadString',\
DirectXRegisterApplication,'DirectXRegisterApplicationA',\
DirectXSetup,'DirectXSetupA',\
DirectXSetupCallback,'DirectXSetupCallback',\
DirectXSetupGetEULA,'DirectXSetupGetEULAA',\
DirectXSetupGetFileVersion,'DirectXSetupGetFileVersion',\
DirectXSetupIsJapanNec,'DirectXSetupIsJapanNec',\
DirectXSetupIsEng,'DirectXSetupIsEng',\
DirectXSetupIsJapan,'DirectXSetupIsJapan',\
DirectXSetupGetVersion,'DirectXSetupGetVersion',\
DirectXSetupSetCallback,'DirectXSetupSetCallback',\
DirectXSetupShowEUL,'DirectXSetupShowEULA',\
DirectXUnRegisterApplication,'DirectXUnRegisterApplication'

10346
my_dsetup/inc/engine.inc Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,88 @@
proc DirectXDeviceDriverSetupA
xor eax, eax
ret
endp
proc DirectXDeviceDriverSetupW
xor eax, eax
ret
endp
proc DirectXRegisterApplicationA
xor eax, eax
ret
endp
proc DirectXRegisterApplicationW
xor eax, eax
ret
endp
proc DirectXSetupA
xor eax, eax
ret
endp
proc DirectXSetupIsJapan
xor eax, eax
ret
endp
proc DirectXSetupIsJapanNec
xor eax, eax
ret
endp
proc DirectXSetupW
xor eax, eax
ret
endp
proc DirectXUnRegisterApplication
xor eax, eax
ret
endp
proc DirectXSetupSetCallback
xor eax, eax
ret
endp
proc DirectXSetupGetVersion
xor eax, eax
ret
endp
proc DirectXSetupCallback
xor eax, eax
ret
endp
proc DirectXSetupGetFileVersion
xor eax, eax
ret
endp
proc DirectXLoadString
xor eax, eax
ret
endp
proc DirectXSetupIsEng
xor eax, eax
ret
endp
proc DirectXSetupShowEULA
xor eax, eax
ret
endp
proc DirectXSetupGetEULAA
xor eax, eax
ret
endp
proc DirectXSetupGetEULAW
xor eax, eax
ret
endp

BIN
my_dsetup/wildcard.res Normal file

Binary file not shown.