SapeAOB, Andai’ puro sapeando mi código oe!

Finalmente era hora, era hora de retomar la práctica con C++ porque, why not? Rust para mi sigue siendo el lenguaje que más prefiero, pero C++ está dentro de las categorías de los lenguajes que también disfruto. Pero para volver a tomarlo en serio, era necesario crear un proyecto nuevo, y así surgió sapeAOB, (una mezcla entre sapeao’ y AOB - Array of Bytes), una microlibrería que permite encontrar patrones de bytes escrita en C++17.
Read more →

memory-rs: going internal & Yakuza Like A Dragon Photo Mode

Habiendo comenzado a experimentar con hacking interno a través de inyección de DLLs, y mientras esperaba la salida del juego Yakuza: Like A Dragon, aproveché de comenzar a preparar mi librería memory-rs para por fin comenzar a utilizar hacking interno, que por lo general conllevaba más trabajo preparar el boilerplate pero al final traía muchos más beneficios. Evolución de memory-rs A partir del 27 de octubre, comencé a trabajar casi todos los días en esta librería, porque cada vez me fascinaba más las posibles técnicas que se pueden utilizar al estar dentro del mismo espacio de memoria que el proceso objetivo, por lo que era necesario construir un toolkit para evitar ser redundante en futuras ocasiones.
Read more →

Quién necesita Matplotlib si tenemos el Administrador de Tareas

El fin justifica los medios (?) Obviamente mi objetivo no era simplemente dibujar senos en el Administrador de Tareas aunque fue entretenido, si no que este fue el medio para concretar mi fin: Aprender sobre hacking interno inyectando DLLs Hacking interno: Sharing the space Como comenté en un blog previo, el hacking externo es entre comillas “fácil de concretar”, ya que requiere mucho menos boilerplate, y la WinAPI provee las funciones necesarias para leer y modificar la memoria de un proceso externo sin mayor problemas, así que para cosas rápidas a veces es más fácil ir por este camino, pero lo que yo no sabía eran todas las ventajas que se tenían al hacer las cosas de forma interna.
Read more →

Creando mi propio Photo Mode para Yakuza Kiwami 2

Resultados Para captar tu atención, acá están los resultados de un Photo Mode implementado en Rust. Now the Freecam for K2 automatically removes the UI for a proper "photo mode". It even removes the health of the enemies in heat actions! (Hide UI doesn't remove that). As always, you can get the latest release @ https://t.co/mLpG5p53ds pic.twitter.com/Fp1kJBnAt7 — etra (@etra0) May 23, 2020 Habiendo terminado el Yakuza 0 (what a great game) y el Yakuza Kiwami (not so great tbh), naturalmente, el siguiente juego era Yakuza Kiwami 2.
Read more →

Game Hacking: the beginning. El hermoso mundo del Reverse Engineering

Prólogo Casi Hacker Al momento de hablar de hacking, casi todo el mundo se imagina el clásico hacking ético, intentando vulnerar redes, sus MITM, típico que salta Kali Linux, claves de facebook, etc… Esa es la primera imagen que se le viene a la gente, un hacking, que en verdad, a mi poco y nada me interesaba. Y esto se puede evidenciar aún más, al momento de hacer ese tipo de búsquedas en algún motor como google, abunda el contenido donde se enseña a usar este tipo de técnicas y herramientas, lo que hizo que me tardase en por fin encontrar lo que siempre estuve buscando.
Read more →

Crowdsourcing y Opensource: Ayudando a la comunidad sansana

Dentro de mi universidad, existe un sistema de gestión académica llamado SIGA, el cual posee una interfaz bastante… obsoleta por así decirlo, si bien hace la pega, hay muchas cosas que se podrían hacer mejor. Una de ellas, es el avance académico, ya que al solicitarlo, se entrega una lista con los ramos aprobados y sus notas, pero no hay manera rápida de visualizar el avance. Dado que uno como alumno, siempre quiere saber en qué posición de la carrera se encuentra, y dándome cuenta que año tras año pensaba qué ramos puedo tomar para progresar mejor (porque, por lo menos para mí, la malla es solo una referencia) con el fin de no sufrir en el intento, decidí crear una Malla Interactiva que me facilite este trabajo.
Read more →

Datacampfire Datathon

Datacampfire hace poco hizo una Hackathon para crear visualizaciones sobre los gastos fiscales, otorgando los datos de éstos (ergo, Datathon). Junto a unos amigos, decidimos participar en ésta, ocupando nuestra pequeña disponibilidad de tiempo para construir una plataforma con el fin de utilizar herramientas nuevas tales como Altair + vega-lite. El equipo se llamaba DMCTeam, y estaba compuesto por dos Data Scientist y yo, un informático. Fue un entretenido trabajo, pero todos quedamos con ganas de haberle dedicado muchísimo más tiempo.
Read more →

Real programmers use VIM

Hace aproximadamente dos años atrás, era un usuario frecuente de Sublime Text, me encantaba el tema Monokai, y aún más la velocidad con que abría archivos. Era bonito, eficiente, minimal, satisfacía todas mis necesidades como newbie en el mundo de la programación, pero todo cambió cuando conocí VIM. Backstory Debo confesar que primero partí con EMACS, y como todo hackerman, me creía bacán por abrir un editor desde la terminal, porque, mientras más avanzaba en mi carrera, más frecuentemente pasaba en esta (¡aguanten los sistemas *NIX!
Read more →

Generando datos con figuras

Dada la famosa festividad del 14 de febrero, curiosamente busqué por internet como crear datasets con formas predefinidas. Como la búsqueda no fue exitosa, decidí implementarla para crear un lindo scatter plot con forma de corazón. Implementación import numpy as np import matplotlib.pyplot as plt from scipy.misc import imread from sklearn.metrics import r2_score numpy & matplotlib fueron las herramientas fundamentales, y la gracia de imread es que te permite cargar una imagen como un numpy.
Read more →

Los hábitos de programación de un estudiante cualquiera

Habiendo finalizado el semestre (bueno, casi (el 29 termina (oh god~))), se me ocurrió hacer una mini exploración a los datos almacenados en mi usuario de GitHub. La principal pregunta que surgió es ¿En qué momento soy más productivo? Preámbulo La API de GitHub es bastante amigable, debido a esto, no hubo dificultad alguna en la obtención de los datos. La forma en que se trabajó la data está documentada en el repositorio; para trabajar se ocupó jupyter notebook.
Read more →