Título: [C] Stealer Google Chrome Publicado por: mester en 30 Marzo 2016, 19:42 pm A raíz de este hilo http://foro.elhacker.net/analisis_y_diseno_de_malware/asm_stealer_google_chrome-t447125.0.html decidí pasar el código a C para que me pareciese más familiar, y además "mejorarlo" un poco.
El hecho en ASM por Fary depende de la librería sqlite3.dll. (EDITO) Código
Éste está preparado para ser ejecutado desde un pendrive. Depende del codigo de sqlite3 ya que coge las funciones del fichero. Aquí un zip con todo: https://drive.google.com/file/d/0Bzvog2L4FR24eDFEaUdvTDlZN2c/view?usp=sharing Título: Re: [C] Stealer Google Chrome Publicado por: fary en 30 Marzo 2016, 21:42 pm Hola Mester,
Te has molestado en que el nombre de usuario sea el correcto a la hora de acceder a la ruta pero no en que el disco sea el correcto... si yo tengo instalado el SO en el disco D:\ por ejemplo no funcionaría... Por otra parte el mensaje: Código Se muestra siempre? Por que ese mensaje? por que ese numero de error? :xD 900 Kb de ejecutable... :silbar: saludos y espero que mejores esas cosillas! Título: Re: [C] Stealer Google Chrome Publicado por: mester en 30 Marzo 2016, 22:09 pm Hola Mester, Te has molestado en que el nombre de usuario sea el correcto a la hora de acceder a la ruta pero no en que el disco sea el correcto... si yo tengo instalado el SO en el disco D:\ por ejemplo no funcionaría... Vaya, en eso no había pensado Jeje lo tendré en cuenta. Citar Por otra parte el mensaje: Código Se muestra siempre? Por que ese mensaje? por que ese numero de error? :xD Ese mensaje es en plan ingeniería social, si se queda colgada la cmd el que lo haya ejecutado tiene de excusa de que su programa falla y lo tiene que corregir. Ese código es el que me da tu stealer porque falla la librería sqlite3 xd por eso en vez de mi programa usar la librería compila las funciones del código oficial. Citar 900 Kb de ejecutable... :silbar: Yaaaaa T.T Citar saludos y espero que mejores esas cosillas! Saludosss Título: Re: [C] Stealer Google Chrome Publicado por: AlbertoBSD en 2 Abril 2016, 00:41 am 900 Kb el ejecutable puff.
me imagino que se puede Optimizar via flags del compilador. creo que cambia mucho de un entorno windows. Por ejemplo en Linux mi Bot para telegram pesa sobre 80KB y se me hace mucho.. ahora decir 900 pues noo Título: Re: [C] Stealer Google Chrome Publicado por: mester en 2 Abril 2016, 00:51 am 900 Kb el ejecutable puff. 900kb de ejecutable porque utiliza la librería estática de sqlite3, por eso pesa tanto. No utiliza librerías dinámicas para asegurar su funcionamiento en cualquier pcme imagino que se puede Optimizar via flags del compilador. creo que cambia mucho de un entorno windows. Por ejemplo en Linux mi Bot para telegram pesa sobre 80KB y se me hace mucho.. ahora decir 900 pues noo Título: Re: [C] Stealer Google Chrome Publicado por: crack81 en 2 Abril 2016, 03:06 am Hola primero que nada gracias por el aporte, se mira genial aun no lo pruebo :P ya que ando en linux pero pronto lo hare.
Bueno en fin vengo con una serie de dudas: Porque te declaras y reservas dos punteros char y no los liberas? Código Ademas que necesidad hay de reservar memoria dinamicamente? segun vi *CDir lo utilizas en la funcion Código
Pero viendo la implementacion: Código
Para lo unico que lo utilizas es para pasarle la referencia a la funcion sprintf Entonces por que no evitamos resevar dinamicamente y lo hacemos todo en la pila ejemplo; Código y basta con pasarle la referencia Código
Mismo caso para la variable Código se puede reservar en la pila: Código
Pero segun veo en tu codigo esa variable cData sirve para obtener el contenido de la funcion sqlite3_column_text() que segun su documentacion: https://www.sqlite.org/c3ref/column_blob.html (https://www.sqlite.org/c3ref/column_blob.html) retorna un const unsigned char *, lo cual me indica que al final todo eso que reservaste con malloc en la variable cData de nada sirve ya que terminara apuntado a otra direccion y sera imposible liberar la memoria que has reservado. Conclusion para la variable cData segun la documentacion no es necesario reservarle memoria ya que solo funciona como apuntador, basta con que la declararas asi: Código
Espero mis comentarios no sean tomados a mal. Saludooss y buen trabajo :P Título: Re: [C] Stealer Google Chrome Publicado por: mester en 2 Abril 2016, 03:15 am Hola primero que nada gracias por el aporte, se mira genial aun no lo pruebo :P ya que ando en linux pero pronto lo hare. Bueno en fin vengo con una serie de dudas: Porque te declaras y reservas dos punteros char y no los liberas? Código Ademas que necesidad hay de reservar memoria dinamicamente? segun vi *CDir lo utilizas en la funcion Código
Pero viendo la implementacion: Código
Para lo unico que lo utilizas es para pasarle la referencia a la funcion sprintf Entonces por que no evitamos resevar dinamicamente y lo hacemos todo en la pila ejemplo; Código y basta con pasarle la referencia Código
Mismo caso para la variable Código se puede reservar en la pila: Código
Pero segun veo en tu codigo esa variable cData sirve para obtener el contenido de la funcion sqlite3_column_text() que segun su documentacion: https://www.sqlite.org/c3ref/column_blob.html (https://www.sqlite.org/c3ref/column_blob.html) retorna un const unsigned char *, lo cual me indica que al final todo eso que reservaste con malloc en la variable cData de nada sirve ya que terminara apuntado a otra direccion y sera imposible liberar la memoria que has reservado. Conclusion para la variable cData segundo la documentacion no es necesario reservarle memoria ya que solo funcion como apuntador, basta con que la declararas asi: Código
Espero mis comentarios no sean tomados a mal. Saludooss y buen trabajo :P Para nada me lo tomo a mal, toda crítica es tomada como constructiva. Cambiaré todo excepto lo de pasarle a la función de Chrome la referencia, es algo que facilita mucho la tarea para encontrar la carpeta. En cuanto a la variable cData es que no lo había mirado en la documentación, he transcrito el código un poco de ASM a C, pero iré con más cuidado en eso. Gracias por tu aportación |