ConquerLoaderV5

06/24/2014 18:11 EOS 60D#1
Is there any available source code for conquerloaderv5?
06/24/2014 18:12 Spirited#2
No. There is for my very simple MASM32 connection hook though, and for the first version of Nullable's hook. You could convert it to C++ or C#.

[Only registered and activated users can see links. Click Here To Register...]
06/24/2014 18:21 EOS 60D#3
Quote:
Originally Posted by Spirited View Post
No. There is for my very simple MASM32 connection hook though, and for the first version of Nullable's hook. You could convert it to C++ or C#.

[Only registered and activated users can see links. Click Here To Register...]
Thanks for this great info.. unfortunately dont have any experience in this field.. I just want to bind my autopatcher and the loader... appreciate your help...
06/24/2014 18:27 Spirited#4
There's also a few C++ ones around, though they're a bit different since they target specific conditions. Roy's is a good choice to start with from his ConquerServer_v3 project.
06/25/2014 23:27 Mr_PoP#5
Code:
; ---------------ConquerLoader v1---------------
;|                                              |
;|Author: Nullable                              |
;|                                              |
; ----------------------------------------------

.486
.model flat, stdcall
option casemap: none
include \masm32\include\windows.inc
; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\ws2_32.inc
; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\ws2_32.lib
; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

.data
szBufferRead db 30 DUP(00)
ipaddr db ?
servdat db "ConquerS.dat", 0
inet db "inet_addr", 0
bn1 db " blacknull", 0
conqname db "Conquer.exe", 0
wsaname db "WS2_32.dll", 0
wsacode db 0B8h, 00h, 00h, 00h, 00h, 0C2h, 04h, 00h, 90h, 90h

;MOV EAX, 00000000h
;RETN 4 // __stdcall convention, clear the stack. 4 because inet_addr takes 1 argument (4 bytes)

txtfail db "Error occured", 0
txtfailconq db "Failed to load Conquer", 0
txtfailinj db "Failed to inject code", 0
txtfailopn db "Failed to open ConquerS.dat", 0
; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

hInstance dd ?
starti STARTUPINFO <?>
pi PROCESS_INFORMATION <?>
ws WSADATA <?>
serverdat HANDLE ?
procaddr dd ?
rlprocaddr dd ?
ip dd ?
Bytes dd 0
; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл


.code
start:
    invoke GetModuleHandle, 0
    mov hInstance, eax
    
    invoke WSAStartup, 0101h, addr ws 
    invoke CreateProcess, addr conqname, addr bn1, 0, 0, 0, CREATE_DEFAULT_ERROR_MODE, 0, 0, addr starti, addr pi
    cmp eax, 0
    je @_1
    
    invoke GetModuleHandle, addr wsaname
    mov procaddr, eax

    invoke CreateFile, addr servdat, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0
    mov serverdat, eax
    
    cmp serverdat, INVALID_HANDLE_VALUE
    je @_3

    invoke ReadFile, serverdat, addr szBufferRead, 25, addr Bytes, 0
    
    cmp eax, 0
    je @_3

    invoke inet_addr, addr szBufferRead
    mov ip, eax

    mov eax, OFFSET wsacode

    mov edi, ip
    mov DWORD PTR [eax+1], edi
    
    invoke GetProcAddress, procaddr, addr inet
    mov rlprocaddr, eax
    
    invoke WaitForInputIdle, pi.hProcess, INFINITE
    invoke WriteProcessMemory, pi.hProcess, rlprocaddr, addr wsacode, sizeof wsacode, 0

    cmp eax, 0
    je @_2
    
@e:
    invoke WSACleanup
    invoke CloseHandle, serverdat
    invoke ExitProcess, 0
    
@_1:
    invoke MessageBox, 0, addr txtfailconq, addr txtfail, MB_OK
    jmp @e
    
@_2:
    invoke MessageBox, 0, addr txtfailinj, addr txtfail, MB_OK
    jmp @e
@_3:
    invoke MessageBox, 0, addr txtfailopn, addr txtfail, MB_OK
    jmp @e
    
end start
06/26/2014 03:15 Spirited#6
Quote:
Originally Posted by Mr_PoP View Post
Code:
; ---------------ConquerLoader v1---------------
;|                                              |
;|Author: Nullable                              |
;|                                              |
; ----------------------------------------------

.486
.model flat, stdcall
option casemap: none
include \masm32\include\windows.inc
; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\ws2_32.inc
; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\ws2_32.lib
; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

.data
szBufferRead db 30 DUP(00)
ipaddr db ?
servdat db "ConquerS.dat", 0
inet db "inet_addr", 0
bn1 db " blacknull", 0
conqname db "Conquer.exe", 0
wsaname db "WS2_32.dll", 0
wsacode db 0B8h, 00h, 00h, 00h, 00h, 0C2h, 04h, 00h, 90h, 90h

;MOV EAX, 00000000h
;RETN 4 // __stdcall convention, clear the stack. 4 because inet_addr takes 1 argument (4 bytes)

txtfail db "Error occured", 0
txtfailconq db "Failed to load Conquer", 0
txtfailinj db "Failed to inject code", 0
txtfailopn db "Failed to open ConquerS.dat", 0
; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

hInstance dd ?
starti STARTUPINFO <?>
pi PROCESS_INFORMATION <?>
ws WSADATA <?>
serverdat HANDLE ?
procaddr dd ?
rlprocaddr dd ?
ip dd ?
Bytes dd 0
; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл


.code
start:
    invoke GetModuleHandle, 0
    mov hInstance, eax
    
    invoke WSAStartup, 0101h, addr ws 
    invoke CreateProcess, addr conqname, addr bn1, 0, 0, 0, CREATE_DEFAULT_ERROR_MODE, 0, 0, addr starti, addr pi
    cmp eax, 0
    je @_1
    
    invoke GetModuleHandle, addr wsaname
    mov procaddr, eax

    invoke CreateFile, addr servdat, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0
    mov serverdat, eax
    
    cmp serverdat, INVALID_HANDLE_VALUE
    je @_3

    invoke ReadFile, serverdat, addr szBufferRead, 25, addr Bytes, 0
    
    cmp eax, 0
    je @_3

    invoke inet_addr, addr szBufferRead
    mov ip, eax

    mov eax, OFFSET wsacode

    mov edi, ip
    mov DWORD PTR [eax+1], edi
    
    invoke GetProcAddress, procaddr, addr inet
    mov rlprocaddr, eax
    
    invoke WaitForInputIdle, pi.hProcess, INFINITE
    invoke WriteProcessMemory, pi.hProcess, rlprocaddr, addr wsacode, sizeof wsacode, 0

    cmp eax, 0
    je @_2
    
@e:
    invoke WSACleanup
    invoke CloseHandle, serverdat
    invoke ExitProcess, 0
    
@_1:
    invoke MessageBox, 0, addr txtfailconq, addr txtfail, MB_OK
    jmp @e
    
@_2:
    invoke MessageBox, 0, addr txtfailinj, addr txtfail, MB_OK
    jmp @e
@_3:
    invoke MessageBox, 0, addr txtfailopn, addr txtfail, MB_OK
    jmp @e
    
end start
^ Linking to the thread would have been better.
[Only registered and activated users can see links. Click Here To Register...]
06/26/2014 11:05 Mr_PoP#7
Quote:
Originally Posted by Spirited View Post
^ Linking to the thread would have been better.
[Only registered and activated users can see links. Click Here To Register...]
it was on my desk , friend sent it to me long ago , I didn't know that it was here :D