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

#311
Cita de: Meta en 25 Mayo 2015, 20:00 PM
Tengo un archivo que pesa 2049 K Bytes, a partirlo con el BankSawp.exe si lo parte en dos, pero este que hice arriba gracias a ustedes me lo parte en tres cachos. El último cacho a 1 KB.

Bro es solo cuestion de matematicas:
2049 KB = 1024 KB + 1024 KB + 1 KB

O lo que seria lo mismo dos partes de 1024 KB y una parte de 1 KB lo que completaria los 2049 KB.
#312
@Meta

Bueno si lo que quieres es simplemente dividir un fichero en partes iguales de 1MB no creo que tengas que hacer reversing a una app para saber como se hace, la cosa es bien sencilla, vendria siendo algo como esto mas o menos basicamente:

Código (csharp) [Seleccionar]
const int CHUNKSIZE = 1024 * 1024;
byte[] buffer;
int i = 1;

FileStream infile = new FileStream(@"C:\app.xxx", FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(infile);

reader.BaseStream.Position = 0;
buffer = reader.ReadBytes(CHUNKSIZE);
while (buffer.Length != 0)
{
    FileStream outfile = new FileStream(@"C:\File_" + i + ".bin", FileMode.CreateNew, FileAccess.Write);
    BinaryWriter writer = new BinaryWriter(outfile);
   
    writer.Write(buffer);
    writer.Flush();
    writer.Close();
    outfile.Close();

    buffer = reader.ReadBytes(CHUNKSIZE);
    i++;
}

reader.Close();
infile.Close();


Y si, como dice tincopasan, esto deberia ir en Programacion C# y no aqui  :-\
Saludos
#313
Cita de: chompux en 25 Mayo 2015, 05:23 AM
el RDG me muestra que esta escrito en VC++ 11.0 con lo cual confirmo que si es .NET

Tu mismo te distes la respuesta:
Cita de: chompux en 25 Mayo 2015, 05:23 AM
Al intentar pasarlo a De4Dot no se obtiene resultado solo me pone "WARNING: The file isn't a .NET PE file"

Visual C++ 11.0 no tiene nada que ver con el Framework .NET, por consiguiente tu ejecutable tampoco, el propio De4Dot te lo indica, asi que puedes descartar los decompiler .NET (Reflector, ILSpy, etc) para obtener codigo fuente o algun tipo de pseudocodigo en lenguaje de alto nivel, al final vas a tener que irte por la mas complicada y echar mano al reversing con IDA, OllyDbg o cualquier otro parecido y ver que puedes sacar en ASM, o irte por la opcion 4 que te comente antes + HexRays Decompiler para ayudarte un poco en pseudocodigo para las funciones diferentes.
#314
1- Primero verifica que este realmente compilado en .NET y si no tiene ofuscacion, para esto puedes utilizar cualquier PE Analizer, te recomiendo RDG Packer Detector, pues es uno de los mas actualizados, AQUI
2- Luego si esta realmente creado en .NET usa cualquier decompiler como Reflector, ILSpy, etc.
3- Si esta ofuscado o protegido de alguna forma puedes probar pasandolo antes por el De4Dot, AQUI
4- Finalmente puedes usar tb IDA+BinDiff para obtener las diferencias entre dos ejecutables.

Saludos
#315
Si he entendido bien, lo que quieres lograr es obtener el codigo fuente del ejecutable "bankswap.exe", bueno aqui hay un par de cosas teniendo en encuenta la premisa de que la app que desas decompilar esta creada en VC++:

1- ILSpy, Reflector, etc solo te serviran para decompilar aplicaciones creadas en .NET (VB.NET, C#, etc), no vale para otro tipo de aplicaciones.
2- El "codigo fuente" o lo mas cerca a esto que se pueda (pseudocodigo en lenguaje de alto nivel) a aplicaciones en C++ solo lo he visto usando IDA+HexRays Decompiler (no se si exista algo mas parecido a esto) o algun decompiler como el mismo IDA, OllyDbg, etc, pero en este caso solo obtendrias codigo de bajo nivel, nada como lo que quieres.

Saludos
#316
Cita de: migyn12 en 12 Mayo 2015, 23:33 PM
Hola amigos recuro a ustedes xq estoy trabajando en un proyecto y necesito que en el formulario login pueda tener un link label que me pueda recuperar la contraseña ya sea por el correo electronico o cuando el usuario no tenga internet de antemano gracias

Puedes probar con preguntas de seguridad o algo parecido?. Al final necesitas que el user tenga acceso a tu bd, sino como vas a hacer una gestion por roles en tu app?
#317
La excepcion esta a la hora de convertir la clave que introducimos a entero, especificamente aqui:

Código (csharp) [Seleccionar]
System.Convert.ToInt32(String value)
CrackMeII.Form1.button1_Click(Object sender, EventArgs e)


Ya que jaxoR no controla dicha conversion en su codigo y al introducir como clave algun caracter no numerico salta el error, a estos efectos hubiero sido mejor usar Int32.TryParse o un bloque try/catch
#318
Cita de: tincopasan en  3 Mayo 2015, 01:45 AM
otra vez resuelven el crackme, ponen la solución, pero no explican para que los que no sabemos como se resuelve podamos aprender. Pareciera que esconden la solución para que no aprendamos.          

Para nada tincopasan  :huh: por mi parte es que es demasiado sencillo como comentas tu mismo, es solo poner el crackme bajo la combinacion de4dot/ILSpy o cualquier otro NET decompiler y leer el codigo en lenguaje de alto nivel, no es mucha complicacion, por eso no explique el procedimiento, porque no tiene nada del otro mundo.
Ahora si a lo que te refieres es a comentar el algoritmo de registro que usa el crackme, bueno, pues seria solo explicar el "mismo codigo" que se ve, es solo interpretacion, nada mas, luego si quieres un resumen la cosa va por aqui:

Nombre:
* ASCII(name[0]) + ASCII(name[1]) > 100
* ASCII(name[2]) + ASCII(name[3]) < 100
* ASCII(name[4]) + ASCII(name[5]) > 150
* ASCII(name[2]) + ASCII(name[3]) + ASCII(name[4]) + ASCII(name[5]) > 165
* Ultimo ASCII del caracter del nombre debe ser par
* La suma de los caracteres del nombre dividido por el serial (int) debe dar 0 de resto


Serial:
* Entero entre 40 y 70
* Valor (int) diferente de la suma de los caracteres del nombre
* El ASCII del digito mayor usado debe ser par
* No puede contener ningun digito con un ASCII < que 4


Es solo encontrar una combinacion nombre/clave que cumplan esas condiciones y listo. No se si es eso a lo que te refieres
Un saludo
#319
Usuario: Th11der-Cls (espacio al final  ;D)
Clave: 44

Gracias por compartir  ;)
Saludos
#320
Todo esta muy claro aqui  :-\  :¬¬, GetLastError te devuelve un error bastante simple ERROR_SHARING_VIOLATION:

Traduccion:
La carpeta no la puedes borrar pues algun otro proceso/tu propio proceso tiene un HANDLE con FILE_SHARE_READ como dwShareMode de la misma, y hasta que dicho manejador no sea cerrado o el proceso que contiene el recurso terminado, el SO te bloqueara cualquier peticion de borrado.

Solucion:
1- Encuentra el proceso que mantiene el manejador de la carpeta y terminalo. (Esto lo puedes hacer con ProcessExplorer o cualquier app similar)
1.2 - Si ningun otro proceso tiene un HANDLE a la carpeta abierto, entonces quiere decir que tu propia app es la que lo tiene abierto cuando intentas eliminarlo en tu codigo. Intenta usar el RemoveDirectory() justo despues que cierres el manejador con FindClose() que mantienes abierto desde la llamada FindFirstFile() a la carpeta, o verifica cualquier otro lugar donde puedes haber abierto un manejador a la misma y no lo has cerrado cuando llamas a RemoveDirectory().
2- Intenta ahora eliminar la carpeta (ten en cuenta q debe estar vacia, como ya sabes)

Saludos