miércoles, 18 de agosto de 2010

TRAINING de Introduccion al Cracking y anti-cracking en la Ekoparty 2010


Hola!,

queria comentarles que este año, junto a unos amigos y de la mano de Core Security Technologies, vamos a estar dando un training en la conferencia de seguridad mas imporantante de Latinoamérica y alrededores.

El training es una introduccion al cracking y anti-cracking. No quiero adelantar mucho pero les puedo decir que va a estar muy bueno. No hay precedentes, al menos en Latinoamerica, de un curso de este estilo.


Para mas informacion, pueden visitar el blog de la conferencia acá o dirigirse a la página oficial de la Ekoparty a la sección de Trainings.

Espero verlos por allá!.

CracksLatinoS cumple 10 años!!!


Allá por el año 2000 un grupo increible de gente se estaba juntando para compartir lo que sabian sobre computadoras y en especial sobre como quitar limitaciones a programas. La lista original creo recordar que alguna vez se dijo que estaba en e-listas y luego paso a Yahoo para finalmente quedarse en Google groups. En aquella lista, como dije anteriormente, un grupo de personas compartian sus conocimientos adquiridos de manera autodidacta con todo aquel que estuviera dispuesto a leer, sin mas interes que el de enseñar por gusto y para ayudar al resto de la comunidad. De esa lista fundanda originalmente por Tank y Ricardo Narvaja salieron grandes exponentes que durante estos 10 años han dado que hablar y han dejado una huella en el mundo del cracking, como el mismisimo Ricardo Narvaja y tantos otros que hoy dia siguen enseñando sobre cracking de manera desinteresada.

Para todos ellos, este pequeño homenaje en hoy, su cumpleaños nro 10!!!!.

No puedo dejar de agradecer a todos ellos por todo lo que me enseñaron!!!, estoy muy orgulloso de pertenecer a semejante grupo que considero una familia y en la cual he hecho muy buenos amigos que hoy dia hasta trabajan junto a mi.

Feliz cumpleaños CracksLatinoS! y vamos por otros 10 años mas!.

Web del grupo: http://groups.google.com/group/CrackSLatinoS

martes, 3 de agosto de 2010

HP OpenView NNM OvJavaLocale Buffer Overflow Vulnerability

Hola!,

este post es para dejarles el advisory de un bug que encontre (fixeado de manera silenciosa) por la gente de HP.

Link al avisory: HP OpenView NNM OvJavaLocale Buffer Overflow Vulnerability

Saludos.

jueves, 22 de julio de 2010

QuickPost - FUU - Blog and Twitter

Hola!,

este post es solo para dejarles saber que he creado un blog y un twitter exclusivos para las novedades que vayan saliendo sobre FUU.

Blog: http://fuuproject.wordpress.com
Twitter: http://twitter.com/fuuproject

Disfruten!

viernes, 16 de julio de 2010

New FUU Plugin - deExeFog!

Hola!,
quienes me conocen, saben que continuamente estoy intentando hacer algo, escribiendo algun tutorial, programando alguna toolcita, etc; ahora, quiero hacer una cosa: por cada nuevo plugin de FUU que haga voy a escribir un post comentando un poco los trucos que utiliza el packer para poder facilmente identificar las zonas importantes a la hora de desempacar.
En este primer post, vamos a hablar de un packer sencillo, exeFog, mas particularmente, nos centraremos en exeFog v1.x, desconozco si existe alguna version 2.x, si alguno tiene un exe, dll, ocx o lo que sea packeado con alguna otra version de exeFog, no tiene mas que enviarla para que la pueda estudiarla y agregarle soporte al correspondiente plugin.

La idea de este y los siguientes post no es la de realizar un analisis detallado sobre el packer como suelo realizar en los tutoriales, sino que veremos las partes importantes nada mas como para vencerlo y que son utilizadas luego en el plugin.

Voy a basarme en este crackme: http://www.tuts4you.com/request.php?1093

Por ejemplo, si cargamos el programa packeado en Olly (sin plugins) y le damos a F9 (Run), veremos que Olly se detiene en una exception, mas especificamente, un DIVISION_BY_ZERO:


Esto se debe a un viejo y conocido truco anti-debug conocido como IsDebuggerPresent pero en este caso, el truco no invocando explicitamente a la API IsDebuggerPresent, sino realizando un inline de esta funcion.

Si comenzamos a tracear, veremos que primeramente, llegamos a un loop en el cual se desexorea codigo, este codigo no es mas que otra parte del stub de desempacado del programa:


Como vemos, primero coloca en EBX un puntero a una zona un poco mas abajo de la instruccion "loopd", coloca en ECX un offset, en este caso "0x3c8" y en AL la key para xorear, en este caso "0x8c", luego, solo va indexando en EBX+ECX y xoreando cada byte, luego, vuelve a tomar otro byte en AL y a repetir la operacion.

Una vez que pasamos esto, si llegamos a la zona del inline IsDebuggerPresent:


Como pueden observar, solo esta accediendo al flag "BeingDebugged" que se encuentra en la PEB:
typedef struct _PEB {
BYTE Reserved1[2];
BYTE BeingDebugged;
BYTE Reserved2[1];
PVOID Reserved3[2];
PPEB_LDR_DATA Ldr;
PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
BYTE Reserved4[104];
PVOID Reserved5[52];
PPS_POST_PROCESS_INIT_ROUTINE PostProcessInitRoutine;
BYTE Reserved6[128];
PVOID Reserved7[1];
ULONG SessionId;
} PEB, *PPEB;
Se encuentra en el campo [2] de la PEB del proceso (movzx eax, byte ptr ds:[eax+2]).

Como vemos, a ese byte, primero le aplica un NOT y luego un AND con 1, con lo cual, si ese byte esta en 1 (quiere decir que el proceso esta siendo debuggeado), el resultado de esas dos operaciones sera 0 y si el byte esta en 0 (quiere decir que el proceso no esta siendo debuggeado) pues el resultado de esas dos operaciones dara 1.

Cual es el truco en todo esto? pues que este valor es utilizado como divisor y dividendo en una division un poco mas adelante:


Como vimos, el resultado del NOT y AND lo colocaba en EBX pero a su vez quedaba en EAX tambien, con lo cual si el resultado del NOT y AND es 0 pues sera 0 / 0 = ERROR!!!.

Para solucionar esto, simplemente debemos de setear ese byte a 0 para que el resultado del NOT y AND sea 1. Podemos hacerlo de varias maneras, la mas rapida es: cuando estemos en el EP (EntryPoint) del packer, simplemente hacemos CTRL+G y ponemos "EBX" y cambiamos el valor del segundo byte a 0. Por que asi? pues porque EBX siempre apunta a la PEB cuando estamos parados en el EP:


Luego, tenemos dos partes importantes mas:

1) Donde resuelve los imports.
2) Donde salta al OEP (Original Entry Point)

Ambas zonas son facil de encontrar, miremos un poco el codigo y vamos a ver que aqui resuelve las dlls importadas por el programa:


Si miramos los registros en este momento, podremos ver que EBX contiene un puntero al string de la dll importada:


Luego, en esta zona, veremos que resuelve las funciones importadas por cada dll:


y si miramos los registros, veremos que EAX contiene el puntero al string de la funcion importada y EDI el puntero al lugar en la IAT donde esa funcion deberia de encontrarse en el programa original:


Ah, antes de continuar, queria comentarles que ademas, exeFog, realiza comprobaciones en los primeros bytes de las APIs a las cuales va a llamar para ver si hay un breakpoint colocado ahi:


Ahi pueden ver un ejemplo de como, luego de resolver la funcion y colocar el puntero en EAX, verifica que el primer byte de esa funcion no contenga un breakpoint (0xCC). Con colocar hardware breakpoints o colocar los breakpoints por software en la segunda instruccion de la API (o en el RET) bastara para bypassear la comprobacion.

Bien, finalmente, el lugar en el cual se salta al OEP es este:


Llegado al "ADD", ESP contiene el offset al EP y EBP la ImageBase del programa, con lo cual, al sumarlo dara como resultado el OEP y al tomar el RET quedaremos parados ahi:



Para realizar el plugin, los pasos que realice fueron los siguientes:

1) Buscar el patron del loop que desexorea el codigo.
2) Pasar el loop anterior y realizar una busqueda de los patrones de codigo que resuelven la IAT, nos dan el salto al OEP y realizan la verificacion de BeingDebugged. Esto lo hago seteando callbacks para cada una de las tareas.
3) Cuando salta el callback en el truco anti-dbg lo unico que hago es colocar EAX en 1 luego el AND y antes del MOV EBX, EAX, con eso me aseguro de que EAX siempre es 1.
2) Cuando salta el callback de LoadLibraryA solo tomo el valor de EAX y lo voy agregando a la IAT.
4) Cuando salta el callback de GetProcAddress simplemente tomo los valores de EAX y EDI y los agrego en la IAT.

La el plugin (dll) lo pueden conseguir aca: http://tinyurl.com/2arrnct

El source code del plugin lo pueden conseguir aca: http://tinyurl.com/2wz5bty

Hasta el proximo post!.

miércoles, 7 de julio de 2010

FUU v0.1.1 Beta - Minor Release


Hola!,

bueno, luego de un tiempo sin actualizaciones al final sacamos una nueva version de FUU. Esta nueva version es mas que nada un minor release para corregir un par de cosas que habian quedado muy feas en la primera version.

Alguna de las cosas que se corrigieron son la funcion de "Refresh" en la GUI y un par de errores logicos en el codigo, tanto de la GUI como de los plugins. Ademas, se agrego la posibilidad de poder guardar el dumpeado resultante del proceso de unpacking en el lugar que uno elija.

Tengo que agradecer a toda la gente que se acerco a darme una mano con el proyecto, como GUAN, Eddy, Marciano, Mario Vilas y Erisoft. Todos ellos estuvieron ayudandome tanto para testear la herramienta y reportar bugs, como para colaborar con codigo e ideas para futuras versiones como con samples para poder realizar pruebas "particulares".

Un amigo, GUAN de Dio, se ha sumado al proyecto como colaborador migrando la version de 32 bits a 64 bits. Lamentablemente, en este release no pudimos incluirla porque estamos teniendo problemas con el SDK TitanEngine y su soporte para 64 bits con MASM y VS (Visual Studio), pero esperamos prontamente poder solucionar esto y lanzar finalmente una version de 64 bits.

Quisiera ademas aprovechar un poco para aclarar algunas cosas. He visto por al red algunos comentarios de algunas personas diciendo cosas del estilo: "Para que usar FUU si PEiD con plugins va mejor". Bueno, primero que nada quisiera aclarar que la idea principal de FUU es la de un proyecto OpenSource donde todo el mundo pueda colaborar. PEiD en cambio es un proyecto No-OpenSource. Ademas, agregar que la palabra "Universal" en FUU no significa un unpacker generico sino que con esa palabra intentamos describir lo que en un futuro FUU puede llegar a ser: al ser un proyecto OpenSource en el cual todo el mundo interesado puede colaborar con sus plugins y unpackers, entonces, podriamos desarrollar un unpacker para cada proteccion conocida hasta el momento, eso es lo que quiero decir cuando digo que FUU es "Universal Unpacker".

En fin, cualquier sugerencia, reporte de bugs, aporte para el proyecto es bienvenido y solo tienen que sumarse a nuestra lista de correo o enviarme un mail (en el caso de respoderle a una persona en particular de manera privada hace que el proyecto deje de tener sentido, la idea es que todos discutamos en la lista las ideas y aportes para FUU).

Nuevamente, agradecer a todos aquellos que colaboraron con el proyecto!!!.

Las ideas aportadas fueron muy buenas y sin dudas las vamos a ir agregando de a poco en los posteriores releases.

Ah, antes de que me olvide, prometo actualizar de manera algo mas periodica que hasta ahora la seccion de plugins, subiendo nuevos sources de nuevos plugins (siempre y cuando el tiempo me lo permita).

Web del proyecto: FUU

FUU v0.1.1 Beta Download link: FUUv0.1.1b

Disfruten!.

Hasta el proximo release!.

lunes, 14 de junio de 2010

XnView MBM Processing Heap Overflow

Hola!,

queria solo dejarles un advisory en el cual participe haciendo el analisis tecnico de la vulnerabilidad.

El que descubrio el bug no he sido yo sino un amigo, Mauro Olea, y entre los dos hemos escrito el advisory de dicho bug.

Link al advisory: XnView MBM Processing Heap Overflow

Saludos.

domingo, 30 de mayo de 2010

Tutorial - Arbitrary Memory Overwrite en Drivers en Kernel

Hola!,

hace un tiempo en la lista de CLS se armo una discusion sobre si se podia o no allocar en la NULL Page (0x00000000) desde usermode asi que decidi hacer un pequeño tutorial sobre como explotar Arbitrary Memory Overwrites en Drivers en Kernel y como utlizar esta tecnica de allocar en la NULL Page.

Espero que les guste!.

Aqui les dejo el tutorial: Explotando Arbitrary Memory Overwrite en Drivers en Windows

Saludos.

sábado, 15 de mayo de 2010

Quick Post - Tutorial por marciano - Hackeando juegos de NES con emulador

Hola!,

solo queria dejarles un tutorial que escribio mi amigo marciano sobre como modificar juegos para NES.

Me parecio que vale la pena difundirlo porque es interesante y ademas no he visto este tipo de tutoriales en español (aunque posiblemente existan).

En fin, les dejo el link:

Hackeando juegos de NES con emulador por marciano

Hasta la proxima!

viernes, 14 de mayo de 2010

Tutorial - Unpacking en 64 Bits PARTE I

Hola!,

aca les dejo un nuevo tutorial. Va a formar parte de una serie de tutoriales dedicados al unpacking en 64 bits.

Unpacking en 64 bits PARTE I

Espero que les guste!.

Hasta la proxima!.

miércoles, 12 de mayo de 2010

Adobe Director Memory Corruption Vulnerability


Hola!,

Solo queria dejarles el link al advisory de un bug que descubri un par de meses atras y del cual ayer salio el advisory.

Adobe Director Memory Corruption Vulnerability


UPDATE 12/08/2010: Se realizo un update del advisory con informacion tecnica adicional. El analisis lo hizo un amigo, marciano, asi que gracias a el por la ayuda!.

---------------------------------------------------------------------------------
Adobe Director DIRAPI.DLL Invalid Read Vulnerability
1. Advisory Information

Title: Adobe Director DIRAPI.DLL Invalid Read Vulnerability
Advisory Id: CORE-2010-0405
Advisory URL: http://www.coresecurity.com/content/adobe-director-memory-corruption
Date published: 2010-05-11
Date of last update: 2010-05-11
Vendors contacted: Adobe
Release mode: Coordinated release
2. Vulnerability Information

Class: Input validation error [CWE-20]
Impact: Denial of service
Remotely Exploitable: Yes (client-side)
Locally Exploitable: No
CVE Name: CVE-2010-0128
Bugtraq ID: N/A
3. Vulnerability Description

Adobe Director is prone to a vulnerability due to an invalid read in DIRAPI.DLL, when opening a malformed .dir file. This vulnerability could be used by a remote attacker to execute arbitrary code, by enticing the user of Adobe Director to open a specially crafted file.
4. Vulnerable packages

* Adobe Director 11.5
* Adobe Director 11 (Version: 11.0.0.426)

5. Non-vulnerable packages

* Adobe Director 11.5 (Version: 11.5.7.609)

6. Solutions and Workarounds
See the Adobe Security Bulletin [1] available at http://www.adobe.com/go/apsb10-12/.
7. Credits

This vulnerability was discovered and researched by Nahuel Riva, from Core Security Technologies. Publication was coordinated by Jorge Lucangeli Obes.
8. Technical Description

The vulnerability occurs at offset 0x68174813 of the dirapi.dll module of Adobe Director. Improper validation of input data leads to a crash in the memory read instruction. This vulnerability could result in arbitrary code execution, although it was not verified.

Version: 11.0.0.426
Module crash: Dirapi.dll Version: 11.0.0.426

Crash:
68174813 |. 8906 |MOV DWORD PTR DS:[ESI],EAX
68174815 |> 8B4C24 14 |MOV ECX,DWORD PTR SS:[ESP+14]
68174819 |. 51 |PUSH ECX
6817481A |. E8 3197F5FF |CALL
6817481F |. 8946 04 |MOV DWORD PTR DS:[ESI+4],EAX
68174822 |. 83C6 08 |ADD ESI,8
68174825 |. 4D |DEC EBP
68174826 |.^ 75 C8 \JNZ SHORT DIRAPI.681747F0

EAX=00000000
DS:[02889B20]=???

Registers:
EAX 00000000
ECX 00000068
EDX 00000001
EBX FFE4B4D4
ESP 0012DFB8
EBP 0000373D
ESI 02889B20
EDI 01BC9964
EIP 68174813 DIRAPI.68174813
C 0 ES 0023 32bit 0(FFFFFFFF)
P 1 CS 001B 32bit 0(FFFFFFFF)
A 0 SS 0023 32bit 0(FFFFFFFF)
Z 1 DS 0023 32bit 0(FFFFFFFF)
S 0 FS 003B 32bit 7FFDD000(FFF)
T 0 GS 0000 NULL
D 0
O 0 LastErr ERROR_NEGATIVE_SEEK (00000083)
EFL 00250246 (NO,NB,E,BE,NS,PE,GE,LE)
ST0 empty -??? FFFF 00000000 00000000
ST1 empty -??? FFFF 00000000 00000000
ST2 empty -??? FFFF 00000000 00000000
ST3 empty -??? FFFF 00000000 00000000
ST4 empty 0.0000106994366433355
ST5 empty 0.6322773098945617676
ST6 empty -0.0034003453329205513
ST7 empty 1041416.9375000000000
3 2 1 0 E S P U O Z D I
FST 4220 Cond 1 0 1 0 Err 0 0 1 0 0 0 0 0 (EQ)
FCW 007F Prec NEAR,24 Mask 1 1 1 1 1 1

Stack Trace:
Call stack of main thread
Address Stack Procedure / arguments Called from Frame
0012DFC4 68175563 DIRAPI.681747A0 DIRAPI.6817555E
0012DFE4 6817003B DIRAPI.68175290 DIRAPI.68170036
0012E018 6817020D DIRAPI.6816FF40 DIRAPI.68170208
0012E01C 00A923C8 Arg1 = 00A923C8
0012E020 00000011 Arg2 = 00000011
0012E024 00000003 Arg3 = 00000003
0012E028 0012E050 Arg4 = 0012E050
0012E02C 00001100 Arg5 = 00001100
0012E048 680F6D50 DIRAPI.681701A0 DIRAPI.680F6D4B
0012E04C 00000000 Arg1 = 00000000
0012E050 00000003 Arg2 = 00000003
0012E054 00000091 Arg3 = 00000091
0012E058 0012E07C Arg4 = 0012E07C
0012E05C 00001100 Arg5 = 00001100
0012E068 6800CFC0 DIRAPI.680F6D30 DIRAPI.6800CFBB
0012E088 680817EC DIRAPI.6800CF80 DIRAPI.680817E7
0012E0B4 680823E3 DIRAPI.68081760 DIRAPI.680823DE
0012E0C8 680836A7 DIRAPI.68082380 DIRAPI.680836A2
0012E638 680839E2 DIRAPI.68082EA0 DIRAPI.680839DD 0012E634
0012E63C 00A86E8C Arg1 = 00A86E8C
0012E640 0012F5EC Arg2 = 0012F5EC
0012E644 00000000 Arg3 = 00000000
0012E648 00000000 Arg4 = 00000000
0012E64C 0000001A Arg5 = 0000001A
0012E674 68042D8C DIRAPI.68083970 DIRAPI.68042D87 0012F5EC
0012E678 00A86E8C Arg1 = 00A86E8C
0012E67C 0012F5EC Arg2 = 0012F5EC
0012E680 00000000 Arg3 = 00000000
0012E684 00000000 Arg4 = 00000000
0012E688 0000001A Arg5 = 0000001A
0012E6B0 6800A111 DIRAPI.68042C90 DIRAPI.#88+7C
0012E6B4 00A92588 Arg1 = 00A92588
0012E6B8 0012F5EC Arg2 = 0012F5EC
0012E6BC 00000000 Arg3 = 00000000
0012E6C0 0000001A Arg4 = 0000001A
0012E6DC 2018BB23 Director.2018BB1E
0012E83C 2027E776 ? Director.2018BAB0 Director.2027E771

9. Report Timeline

* 2010-04-14: Vendor contacted.
* 2010-04-14: Vendor requests PoC file.
* 2010-04-14: Core replies with the PoC file and the draft advisory.
* 2010-04-14: Adobe replies that will investigate the issue and sets a preliminary release date for June/July.
* 2010-04-15: Core agrees with the preliminary release date.
* 2010-04-28: Core requests an update on the situation, and asks whether Adobe was able to confirm if the bug is exploitable.
* 2010-04-28: Adobe replies that the issue was investigated and is scheduled to be fixed in the next release of Adobe Shockwave Player, planned for May; they did not carry out further exploitability research.
* 2010-04-28: Core requests a specific publication date for the fix.
* 2010-05-06: Adobe informs Core that the release date for the fix has been set to May 11th.
* 2010-05-07: Core asks Adobe if they want to provide the text for the "Solutions and Workarounds" section of the advisory.
* 2010-05-07: Adobe replies with the text for the "Solutions and Workarounds" section of the advisory.
* 2010-05-11: Advisory published.

10. References

[1] Adobe Security Bulletin http://www.adobe.com/go/apsb10-12/.
11. About CoreLabs

CoreLabs, the research center of Core Security Technologies, is charged with anticipating the future needs and requirements for information security technologies. We conduct our research in several important areas of computer security including system vulnerabilities, cyber attack planning and simulation, source code auditing, and cryptography. Our results include problem formalization, identification of vulnerabilities, novel solutions and prototypes for new technologies. CoreLabs regularly publishes security advisories, technical papers, project information and shared software tools for public use at: http://www.coresecurity.com/corelabs.
12. About Core Security Technologies

Core Security Technologies develops strategic solutions that help security-conscious organizations worldwide develop and maintain a proactive process for securing their networks. The company's flagship product, CORE IMPACT, is the most comprehensive product for performing enterprise security assurance testing. CORE IMPACT evaluates network, endpoint and end-user vulnerabilities and identifies what resources are exposed. It enables organizations to determine if current security investments are detecting and preventing attacks. Core Security Technologies augments its leading technology solution with world-class security consulting services, including penetration testing and software security auditing. Based in Boston, MA and Buenos Aires, Argentina, Core Security Technologies can be reached at 617-399-6980 or on the Web at http://www.coresecurity.com.
13. Disclaimer

The contents of this advisory are copyright (c) 2010 Core Security Technologies and (c) 2010 CoreLabs, and may be distributed freely provided that no fee is charged for this distribution and proper credit is given.
14. PGP/GPG Keys

This advisory has been signed with the GPG key of Core Security Technologies advisories team, which is available for download at http://www.coresecurity.com/files/attachments/core_security_advisories.asc.

---------------------------------------------------------------------------------

Chau!

martes, 27 de abril de 2010

Tool - FUU - [F]aster [U]niversal [U]npacker


Hola a todos!,

Si, si, no estoy muerto! sigo aca!. Durante este tiempo estuve haciendo algunas cositas, entre ellas, una nueva tool, llamada FUU, Faster Universal Unpacker.

Primero que nada quiero comentarles que esta tool nacio por la curiosidad de saber de que se trataba TitanEngine. TitanEngine es un SDK desarrollado por la gente de ReversingLabs. Se trata de una libreria llena de funciones listas para ser usadas y que tienen como finalidad la creacion de tooles del estilo de unpackers, decrypters, decompressors, etc. TitanEngine fue presentado en BlackHat en 2009 y fue ahi donde lo conoci.

Ahora bien ... que es FUU? FUU es basicamente una GUI mediante la cual se puede acceder a diferentes tipos de tools. La mision principal de FUU es la de darnos una manera facil de poder desempacar programas empacados, comprimidos o encryptados con los packers/compressors y crypters mas conocidos como UPX, ASPack, etc; Ademas, cuenta con algunos plugins extras como "Generic OEP Finder", "Crypto Signatures Detector" y "Generic Unpacker"; estos plugins fueron diseñados por la misma gente que hizo PEiD.

La tool esta creada (tanto la GUI como los plugins) estan hechos en ASM. Particularmente, la GUI, esta armada con RadASM.

Por que "Universal"?. El termino, en este caso, no esta usado de la manera que uno puede llegar a pensar, es decir, en un algoritmo que engloba la comportamiento general en varios packers y permite con una sola funcion, desempacar varios clases de packers/crypters/compressors; sino que cuando le puse "Universal" pense en que podriamos agregar cuantos plugins quisieramos para poder analizar y desempacar tantos packers como queramos, hasta llegar al punto que abarquemos todos (o al menos la gran mayoria) los existentes.

En este primer release pueden encontrar, entre muchos bugs, 4 plugins para desempacar UPX, ASPack, BeRoExePacker y FSG y ademas, los plugins mencionados anteriormente. En proximas versiones se continuaran agregando plugins para diferentes packers/crypters/compressors y alguna que otra tool extra, ademas de fixear bugs :)

El proyecto esta hosteado en googlecode:

http://code.google.com/p/fuu/

Si quieren, pueden mirar el source code aqui: http://code.google.com/p/fuu/source/browse/

Ademas, he creado un grupo en Google Groups por si alguien quiere sumarse para discutir algun tema particular, reportar bugs, pedir algun feature o algun plugin especial. El grupo lo pueden encontrar aqui: http://groups.google.com/group/faster-universal-unpacker

La GUI esta distribuida bajo licencia GPL y cada plugin (menos los extra) estan distribuidos bajo LGPL.

La primer release la puede bajar directamente desde aqui:

http://fuu.googlecode.com/files/FUU%20v0.1%20Beta.rar


En breve publicare un tutorial explicando como fue que cree esta tool y ademas como se crea un plugin con TitanEngine.

Espero que les guste y les sea util. Comentarios, sugerencias y bugs son bienvenidos siempre!.

Antes de finalizar, quisiera agradecer a Guan De Dio y marciano por aguantarme y responder todas las preguntas que siempre estoy haciendoles, por ayudarme con los problemas que suelo encontrarme y que no se como afrontar y a InDuLgEo por diseñar el main logo de la tool :P Gracias a los tres!.

Un abrazo!

Hasta la proxima!.

martes, 23 de marzo de 2010

Tutorial - Keygenning ZtreeWin

Hola!,

Queria contarles que aqui pueden encontrar un nuevo tutorial con un analisis sobre el algoritmo utilizado en ZtreeWin para generar el serial, con kgn incluido :P.

Espero que les guste!.

Hasta la proxima!.

lunes, 15 de marzo de 2010

Tutorial - Cracking en Java

Hola!, aquí les dejo un pequeño tutorial sobre un interesante crackme en Java.

Trata sobre la serializacion y deserializacion de objetos, muy original la idea.

Espero que les guste.

Saludos.

jueves, 11 de febrero de 2010

ActionScript & JIT Spray

Hola!,

La semana pasada se ha presentado en BlackHat DC 2010 una nueva técnica llamada JIT Spray (es como el HeapSpray pero utilizando código ActionScript) que permite bypassear DEP (Data Execution Prevention) y ASLR (Address Space Layout Randomization); esto permitiria explotar bugs en IE8 sobre Windows 7 dado que hasta ahora las técnicas conocidas habían quedado obsoletas.

El paper de Dionysus Blazakis se puede encontrar aquí.

Además, pueden visitar http://reversinglabs.wordpress.com/ para leer un post muy interesante sobre como debuggear este código JITeado.

Slds!.