Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
С днём святого Николая!
#1
Всех с праздником.
И вот небольшой подарочек
Код:
;-------------------------------------------------------------------------------------
; DSETUP.DLL By ALF. Enabled BUILDZONE in Tauti KOR_Off
; WORK only on 440 Protocol
;-------------------------------------------------------------------------------------
format PE GUI 4.0 DLL
entry DllEntryPoint
include 'win32a.inc'
include 'MACRO/IF.INC'
;-------------------------------------------------------------------------------------

;-------------------------------------------------------------------------------------
section '.data' data readable writeable
;-------------------------------------------------------------------------------------
n_engine                db 'engine.dll',0    
n_BuildWorldStructure    db '?buildWorldStructure@FWorldBuilder@@QAEHPAVULevel@@PA_WPAVUViewport@@HH@Z',0
n_InitUGameEngine        db '?Init@UGameEngine@@UAEXH@Z',0

p_engine                dd ?
p_BuildWorldStructure    dd ?
p_InitUGameEngine        dd ?

; Количество дополнительных точек
pointCount                dd 1

; Координаты первой дополнительной точки
point_0_x                dd -146660.0
point_0_y                dd 152796.0
point_0_z                dd -14048.0

; Координаты второй дополнительной точки
point_1_x                dd 0000.0000
point_1_y                dd 0000.0000
point_1_z                dd 0000.0000

; Координаты третей дополнительной точки
point_2_x                dd 0000.0000
point_2_y                dd 0000.0000
point_2_z                dd 0000.0000

; Координаты четвертой дополнительной точки
point_3_x                dd 0000.0000
point_3_y                dd 0000.0000
point_3_z                dd 0000.0000
;-------------------------------------------------------------------------------------

;-------------------------------------------------------------------------------------
section '.text' code readable executable
;-------------------------------------------------------------------------------------
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
    mov eax, [fdwReason]
    .if eax = DLL_PROCESS_ATTACH
        call LoadBaseHook
        invoke DisableThreadLibraryCalls, [hinstDLL]
    .endif
    mov    eax,TRUE
    ret
endp

proc LoadBaseHook
    pushad
    
    invoke GetModuleHandleA, n_engine
    mov [p_engine], eax                ; Получаем GetModuleHandleA("Engine.dll");
    
    invoke GetProcAddress, [p_engine], n_BuildWorldStructure
    mov [p_BuildWorldStructure], eax
    
    add eax, 0x72                    ; Смещение относительно FWorldBuilder::buildWorldStructure
    mov byte [eax], 0x73            ; Одинаково для всех клиентов. 073h - ESI
    
    invoke GetProcAddress, [p_engine], n_InitUGameEngine
    mov [p_InitUGameEngine], eax
    
    add eax, 0x02C8                 ; Смещение относительно UGameEngine::Init
    mov byte [eax], 0x01            ; Количество реальных процессоров! (Не ядер)
    
    add eax, 0x04                    ; +4 к предыдущему смещению
    mov dword [eax], 0x01            ; Количество потоков для билда. Обычно == кол. реальных процессоров                                                            
    
    mov eax, 0x201DB25F                ; Нам нужно будет перепрыгнуть ровно 0x64 байт
    mov edx, 0x201DB2DA                ; Что бы убрать кучу проверок хардкота координат на круму
    call WriteJump
    
    mov eax, 0201DB2DEh                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [0][x]
    mov dword[eax], point_0_x        ; Пишем туда свою координату
        
    mov eax, 0201DB2EAh                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [0][y]
    mov dword[eax], point_0_y        ; Пишем туда свою координату

    mov eax, 0201DB2F6h                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [0][z]
    mov dword[eax], point_0_z        ; Пишем туда свою координату
    
    .if [pointCount] = 1            ; Если дополнительных точек только 1    
        mov eax, 0201DB324h            ; Пропускаем запись всех остальных точек
        mov edx, 0201DB40Eh            ; Переходим
        call WriteJump
    .endif
    
    mov eax, 0201DB32Ch                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [1][x]
    mov dword[eax], point_1_x        ; Пишем туда свою координату
        
    mov eax, 0201DB338h                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [1][y]
    mov dword[eax], point_1_y        ; Пишем туда свою координату

    mov eax, 0201DB344h                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [1][z]
    mov dword[eax], point_1_z        ; Пишем туда свою координату

    .if [pointCount] = 2            ; Если дополнительных точек только 1    
        mov eax, 0201DB372h            ; Пропускаем запись всех остальных точек
        mov edx, 0201DB40Eh            ; Переходим
        call WriteJump
    .endif
    
    mov eax, 0201DB37Ah                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [2][x]
    mov dword[eax], point_2_x        ; Пишем туда свою координату
        
    mov eax, 0201DB386h                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [2][y]
    mov dword[eax], point_2_y        ; Пишем туда свою координату

    mov eax, 0201DB392h                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [2][z]
    mov dword[eax], point_2_z        ; Пишем туда свою координату
    
    .if [pointCount] = 3            ; Если дополнительных точек только 1    
        mov eax, 0201DB3C0h            ; Пропускаем запись всех остальных точек
        mov edx, 0201DB40Eh            ; Переходим
        call WriteJump
    .endif
    
    mov eax, 0201DB3C8h                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [3][x]
    mov dword[eax], point_3_x        ; Пишем туда свою координату
        
    mov eax, 0201DB3D4h                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [3][y]
    mov dword[eax], point_3_y        ; Пишем туда свою координату

    mov eax, 0201DB3E0h                ; Адрес в памяти где хранится захардкодена координата SIP<FVector> [3][z]
    mov dword[eax], point_3_z        ; Пишем туда свою координату
    popad
    ret
endp

proc WriteJump
    mov ebx, eax
    add ebx, 0x05
    sub edx, ebx
    mov byte[eax], 0xE9
    mov dword[eax+1],edx
    ret
endp
;-------------------------------------------------------------------------------------
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
;-------------------------------------------------------------------------------------

;-------------------------------------------------------------------------------------
section '.idata' import data readable writeable
;-------------------------------------------------------------------------------------
    library kernel,'KERNEL32.DLL'
    import kernel,\
        DisableThreadLibraryCalls, 'DisableThreadLibraryCalls',\
        GetModuleHandleA, 'GetModuleHandleA',\
        GetProcAddress, 'GetProcAddress'
;-------------------------------------------------------------------------------------

;-------------------------------------------------------------------------------------
section '.edata' export data readable
;-------------------------------------------------------------------------------------
    export 'DSETUP.DLL',\
        DllEntryPoint, 'DllEntryPoint',\
        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' fixups data discardable
;-------------------------------------------------------------------------------------

п.с. кому надо тот поймет что это и зачем)
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  С днем рождения Shed Shed 5 2,017 09-22-2017, 09:42 AM
Последний пост: Shed
  С Днём Рождения ANZO Mangol 14 3,290 03-26-2017, 01:17 AM
Последний пост: ANZO
  С Днем Рождения Gannik SEKTOR 6 1,484 10-16-2015, 04:09 AM
Последний пост: Ozzy
  С Днем Рождения, GenCloud. lonk 13 2,614 08-03-2015, 10:02 AM
Последний пост: Quarrel
  С днём рожденья MrShyr gorodetskiy 44 6,191 06-30-2015, 05:39 PM
Последний пост: MrShyr
  С днем рождения, PROGRAMMATOR! Ozzy 40 4,742 06-05-2015, 11:20 AM
Последний пост: TAG
  С Днем Рождения Quarrel`ka ! lonk 14 2,270 05-18-2015, 06:52 PM
Последний пост: Zeratyl
  Поздравляем Юрия(л2-скриптс) с днем рождения! L2scripts-Guard 17 2,999 03-17-2015, 01:35 PM
Последний пост: L2-Scripts
  С 23 февраля! С днём защитника отечества! DPMode 3 1,394 02-23-2015, 03:36 PM
Последний пост: dorocki
  C Днем Рождения GOODPower Retribution 18 2,619 02-16-2015, 08:43 AM
Последний пост: SoniPro

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)