Pues muchos programas de trabajo con la Wii usan OpenSSL, que no es más que una librería de algoritmos y protocolos de criptografía. Lo que pasa es que lo suelen usar como librería, no como programa directamente.
Un editor hexadecimal y OpenSSL son suficientes para hacer casi todo lo referente a criptografía con WADs etc (aunque manualmente). Si tienes paciencia o sabes hacer un script sencillo, hasta puedes hacer las firmas trucha.
Para trabajar con formatos de Wii, realmente solo necesitas las siguientes funciones (primitivas):
- Encriptación/desencriptación AES-128-CBC
- Hash SHA-1 (y a veces MD5)
- Si quieres verificar firmas o hacerte certificados propios (no necesario para trucha), una lib que te haga expmod con bignums, o lo que es lo mismo, la primitiva de encriptación/desencriptación de RSA. Es decir, una lib que te permita hacer la operación
x^y mod z con números muy grandes (sí, eso es lo que es RSA - un exponente y un resto de división. ¿A que ya no parece tan complicado?)
Y si quieres trabajar con saves, lo de la curva elíptica, pero eso yo creo que de toda la scene de Wii realmente solo lo entiende segher
(y se hizo su propio código para ello...)
OpenSSL te hace todo esto. Yo para mis tools suelo usar Python, que con la librería Crypto también lo hace y es muy cómodo a la hora de programar.