r/programacion • u/anxiety7_7 • 2d ago
Quiero saber algo (Soy novato)
¿Se puede manipular el código de un software o aplicación?
3
u/MichCan13 2d ago
Si tienes el código fuente si
1
u/anxiety7_7 2d ago
¿Y conseguirlo es permitido? Al menos para crear versiones distintas
1
u/MichCan13 2d ago
Depende del software, existe mucho software en gihub donde puedes descargar el código completo o hacer forks de ese código.. Si es código privado... Va a ser más difícil (aunque hay algunas hereamientas, dependiendo de la aplicación) Más bien si puedes di que quieres hacer y te decimos más rápido si se puede o no o si hay software libre parecido
1
3
u/sorxx_80 2d ago
Si, por supuesto, piensa que cualquier archivo que haya en tu ordenador son datos que tu puedes leer y modificar.
Los juegos por ejemplo vienen compilados, lo que quiere decir que los archivos que tu tienes son 1 y 0, los cuales son ilegibles para nosotros.
Pero hay programas que permiten hacer ingeniería inversa y devolver ese código compilado al lenguaje en el que estuviese antes de una forma bastante buena, por lo que ahí ya puedes entender el código y modificarlo.
De hecho esto es lo que se hace para crackear los juegos y piratearlos, se investigan los ficheros y el codigo para bypassear las comprobaciones de seguridad y asi poder ejecutarlo en cualquier lado.
2
u/sorxx_80 2d ago
Aclarar que en aplicaciones que tienen conexiones online y servidores, tu puedes modificar lo que está de tu lado, pero luego el servidor va a hacer comprobaciones de absolutamente todo (si está bien hecho) y si ven actividad rara pues tienden a bloquearte.
1
4
u/South-Worldliness 2d ago
ES MUYYY TAEDEEE MUY TARDEEE NO HAY TRABJAO IAAA BURBUJA EXCPLOTAAAR EDPLOTARTR TOODOO
1
2
u/ratsely 2d ago
Depende, en codigo abierto puedes hacer los cambio que consideres oportuno. Si es comercial varia segun el lenguaje puede decompilarse: Java, Python... Si hablamos de videojuegos hay herramientas que permite acceder al codigo fuente parcial o completamente para Godot, Unity o Renpy.
En caso de que no sea posible, siempre puede usarse lenguaje ensamblador como se haria con los antiguos cracks en software. Pero sospecho que eso queda fuera del alcance de la pregunta.
2
u/Altruistic-View-7007 2d ago
La gran mayoria del codigo local se puede bypasear, el detalle es que, haciendo directamente con el codigo final es mas complicado por que no sabes las otras cosas que puedes hechar a perder y puede tomar tiempo.
Un tipo en youtube hizo un app sencilla con un un usuario y logeo ya embebido en el codigo. Obvio no estaba ni cifrada de salada pero fue mas tipo demostracion. La cosa es que, usando un editor hexadecimal mouestra como se puede inspeccionar el codigo, al ser la app muy muy chica (de apenas unos cuantos megas), inspeccionar el codigo fue bastante rapido.
La cosa es que, como el usuario no estaba ni cifrado ni salado y estaba embebido logro encontrar la pass y demostro que con un editor hexa se puede sacar data del binario final.
Puede ser un ejemplo tonto, pero sirve para demostrar que al final codigo local, con el sufuciente tiempo y herramientas puedes sacar bastante data para manipularlo y editarlo.
Otra cosa seria hacer tampering, por ejemplo, que en una parte de binario pida autorizacion, editando la data como te comente en el ejemplo anterior podrias saltarte ese paso, aun que eso tambien implica saber en que otras partes hace esa verificacion y como puedes afectar al sistema por habertelo saltado.
Ya de ultimas hay veriticaciones usando servidores externos. Para eso se podria hacer un middle man, pero ya hoy en dia tienen llaves de cifrado y otros mecanismos para que, si quieres suplantar la identidad del servidor original, se den cuenta y no proceda.
2
2
u/Revolutionary-Cup78 2d ago
Si, nada más hay que cuidar el aspecto legal de la licencia bajo la cual se distribuye un software que estás modificando.
O si lo dices desde la perspectiva de posible/imposible, en ese caso la respuesta es que incluso si no tienes el código puedes realizar ingeniería inversa directo a los binarios (mucho más demandante, pero ahora con la IA es menos infernal)
1
u/North-Floor149 1d ago
Eso depende, tienes acceso al codigo fuente? O quieres tomar un ejecutable que no sabes cómo funciona y descompilarlo y ver qué trae?
1
u/ChocolateDonut36 1d ago
si es un programa hecho en un lenguaje interpretado (python, javasceipt, Lua, etc.) y/o es de código abierto, modificarlo es relativamente simple.
si no tienes el código fuente, puedes modificarlo igualmente, pero tienes que trabajar directamente con el código ensamblador, más complicado, si, pero posible.
4
u/Marco_R63 2d ago
Depende del tipo de software.
Si es open source claro que sí. Puedes hacer tu propia versión sin problema.
También depende de donde corre la aplicación. En Android por ejemplo pueden haber aplicaciones no perfectamente aisladas y protegidas que permiten un Reverse engineering o leak de claves y tokens. Pero ya eso es sacar provecho de un descuido del desarrollador.