Is there any available source code for conquerloaderv5?
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...Quote:
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...]
; ---------------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.Quote:
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
it was on my desk , friend sent it to me long ago , I didn't know that it was here :DQuote:
^ Linking to the thread would have been better.
[Only registered and activated users can see links. Click Here To Register...]