Editar .exe

Iniciado por Zeskash, 18 Mayo 2017, 13:07 PM

0 Miembros y 1 Visitante están viendo este tema.

Zeskash

Hola buenas estoy intentando editar un .exe . Usando RDG Packer Detector pone que está compilado en C++ 6.0 (C++ 2013) , Detected = nothing (esto no sé que es) y Possible = Check IsDebbugerPresent (API) He usado Resource Hacker y me aparecen algunas cosas pero una de las secciones está con letras raras, alguien podría echarme una mano?

EDIT: he usado un programa llamado snowman para decompilar, alguien tiene otro mejor? En este se vé todo el código seguido, hay alguna forma de ordenarlo? Como puedo ejectuar un debugger para ver en tiempo real lo que hace el programa y así saber donde está lo que quiero editar.
Gracias de antemano.

EDIT 2: una vez decompilado, puedo copiar ese código, compilarlo y ejecutarlo para usar un debuger y saber donde está lo que quiero editar? Si es así, puede alguien echarme una mano?

engel lex

los ejecutables nativos en general no son descompilables más alla de lenguaje ensamblador, más aún de C/C++, el codigo no se guarda en formato texto dentro del lenguaje ensamblador, solo queda es lo que el compilador convirtió del texto a binario... y esto tampoco se puede traducir 1 a 1, porque los ensambladores usualmente llevan a cabo tareas de optimización... es decir

Código (cpp) [Seleccionar]
int q=0;
int b = 10;
for(int i = 0; i < b; i++){
   q += sin(b-i)
}


puede en ensablador ser casi identico a

Código (cpp) [Seleccionar]
int sumatoria_coseno_inverso;
int manejador = 10
while(manejador){
  sumatoria_coseno_inverso += sin(manejador)
  manejador--;
}



ya que la optimización dará el camino más optimo para hacerlo

sin contar que las funciones y variables tampoco tendrán nombre, eso no se guarda cuando se compila, eso es de uso meramente humano...

así que probablemente el código si lo intenta armar un programa sea básicamente ilegible y con secciones en opcode

lo más normal y racional es modificar el binario en ensamblador y listo
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Zeskash

#2
Explico lo que quiero hacer, uso un programa que es un bot para un juego, las primeras 4 horas tienes todas las funciones premium, después pasas a ser un usuario free y se capa todo. Al registrarte en iniciar sesión se guarda una especie de llave que supongo que es la que usará al abrir el programa e iniciar sesión y supongo que es ahí donde pone que tipo de usuario soy. Hasta ahí bien, lo que se me ocurrió para tener las funciones premium es Cortar del código la comprobación de mi tipo de cuenta y que el programa empiece a funcionar normalmente, aunque no sé si el código de cómo funciona el bot está guardado localmente o tiene que conectarse. A alguien se le ocurre otra forma de hacerlo? Si es necesario puedo compartir el archivo. Otra opción que se me ocurre es hacer que el programa pueda funcionar sin acceder a Internet, puedo cortarie el acceso a Internet? En tal caso puedo probar a quitárselo solo a ese programa y ejecutar el juego y probar si funciona, todo esto desde una base de ignorancia total de cómo funciona este mundillo. Muchas gracias por responder

engel lex

estás en el subforo correcto... si no has hecho esto nunca antes, recomiendo leerte los temas fijos y empezar con cosas simples como crackmes...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MCKSys Argentina

Como te han dicho, si no tienes idea del tema, deberás comenzar con las cosas básica.

Ahora, sólo por curiosidad, el bot ése... no será el pbdo-bot, no? Porque ése es muy fácil de reversear (y reventar  :P). En su momento vi la versión 4.3.3 de este bot y hasta me bajé la base de datos que usa desde inet...  :xD (ni hablar de que se puede modificar también!)

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Zeskash

#5
Se llama VC-Bot (Vega Conflict bot)
EDIT : Vale, he bloqueado las conexiones del programa y parece que funciona todo correcto, osea que el bot está guardado localmente. Algo de lo que me acabo de dar cuenta es de que cuando abro el bot todas las opciones están desbloqueadas, luego el raton se mueve a mi pestaña de perfil en el juego, comprueba algo, o eso creo, o igual simplemente lee la llave archivada localmente y luego me dice que ha terminado el premium blablabla, supongo que si logro eliminar la parte de comprobación
Bot version: 2.5.21
[21:25:58] Initializing...
[21:26:05] Game started successfully.
[21:26:26] User ID: 17560404
[21:26:26] Base Level: 57
[21:26:28] =========== MESSAGE(S) FROM SERVER ===========
MESSAGE: Your premium status subscription is expired!
[21:26:28] Premium status subscription expired.
Please donate and/or buy subscription to support this project!
[21:26:30] Initialization finished. Bot is ready to take orders :) << Hacer que empiece aquí, estará todo solucionado, ya que funciona perfectamente sin internet, alguna idea de como hacer esto? Es posible lo que comenté anteriormente de compilar el código descompilado y hacer un debuger para ver las variables que usa etc y hasta donde he de modificar? Por cierto empezaré a leer los temas fijos, gracias por responder.



MCKSys Argentina

Bueno, por lo que veo el programa se descarga la versión actual del bot.

Al ejecutarlo en una maquina virtual, sin steam ni nada de eso, no me baja nada; por lo que no pude ver más allá de lo que hay disponible (lo cual no es mucho).

Por lo pronto, si RDG te dice que no tiene un packer, lo puedes debugear con Olly (ponle StrongOD por las dudas) y ver qué es lo que hace para verificar el estado de la licencia.

También podrías usar IDA para hacer un analisis estático del mismo (busca IDA x la red. Está dispnible full).

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Zeskash

A que te refieres con StrongOD, donde aparece esa opción, debo de estar ciego. Me he descargado OllyDbg, le doy a abrir y abro el exe del programa sin más, que me estoy saltando.

MCKSys Argentina

StrongOD es un plugin para Olly que lo hace indetectable.

Lo puedes bajar desde aqui: https://tuts4you.com/download.php?view.2028

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Zeskash

#9
Perdona por ser tan pesado pero no encuentro como instalarlo / usarlo, podrías ayudarme? Ya lo tengo descomprimido, no veo ninguna instrucción de como usarlo. Me siento como si fuera tonto  :-(

EDIT : He estado toqueteando con el Olly y me he encontrado la carpeta de los plugins, solucionado.
EDIT 2 : Igual te parece una pregunta muy estúpida pero, donde está la entrada del programa en el código? Es decir, las primeras líneas, no sé si me explico. Gracias.
EDIT 3 : Vale supongo que es donde pone Call y el nombre del exe
EDIT 4 : He avanzado algo (creo) cuando el programa se inicia escribe>> Bot version: 2.5.21 , usando search for >> all referenced texts strings y poniendo "Bot version" debería encontrarlo, no? Es que no me aparece, me dice not found... me he quedado un poco atascado  :¬¬