Funcionamiento:
Código
python Joiner.py archivo_principal lugar_destino
El "archivo.txt" debe contener los nombres de los ejecutables.
Ejemplo:
Código:
gui.exe
cepillo.exe
juego.exe
Joiner.py:
Código:
import string
import os
import sys
archivo = sys.argv[1] # Metemos el archivo principal
extraccion = sys.argv[2] # Donde queremos que se guarde
archivos_leidos = [] # Va a contener todas las direcciones
f = open('archivos.txt', 'r') # Abrimos para lectura de archivos
i = 0 # Lo usamos para asignar dinamicamente strings a archivos_leidos
ruta = os.getcwd()
ruta = ruta.split('\\')
ruta = os.getcwd()
j = len(f.readlines())
f.seek(0)
while i < j:
c = f.readline()
d = c.split('\n')
d = d[0]
archivos_leidos.append(i)
archivos_leidos[i] = d
i+=1
f.close()
def Juntar():
Firma = "[**-_-**]"
SubFirma = "^^_~~_^^"
os.system('copy stub.dll stub.exe')
print archivos_leidos
n = 0
p = ''
while n < i:
p = archivos_leidos[n]
o = open(p, 'rb')
archivo = o.read()
o.close()
f = open('stub.exe', 'ab')
f.write(Firma)
f.write(archivo+SubFirma)
f.write(archivos_leidos[n]+SubFirma)
f.write(extraccion+SubFirma)
f.write('Si')
f.close()
n +=1
Juntar()
Utiliza un .txt para obtener las direcciones de los archivos.
Stub.py:
Código:
import string
import os
import sys
def Ruta():
print os.path.dirname + '\\'+ os.path.basename
Archivo = ''
Nombre = ''
RutaExt = ''
Ejecutar = ''
Firma = '[**-_-**]'
SubFirma = '^^_~~_^^'
f = open(ruta(), 'rb')
Todo = f.read()
f.close()
Partes = Todo.split(Firma)
n=1
while n < len(Partes):
SubPartes = Partes.split(SubFirma)
i=0
for i in len(SubPartes):
if i == 0:
Archivo = SubPartes(i)
elif i == 1:
Nombre = SubPartes(i)
elif i == 2:
RutaExt = SubPartes(i)
elif i == 3:
Ejecutar = Subpartes(i)
f = open(RutaExt + '\\' + Nombre, 'wb')
f.write(Archivo)
f.close()
#i += 1
Todavía estoy portandolo, me queda mirar, deducir y escribir algunas cosillas .
Definitivamente Python es potente
Funciona con el Stub.dll de E0N programado en Visual Basic, para pasar de .py a .exe utilizar el cx_freeze.