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ú

Temas - negux

#1
Que tal, veran, estoy usando proteus con un PIC 18f4550 , para una comunicacion usb
atravez de java con jpicusb, al correr el proteus me sale el icono de nuevo hardware encontrado, aqui tengo que instalar los drivers usb, pero no los instala dice que no puede, alguien sabe por que sucede esto?
estos son los drivers :MCHPUSB Driver
tengo win xp de 32 bits
estaba siguiendo este tutorial:

http://www.youtube.com/watch?v=juDve7zOX0s&feature=relmfu

Gracias
#2
Crackme #1 Gizmo by negux
Aquí traigo la realización de otro crackme que encontré en algún mirror de crackmes; así que empecemos.


Veamos que nos dice el RDG.


Abrámoslo con el Olly


Caemos en esa zona y vemos que tiene un PUSHAD, así que lo pasamos con F8, y hacemos follow in dump del registro ESP.


Marcamos los primeros cuatro bytes y marcamos el breakpoint.



Damos run y llegamos aquí, vemos el POPAD, y abajo el salto que nos llevara al OEP, le damos F8 hasta que nos lleve ala dirección del salto. Y hacemos dump del proceso, yo lo hice con el plugin OllyDump :P



Una vez que hicimos ese proceso, lo guardamos con otro nombre y ahora si, podemos empezar a trabajar con el crackme, je.
Buscamos por text strings y nos aparece esto:


Vemos una cadena sospechosa, bueno dos, pero no les hagamos caso por el momento, le doy doble clic donde terminaría la primera parte "Part1 finished", para ver qué pasa en esa zona.


Caigo aquí, pero subo para buscar el inicio del código o alguna comparación o salto que me lleve a esta zona :P


Llego a esta parte, vemos arriba como está la cadena sospechosa, decido ponerle breakpoint ahí, y aunque arriba hay una comparación y luego un salto mi intuición me dice que ponga el breakpoint aquí, seguramente esa comparación a de ser para que metamos algo en el serial.
Damos run:


Vemos como aquí va a meter nuestro serial, seguimos traceando hasta llegar a esta función que compara :P


Vemos en el stack los argumentos a comparar.


Vayamos a esa direcciones haber que guarda.

Vemos que en esa zona esta nuestro serial y la otra cadena sospechosa, así que probemos:

Lo hicimos, llegando a este punto pensé que ya había terminado je, pero bueno ahí me dice que hay una segunda parte, veamos de que trata.


Nombre y serial y en este caso.
Bueno hagamos lo mismo que el primero, buscar por text strings, "try again", y subo en la búsqueda del inicio, llego a esta parte:

Vemos otra vez arriba una cadena sospechosa, pero no, en este caso no es el serial, pongo un breakpoint en el inicio.
Doy Run (F9),  para y empezamos a tracear, y vemos que mete a EAX la cadena "t@b@c"



Seguimos traceando y llegamos  a esta zona:

Vemos que ahí ya metió en EAX, el valor de 74, que es el hexadecimal de "t", de la cadena "t@b@c", sigamos:


Vemos que ahora mete 6E, a EAX, que es el valor de "n", de mi serial, "negux".



Seguimos traceando y llegamos a esta función, que hace un Xor, entre el valor en hexadecimal de cada letra de "t@b@c" y cada letra de mi serial "negux":



Aquí vemos cómo se va generando nuestro serial, quedando al final de esta forma.
negux -> 6E 65 67 75 78                                                           t@b@c -> 74 40 62 40 63
6E xor 74 = 1A
65 xor 40 = 25
67 xor 62 = 5
75 xor 40 = 35
78 xor 63 = 1B
Name: negux
Serial: 1A255351B
Eso lo metemos y llegamos a la última parte ;)

Un NAG. Para esto hacemos, search for -> constant y buscamos: 2B0:


Presionamos Ok y nos aparecen varias instrucciones, una de ellas debería de ser la que buscamos eliminar, llegamos aquí:


Este es el call de nuestra NAG, así que lo que hice fue nopearla :P, quedando así:


Y listo, guarde los cambios en el ejecutable y no mas NAG, y así terminamos este crackme que no pensé que fueran tres en uno je.

Gracias

No se por que no me puso las imagenes asi  :huh:

PD. Aqui dejo el link si gustan descargar el tuto, viene con el crackme y un pequeño keygen de la segunda parte, solo que el serial lo da en minusculas, y tendria que cambiarse a mayusculas je  :P

http://www.mediafire.com/?zf1f4n8emacq6cv


*Modificado :)
#3
Objetivo: Crackme v10.0 Eternal Bliss
Cracker: negux


Este no es el típico crackme de buscar un serial, así que veamos de qué se trata.




Algo nuevo para mi, presionamos el botón Check pero no nos manda algún mensaje, mmm veamos que nos dice el RDG.



Esta hecho en Visual Basic y además nos dice que esta P-Code( para entender bien como tratar este tipo de crackmes recomiendo leer el tutorial que me sirvió para este crackme, es de und3r, en el mismo documento hace referencia a una lección de Ricardo Narvaja,pongo la referencia al final).

¿Qué es P-Code?
Cuando compilados un programa con VB, este nos da la posibilidad de elegir el tipo de compilado diferenciando entre código NATIVO y P-CODE:
el código nativo tiene la gran ventaja que ejecutan el código en la sección code del programa permitiendo esto que sea más "fácil" lograr saltar la seguridad, por otro lado el  P-CODE no posee código de ejecución dentro de la sección code. solo posee una serie de códigos llamados P-Codeque son interpretados y ejecutados por la dll de Visual Basic, haciéndonos una tarea más difícil. [1].

Bueno, si leen el documento nos menciona que abramos el crackme con Exdec, así que hagamoslo.




Ahí está nuestro crackme, si somos observadores y con un poco de perspicacia veo algo que me llama la atención.




Los cuento y son 24, que es el número de cuadritos del crackme, entonces me hace suponer que checa esos cuadritos para saber su estado.
Y como dice und3r que existen estos dos P-codes:
1)BranchF=1C
este P-Code es similar a un salto condicional, este salto se realiza si la comprobación anterior es falsa.

2)BranchT=1D
este P-Code es el opuesto a BranchF es decir, este salta cuando la comprobación es verdadera T=True F=false
Asi que buscamos el primer BranchF





Ahí vemos algunos y la dirección a donde nos llevaría si es True, dichas dirección son el inicio de la comprobación de los cuadritos.
Anotamos las direcciones de cada uno, en total 24:
Así que abrimos el crackme en el Olly y en el dump vamos a la dirección de cada uno.


Uploaded with ImageShack.us
Vemos:



Ahí vemos el 1c, BranchF, lo cambiamos a 1D




Y hacemos el mismo procedimiento con las 24 direcciones que anotamos. Una vez hecho esto copiamos los cambios al ejecutable y lo guardamos con otro nombre, asi que probemos lo que hicimos.
Abrimos nuestro nuevo crackme y marcamos cualquier cuadrito y vemos que pasa.






Funcionó  ;D

Referencia:
[1]. P-Code por UND3R. http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/1401-1500/1409-Introduccion%20al%20cracking%20en%20P-Code%20parte%20I%20por%20UND3R.doc

#4
Aqui la solucion a otro crackme je


http://www.mediafire.com/?o92vw33odo96s86

por el momento estoy haciendo crackmes no tan dificiles, para irme acoplando a la ing inversa  :P

Saludos y Gracias.
#5
Bueno aqui dejo otro crackme resuelto, pide tambien el keygen, ese si se los debo jeje :silbar:

http://www.mediafire.com/?wsamoh9248a6475

viene incluido el crackme

Gracias  ;D
#6
Ingeniería Inversa / Solucion a dos crackmes
14 Enero 2012, 09:10 AM
Hola que tal, pues eso, subo la solucion de 2 crackmes que acabo de hacer, son nivel muy basico je, tengan en cuenta que me estoy iniciando en la ing inversa
asi que no sean muy duros conmigo :P
uno es de +NCR, crackme1 y otro de Devastador, crackme v2.0

http://www.mediafire.com/?lk2gv32ceca8l3c

Espero ya pronto subir de nivel :(

Graciass
#7
Ingeniería Inversa / Ayuda con un crackme
9 Enero 2012, 15:30 PM
Que tal, recien estoy terminando el curso de Ricardo y me dispuse a hacer un crackme, bueno, les cuento, el crackme estaba empacado con exe stealth, y con ayuda de google pude desempacarlo :P y Bueno tengo esta parte de lo que muestra el olly, donde lee lo que pongo como serial, y salta al mensaje de Error.
Código (asm) [Seleccionar]

00401099   .  E8 E8000000     CALL <JMP.&user32.GetDlgItemTextA>       ; \GetDlgItemTextA
0040109E   .  83F8 0C            CMP EAX,0C
004010A1   .  75 16                JNZ SHORT F7Crackm.004010B9
004010A3   .  8D35 00304000 LEA ESI,DWORD PTR DS:[403000]
004010A9   .  0FB646 FF         MOVZX EAX,BYTE PTR DS:[ESI-1]
004010AD   .  3806                CMP BYTE PTR DS:[ESI],AL
004010AF   .  75 08                JNZ SHORT F7Crackm.004010B9
004010B1   .  60                    PUSHAD
004010B2   .  E8 77FFFFFF      CALL F7Crackm.0040102E
004010B7   .  EB 51               JMP SHORT F7Crackm.0040110A
004010B9   >  68 00304000    PUSH F7Crackm.00403000                   ; /Arg1 = 00403000 ASCII "555555555555"
004010BE   .  E8 6C000000    CALL F7Crackm.0040112F                     ; \F7Crackm.0040112F
004010C3   .  6A 00               PUSH 0                                               ; /Style = MB_OK|MB_APPLMODAL
004010C5   .  68 24324000     PUSH F7Crackm.00403224                   ; |Title = "Error"
004010CA   .  68 19314000     PUSH F7Crackm.00403119                   ; |Text = ""
004010CF   .  6A 00               PUSH 0                                               ; |hOwner = NULL
004010D1   .  E8 B6000000    CALL <JMP.&user32.MessageBoxA>       ; \MessageBoxA

ahi compara Eax con 0c, que es la longitud del serial, si no es igual salta al mensage de error, en este caso no salta (digite doce veces, "5"), luego vemos que mueve a ESI el serial
que ingrese, y aqui viene el problema, no le entiendo muy muy bien a la siguiente instruccion: MOVZX EAX,BYTE PTR DS:[ESI-1], segun yo: mueve a eax un byte del contenido de
DS en la direccion de memoria [ESI-1], olly marca DS:[00402FF]=00, y el movzx lo rellena con ceros.
y de ahi compara un byte de mi serial con AL:
AL=00
DS:[00403000]=35 ('5')
y dependiendo del resultado de esa comparacion salta al cartel malo o bueno.

Codigo de Mensaje bueno:

0040102E  /$  6A 00             PUSH 0                                                ; /Style = MB_OK|MB_APPLMODAL
00401030  |.  68 1C324000   PUSH F7Crackm.0040321C                   ; |Title = "Mensaje"
00401035  |.  68 18324000   PUSH F7Crackm.00403218                    ; |Text = "Ok"
0040103A  |.  6A 00             PUSH 0                                               ;  |hOwner = NULL
0040103C  |.  E8 4B010000  CALL <JMP.&user32.MessageBoxA>       ;  \MessageBoxA


Y pues bueno, hasta aqui llegue, no se que serial compara para saltar al mensaje bueno, busque las api que utiliza y no hay alguna que compare, la unica comparacion que me lleva al mensaje bueno es esa con AL
alguna sugerencia/ayuda ??

Gracias

Edito.

Al introducir 20 caracteres (16, "5" y 4, "9");

llego a este call:

004010BE   .  E8 6C000000   CALL F7Crackm.0040112F                   ; \F7Crackm.0040112F

y me sale un mensaje de Error:

Don´t know how to step because memory at address 399393939 is not readable, try to change EIP or pass exception to program

Analizando eso en el Dump veo esto:

00403000  35 35 35 35 35 35 35 35  55555555
00403008  35 35 35 35 35 35 35 35  55555555
00403010  39 39 39 39 00 00 00 00  9999....

Supongo, no se, que como que trata de ejecutar esa direcion de memoria -> 399393939 que son los 9999 que escribi, eso un el overflow? y de ahi como le sigo  :huh: :rolleyes:
#8
Bases de Datos / COLUMNAS EN MYSQL
21 Septiembre 2011, 17:56 PM
Estoy trabajando una base de datos en Mysql con varias tablas, pero ahora necesito agregar dos columnas mas a tooodas mis tablas al inicio de cada tabla, es decir, que las columnas que agregue no sean las ultimas si no la 1 y 2. He usado el Altertable, sin embargo, me agregan las columnas al final, alguien puede ayudarme con algun metodo para hacer lo que necesito?? de antemno gracias.
#9
mi equipo forma parte de una red local en la cual comparto informacion con una maquina en especifico, pero cualquie usuario de la red puede acceder a ella, necesito saber como hacerle para que cuando alguien quiera acceder a mi equipo a traves de mis sisitios de red, le solicite una contraseña de acceso, justo como en la imagen:
alguna idea de como hacerlo?? es urgente :( gracias
#10
Hardware / error C1AB0003 en impresora HP
19 Julio 2011, 02:41 AM
una impresora hp photosmart 8050, marca en su pantalla las letras c1ab0003 y simplemente dejo de funcionar, nisiquiera apaga y tiene una luz parpadeante justo donde se colocan las memorias sd y usb... alguna ayuda??? no se ni por donde empezar a moverle .... es urgente :(
#11
Que tal, pues veran tengo un error al tratar de abrir un fichero en python, este es el codigo:
Código (python) [Seleccionar]

try:
 fichero=open("ejemplo.txt","r")
 for linea in fichero:
   if linea[-1]=='\n':
     linea=linea[:-1]
   print linea
 fichero.close()
except IOError:
 print 'El fichero no existe'

imprime que el fichero no existe.
El fichero esta en la misma carpeta que el programa

ahora bien, lo hice en C, y ahi si lo abre e imprime su contenido  :huh:
Alguien podria decirme por que?:S

Gracias

**Edito:
   Ya logre que corriera, genere un fichero para escribir, en teoria deberia de generarlo en la carpeta donde tengo mis programas no?, bueno, no estaba ahi, asi que lo busque y lo encontre en la carpeta de mi usuario(win xp), no en   misdocumentos\mis programas asi que copie el ejemplo.txt a esa carpeta y ya pudo leerlo  :huh:
Pero no de la carpeta donde estan mis programas, por eso en C si se pudo
Confuso no?
#12
Alguien sabe de un decompilador de Visual Basic, que al decompilar el codigo lo haga de esta forma:

Private Sub Command1_Click() '401D50
  'Data Table: 401838
  loc_401CF6: If (CVar(Text1.Text) = 982) Then '401D25
  loc_401D12:   MsgBox("YaZZ", &H0, var_EC, var_10C, var_12C)
  loc_401D22:   GoTo loc_401D4E
  loc_401D25: End If
  loc_401D3E: MsgBox("Fuxer", &H0, "", "", var_12C)
  loc_401D4E: ' Referenced from: 401D22
  loc_401D4E: Exit Sub
End Sub

Baje el VBreformer y el VB decompile_lite pero me dan el codigo asi:


Private Sub Command1_Click() '401D50
  'Data Table: 401838
  loc_401CCC: FLdRfVar var_AC
  loc_401CCF: FLdPrThis
  loc_401CD0: VCallAd Text1
  loc_401CD3: FStAdFunc var_A8
  loc_401CD6: FLdPr var_A8
  loc_401CD9:  = Me.Text
  loc_401CDE: FLdZeroAd var_AC
  loc_401CE1: CVarStr var_BC
  loc_401CE4: FStVar
  .
  .
  . etc

asi no le entiendo  :huh: jeje
Gracias
#13
Redes / monitorear trafico de red
1 Junio 2011, 01:06 AM
Alguien sabe de algun programa para monitorear mi red, necesito saber que maquina es la que envia mas peticiones  :huh:
cualquier ayuda bienvenida
Gracias
#14
Hardware / Problema con lector de USB
9 Abril 2011, 23:52 PM
Supongo q va aki :P

bueno el problema es que cuando inserto una memoria o algun HD externo a mi pc, lo reconoce, pero cuando lo inserto denuevo ya sea el mismo u otra memoria, ya no:S
pero si me aparece el icono en la barra, de que detecto la memoria, pero en el Mi Pc no esta:S
y tengo que reiniciar para que la lea
Cualquier ayuda, bienvenida ;)
GRacias
#15
Seguridad / Error con Nmap
28 Marzo 2011, 23:20 PM
Alguien sabe porque me sale este error al tratar de correr nmap?


Gracias
#16
Bases de Datos / Conexion en Mysql Query Browser
19 Febrero 2011, 00:57 AM
Que tal, me e bajado el mysql query browser pero no consigo crear una conexion, para poder trabajar con el :huh:
alguien podria ayudarme, o algun otro software parecido ?
Gracias
#17
Alguien sabe como funcionan dichas paginas? mensajes a celulares :huh:
#18
GNU/Linux / ayuda plugin en iceweasel
26 Enero 2011, 01:42 AM
pues veran e tratado de instalar el plugin de flashplayer en iceweasel pero no lo e logrado, e buscado en google, la mayoria dice lo mismo, lo e intentado y nada , e bajado el plugin de la pagina oficial, crear una carpeta en iceweasel de plugins, pero cuando descomprimo el archivo no lo puedo copiar a esa carpeta

alguien tendra otro metodo??
Gracias
#19
ASM / Duda sobre compilador?
21 Enero 2011, 03:22 AM
bueno no se si llamarlo asi, el caso es que estoy empezando a con esto de ASM
me descargue el FASM de aqui

http://flatassembler.net/download.php

version para windows, y el que descargue es grafico, no se si es lo mismo que el que ocupan donde estoy siguiendo mis lecturas, utilizan uno pero es como si estuviera en msdos  ;D

porque al tratar de hacer el hola mundo me marca error, o que estoy haciendo  mal  :huh: e aqui el codigo
Código (asm) [Seleccionar]

.MODEL SMALL
.CODE

Programa:

MOV AX,@DATA
MOV DS, AX
MOV DX,Offset Texto
MOV AH, 9
INT 21H
MOV AX,4C00H
INT 21H
.DATA

Texto DB 'HOLAMUNDO.$'
.STACK
END Programa


o es porque estoy en win7 de 64 bits
Porfavor si alguien pudiera ayudarme
Gracias
#20
Java / Por que no me imprime en mi fichero?
13 Diciembre 2010, 02:04 AM
Bueno, tengo este codigo que en teoria me muestra las cabecera HTTP de alguna pagina
en un archivo, pero no lo hace, solo crea el archivo vacio  :huh:
Código (java) [Seleccionar]


import java.net.URL;
import java.net.URLConnection;
import java.io.*;
import java.util.*;

public class HTTPGET{

public static void main(String[]args){
try{
FileWriter file=new FileWriter("C:/cabezera.txt");
PrintWriter OutputFile = new PrintWriter(file);
URL url=new URL("http://www.google.com");
                       URLConnection urlConnection =url.openConnection();
InputStream IS = urlConnection.getInputStream();

IS.close();
OutputFile.print(IS);
   }catch(Exception e) { System.out.println("Error...");}
       }
}






#21
Pudieran ayudarme con la impresion de un arbol binario ? la cosa es que ya lo imprime mas o menos asi

13
11
10
9

8
5
3

pero quisiera saber como se puede imprimir con lineas y circulitos :S no tengo idea de como :huh:


#include<stdio.h>
#include<stdlib.h>



struct nodo{
    int info;
    struct nodo *izq;
    struct nodo *der;
    int factor;
};
typedef struct nodo tarbin;
typedef tarbin *arbin;

//Prototipos de Funciones
int inserta_nodo_arbol(arbin *a, int x);
arbin arbizq(arbin a);
arbin arbder(arbin a);
void ini_arb(arbin *a);
int arbol_vacio(arbin a);
void imprimir_arbol(arbin a,int n);
int main()
{
    arbin a;
    int num,i;
    ini_arb(&a);

    printf("Inserta 7 Numeros\n");
    for(i=0;i<7;i++)
    {
        printf("Dame num %d\n",i+1);
        scanf("%d",&num);
        inserta_nodo_arbol(&a,num);
    }
    imprimir_arbol(a,0);






    return 0;
}

//FUNCIONES

void ini_arb(arbin *a)
{
    *a=NULL;
}
int arbol_vacio(arbin a)
{
    return a==NULL;
}
int inserta_nodo_arbol(arbin *a, int x)
{
    if(arbol_vacio(*a))
    {
        *a=(arbin)malloc(sizeof(tarbin));
         if(*a==NULL)
            return 1;
            (*a)->info=x;
            (*a)->der=(*a)->izq=NULL;
        return 0;
    }
    if(x<(*a)->info) return inserta_nodo_arbol(&(*a)->izq,x);
    if(x>(*a)->info) return inserta_nodo_arbol(&(*a)->der,x);
    return 2;

}
arbin arbizq(arbin a)
{
    return a->izq;
}
arbin arbder(arbin a)
{
    return a->der;
}
void imprimir_arbol(arbin a,int n)
{
    int i;
    if(a!=NULL)
    {
        imprimir_arbol(a->der,n+1);
        for(i=1;i<=n;i++)
           printf("            ");
        printf("(%d) \n\n",a->info);
        imprimir_arbol(a->izq,n+1);

    }   
}


#22
Bueno como dice el titulo quisiera saber como le puedo hacer , con una matriz almacenar nombres y numeros , algo asi:


                           nombre1  7   8   9
                           nombre2  5   2   8
                           nombre3  7   8   10

donde nombre1 seria una posicion en memoria de la matriz, al igual que cada numero
no se como almacenar los datos en la matriz.. espero me puedan ayudar
#23
Que tal, navegando me encontre con este codigo, ya se que es lo que hace por que lo compile, por ejemplo si escribo un 3, me imprimira un dos pero no entiendo como funciona el for, que accion tiene aqui  :huh: y mucho menos ese punto y coma despues  :huh: :huh:
les agradeceria que me explicaran
#include<stdio.h>
int main()
{
    /*
   
    const char s[]="`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
    char c;
    while((c=getchar())!=EOF)
    {
       long i;
       for(i=1;s[i]&&s[i]!=c;i++)
       ;
       if(s[i])
         putchar(s[i-1]);
       else
         putchar(c);
    }
return 0;
}
#24
WarZone / que a pasado con micuenta
11 Junio 2009, 00:34 AM
Saludos
Una pregunta, me registre en el warzone de aqi, e hice dos retos pero ahora que vuelvo a entrar me sale que no e echo nada  :huh:
que paso  >:(