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 - MeCraniDOS

#61
Cita de: Snips3000 en  9 Julio 2014, 16:25 PM
Hola,
Tengo un problema con el bifrost, cuando creo el servidor una vez que le doy a abrir el servidor para aver si me infecto me aparece este error "La aplicación no se pudo iniciar correctamente"
¿Por que me aparece ese error?

Gracias!

Quizás configuras algo mal, envía capturas de la configuración  :rolleyes:
#62
Un Keylogger es algo tan simple como un programa que captura las teclas que pulsas

Citarleer lo que hace tu hermano en su computadora etc..

Se puede, siempre y cuando no utilice el teclado virtual
#63
Cita de: Eternal Idol en  4 Julio 2014, 15:38 PM
En el codigo de C estabas usando int, que es un DWORD con signo.

Un BYTE puede representar valores entre 0 y 255 asi que en este caso no necesitas un WORD tampoco ... y no, no podes usar add directamente con un WORD, vas a tener que pasarlo a un registro como con BYTE anteriormente; o usar el registro correspondiente en su lugar (al, ax, eax, rax).

De acuerdo, muchas gracias Eternal  ;D ;D

Saludos
#64
Cita de: Eternal Idol en  4 Julio 2014, 14:25 PM
No se cual seria el problema al dividir que tenias  ;D

Y si usas DWORD:
Código (asm) [Seleccionar]
add eax, [vector + ecx * 4]

El problema era que estaba utilizando DWORD, y solo incementaba el contador en 1, por lo que sumaba el valor y luego 3 ceros hasta el siguiente numero, pero se soluciona multiplicando como has hecho  ;D

Otra cosita, utilizando DWORD, no malgastarias memoria? (En este caso, ya que los numeros no son de mas de dos cifras)  :silbar:





En este caso podría utilizar WORD? que ocupa 2 bytes y es numerico

Código (asm) [Seleccionar]
vector dw 7, 8, 5, 2 ,9 ,1 ,0, 3

; ....

add eax, [vector + ecx * 2]
#65
Cita de: Eternal Idol en  4 Julio 2014, 09:02 AM
Notese que estas usando char (byte, db/rb), si queres usar un int usa dword (y el add puede ser directo).

Al utilizar dword ocupo 4 bytes en la memoria, por lo que tendria que incrementar el contador de 4 en 4  :-\

Citar00401000  07 00 00 00 08 00 00 00  ......
00401008  05 00 00 00 02 00 00 00  ......
00401010  09 00 00 00 01 00 00 00  .......
00401018  00 00 00 00 03 00 00 00  .......

Lo de la division lo veo raro  :rolleyes:

Poniendo el codigo como me has dicho, los registros quedan de esta manera una vez realizada la operación:

CitarEAX 00000001
ECX 00000008
EDX 00000007
EBX 7FFDF000
ESP 0007FF90
EBP 0007FF98
ESI 00000000
EDI 00000000
EIP 00402021 2_-_copi.00402021

Código (asm) [Seleccionar]
include 'FASM\INCLUDE\WIN32AX.INC'
   
.data
vector dd 7, 8, 5, 2 ,9 ,1 ,0, 3

.code
start:
mov eax, 0 ;Media
mov ecx, 0 ;Contador
   
for_add:
movzx edx, byte [vector+ecx]
add eax, edx
inc ecx
cmp ecx, 8
jne for_add
   
mov edx, 0 ;Inicializamos edx
idiv ecx ;edx:eax es dividido por ecx
 
;eax = cociente
;edx = resto
   
invoke ExitProcess, 0
   
.end start


No saca muy bien el resultado...  :silbar:

En que estoy metiendo la pata?  :huh:





Código (asm) [Seleccionar]
vector db 7, 8, 5, 2 ,9 ,1 ,0, 3

CitarEAX 00000004
ECX 00000008
EDX 00000003
EBX 7FFDF000
ESP 0007FF8C
EBP 0007FF98
ESI 00000000
EDI 00000000
EIP 00402022 2_-_copi.00402022

Solucionado ;D
#66
Cita de: Eternal Idol en  3 Julio 2014, 18:49 PM
No se si entendi muy bien:

Le he hecho en C para que se entienda mejor


   int eax=0, ecx=0;
   int Vector[] = {7,8,5,2,9,1,0,3};

   for(ecx=0;ecx<8;ecx++)
   {
        eax += Vector[ecx];
   }

   eax /= ecx;


Entonces lo que quería saber era si se podía inicializar como lo he hecho en C

Código (asm) [Seleccionar]
;Inicializamos el vector
mov [vector], 7
mov [vector+1], 8
mov [vector+2], 5
mov [vector+3], 2
mov [vector+4], 9
mov [vector+5], 1
mov [vector+6], 0
mov [vector+7], 3


Eso equivale a esto en C

   int Vector[8];

   Vector[0] = 7;
   Vector[1] = 8;
   Vector[2] = 5;
   Vector[3] = 2;
   Vector[4] = 9;
   Vector[5] = 1;
   Vector[6] = 0;
   Vector[7] = 3;


Y hacerlo asi en un  :o




Al final el código me ha quedado así con las modificaciones que me has dicho Eternal

Código (asm) [Seleccionar]
include 'FASM\INCLUDE\WIN32AX.INC'

.data
       vector db 7, 8, 5, 2 ,9 ,1 ,0, 3

.code
       start:
               mov eax, 0      ;Media
               mov ecx, 0      ;Contador

               for_add:
                       movzx edx, byte [vector+ecx]
                       add eax, edx
                       inc ecx
                       cmp ecx, 8
                       jne for_add

               mov ecx, 0 ;Reiniciamos ecx

               for_div:
                       sub eax, 8
                       cmp eax, 8
                       inc ecx
                       jae for_div

               invoke ExitProcess, 0

.end start


Por cierto, dos cosas, la rutina for_div se puede simplificar? Es que en arm lo tenia que hacer asi porque no hay operacion de division, pero en asm he visto que si, pero solo pones el registro a dividir, no entre que valor lo quieres dividir  :huh: :huh:

Y la otra, que diferencia hay entre esto?


Código (asm) [Seleccionar]
vector db 7, 8, 5, 2 ,9 ,1 ,0, 3
Código (asm) [Seleccionar]
vector rb 8

Pensaba que db era para una unica variable, y rb (reserved byte) para vectores, ya que especificas cuanto espacio quieres reservar  :rolleyes:
#67
Hola  ;D

Estoy intentando calcular la media de unos numeros para practicar un poco, pero tengo algunos fallos de concepto, he trabajado antes con ARM, pero las instrucciones en ASM son un poco diferente..

el codigo es este

Código (asm) [Seleccionar]
include 'FASM\INCLUDE\WIN32AX.INC'

.data
vector rd 8 ; Reservamos 8 bytes

.code
start:
mov eax, 0 ;Media
mov ecx, 0 ;Contador

;Inicializamos el vector
mov [vector], 7
mov [vector+1], 8
mov [vector+2], 5
mov [vector+3], 2
mov [vector+4], 9
mov [vector+5], 1
mov [vector+6], 0
mov [vector+7], 3

for:
add eax, [vector] ;Aqui esta el error
inc ecx
cmp ecx, 8
jne for

       ; Aqui divido para obtener la media

invoke ExitProcess, 0

.end start


Se que para los que sepan, es algo muy basico... hay alguna manera de inicializar el vector de una manera mas sencilla? y otra cosa, para ir sumando el valor del vector en un bucle com seria? Intentaba simular esto

Código (cpp) [Seleccionar]
for(int i=0;i<8;i++)
{
   eax += vector[i];
}


No quiero codigos completos, solo una ayudita con las instrucciones  :rolleyes:

Saludos
#68
Cita de: Mister12 en 22 Junio 2014, 03:10 AM
Windows Script Host

Secuencia de comandos: C: ubicacion del payload
Linea:      24
Caracter: 13
Error:       Expected end of statement
Codigo:    800A0401
Origen:     Microsoft VBScript compilation error

El codigo fuente del vbs es este:
             
Recopile el código en codeblock, para ver  cuál era la línea de código del error, solo logre ver que la línea 24 queda, donde aparece el texto en arteriscos al final pero no se cual es el carácter 13

Que parte del código debo modificar para que funcione?


VBS y CodeBlocks?  :o

VBS no se compila...  :rolleyes:
#69
Cita de: NiquitooX en 27 Junio 2014, 02:00 AM
uso una botnet echa en vb6

Creo que no se refiere al crypter, sino al archivo para infectar  :silbar:

La estas programando tu? O estas tirando de alguna de internet?
#70
Cita de: x64Core en  2 Julio 2014, 04:38 AM
¿Porqué mapear el archivo? Suponiendo que se quiere agregar la sección al ejecutable y luego guardar la nueva imagen en disco
simplemente leer la imagen CreateFile+ReadFile

Es como he visto que lo hacen los que dominan mucho del tema  :huh:

http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_rebuildpe-t262602.0.html


http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_anadir_una_seccion-t261801.0.html

http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_ampliar_seccion_ejecutable-t261800.0.html


En los códigos que hay ahí se trabaja desde memoria, y en funciones que he visto en otras webs, también trabajan mapeando el archivo y trabajando desde memoria :rolleyes: