; ---------------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 ;Write new ip to inet_addr using WriteProcessMemory
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
Does that look like hooking to you?
Having never touched memory injection or hooking in my life I have no idea what any of that does (that plus being ridiculously drunk atm). Was simply providing the explanation from the way I understood the loader working.
Isnt it just hooking the inet_addr function? which in that version coded in MASM(asm) Injects on load(WaitForInputIdle) where as what I thought was a much better idea Null's loader V2. V3. V4(C++?) injects when you try to connect. kinda smart.
It's 08:53 which for me is normally 4-6 hours early so im bound to of made mistakes ^.
Conquer.exe cracked 05/01/2010 - CO2 Private Server - 1 Replies Someone know to crack a conquer.exe ? an Pserve loader ?
if have a tutorial post here ^^ i want revive in gw and enable pm commands
My cracked Conquer.exe. 09/26/2008 - CO2 Exploits, Hacks & Tools - 94 Replies List of changes:
1. Run Conquer.exe directly.
2. PM commands enabled.
3. No timestamp for spamming.
4. Multiclient.
5. ChatFilter/Tips removed.
6. Friend list limit removed - needs testing but *SHOULD* work.
7. Virus scanner removed.
8. co.91.com/index doesn't popup.
9. Annoying "Warning: The network is congested." messages removed - temporary fix.