Cómo extraer el código fuente del software
Pregunta 2: Cómo obtener el código fuente del software. Para este problema, si solo tienes EXE, es imposible obtener el código fuente.
A menos que quieras que el desarrollador te lo proporcione.
Pregunta 3: ¿Cómo extraer el código fuente de una hoja de Excel? Por ejemplo, si el nombre de la hoja de trabajo es hoja1, haga clic derecho en la etiqueta de la hoja1 y simplemente vea el código
Pregunta 4: Cómo obtener el código fuente del software Hola.
El código fuente del software generalmente lo publica la propia empresa de software después de un período de tiempo después del lanzamiento del producto.
Por supuesto. Es posible utilizar la descompilación. Pero cuando se trata de desarrollar software nuevo desde cero, ya es bastante complicado descifrar. No vale la pena.
Pregunta 5: Buscando una herramienta de extracción de código fuente de un sitio web con 20 puntos. Este tipo de software no se puede utilizar
Porque para obtener el código fuente de todo el sitio web, es necesario obtenerlo. permiso de espacio
Para obtener la descarga del sitio web completo
De lo contrario, se obtendrá la plantilla del sitio web
Pregunta 6: Cómo utilizar apktool para extraer la fuente Además de jdk, las herramientas preparadas también incluyen las siguientes (disponibles en el sitio web oficial de Google):
apktool-install-windows-2.1_r01-1.zip, dex2jar-0.0.7-SNAPSHOT. zip Descomprímalo en el directorio raíz del disco (aquí elegí la unidad H) y descomprímalo en AXMLPrinter2.jar, apktool.jar, dex2.0.0-SNAPSHOT.zip al mismo tiempo. jar y dex2.0.7-SNAPSHOT.zip al directorio raíz del disco (aquí elegí la unidad H) y al mismo tiempo descomprimir AXMLPrinter2.jar y dex2.0.7-SNAPSHOT.zip al directorio raíz del disco ( aquí elegí el disco H). Jar y el software apk que desea descomprimir también se colocan en el mismo directorio, luego use "run-cmd" para abrir la consola, ingrese cd /d h: / para ingresar al directorio raíz de la unidad H y luego ingrese lo siguiente contenido (no cierre la consola por conveniencia (detrás):
Entre ellos, apktool.jar es la herramienta de descompresión, dex2.0.7-SNAPSHOT.zip es la herramienta de descompresión y apktool.jar es la herramienta de descompresión. software. jar es la herramienta de descomprimir, d significa descomprimir, memo.apk es el software que quiero descomprimir, memo significa enviar a esta carpeta después de descomprimir, espere un momento, se generará la carpeta de notas y habrá un archivo res después de abrir Todos los archivos y AndroidManifest.xml de la carpeta se pueden ver con el Bloc de notas.
Lo anterior es para obtener el archivo .xml y la imagen, lo siguiente es para obtener el código fuente .java:
Use WinRar o una buena presión para abrir memo.apk, la captura de pantalla es el siguiente:
Extraiga el archivo clases.dex dentro del directorio raíz de la unidad H, luego vuelva a abrir la consola e ingrese dex2jar.bat clases.dex
Obtendrá un archivo llamado clases.dex.dex2jar.jar En este momento, use jd-gui.exe para abrir clases.dex.dex2jar.jar y podrá ver todos los códigos fuente.
Si desea volver a cambiar el archivo descompilado a un archivo apk, simplemente ingrese apktool.jar b memo en la consola
donde b significa que memo es la carpeta que acaba de empaquetar. extraído. ¡La premisa es garantizar que todos los archivos estén en la carpeta de notas!
Pregunta 7: ¿Es posible crackear el software para obtener su código fuente completo? ¿Estás hablando de descompilación? Ningún software puede descompilarlo. Sólo puedes usar humanos para descompilarlo, pero eso es problemático.
Pregunta 8: ¿Puedes obtener el código fuente del archivo .apk? Tú creaste la aplicación, ¿por qué no conoces el código fuente?
Sin ofuscación, es posible descompilar el programa y obtener el código fuente.
Si hay confusión, será más problemático
Pregunta 9: ¿Por qué no puedo obtener el código fuente del software? El código fuente del software compilado es casi imposible de obtener, así que puedo explicarles por qué es teóricamente imposible:
El código fuente debe compilarse y luego convertirse en una serie de 0 y 1, y luego se empaqueta en lo que llamamos un archivo ejecutable, que es el software que utiliza habitualmente.
Ok, desea rastrear el código fuente a través del archivo ejecutable (es decir, una serie de 0 y 1), lo cual es casi imposible porque el código fuente del lenguaje de alto nivel no es el mismo. como los 0 y 1 generados finales No hay correspondencia uno a uno. Los lenguajes de alto nivel deben convertirse primero en lenguaje ensamblador y luego el lenguaje ensamblador en 0 y 1. El lenguaje ensamblador tiene una correspondencia uno a uno con 0 y 1, pero el lenguaje de alto nivel y el lenguaje ensamblador no la tienen.
Incluso los mismos pocos códigos de alto nivel pueden ser códigos ensambladores completamente diferentes en diferentes compiladores. La misma lógica, incluso si sólo unas pocas palabras clave son diferentes, o las variables son diferentes, producirá códigos ensambladores diferentes.
Por lo tanto, la ingeniería inversa de un lenguaje de alto nivel a través de archivos ejecutables binarios 0, 1 es teóricamente factible, pero en la práctica no es factible porque la carga de trabajo es demasiado grande. Al igual que en el software a gran escala, unos pocos gigabytes equivalen a millones de líneas de 0 y 1. Incluso si los programadores de todo el mundo trabajan juntos para revertir el código fuente, no saben cuántos años llevará revertirlo por completo. el código fuente.
Entonces, ¿a qué solemos llamar ingeniería inversa?
Bueno, de hecho, el software se puede revertir, pero no el código fuente real, sino el código ensamblador del software. Sin embargo, cabe señalar que el código ensamblador no puede ser el código fuente de este software hasta cierto punto, porque la cantidad de código ensamblador es extremadamente grande y no es muy legible. Un código fuente ordinario en un lenguaje de alto nivel puede generar docenas. de códigos ensambladores. Entonces la cantidad de código ensamblador es enorme.
Al mismo tiempo, el código ensamblador casi no tiene estructura, es decir, incluso si obtiene el código ensamblador de un software, solo puede cambiar ligeramente alguna lógica clave, como la lógica de registro (por ejemplo). cracking) Espere, pero si desea cambiar la función del software mediante código ensamblador, es casi imposible. Por lo tanto, el código ensamblador no se puede utilizar para código abierto. Si se hace público, la gente no tendrá energía para leerlo.