Lo de llamar con winexec a un contenido bat directamente no funciona, si lo paso por cmd /c tampoco (aunque no debería hacerlo tampoco)
Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
Private Sub Command1_Click()
Call WinExec(Text1.Text, 0)
End Sub
asi que desde vb para ejecutarlo de esa forma no funciona a menos que pipeada si se pueda, trataré de hacer eso y lanzarle linea por linea aunque se que no funcionará.
Usas un form, pero no lo utilizas, si lo quitas podrías ahorrarte unos pocos bytes
Lo haré
Obtienes el final del stub gracias a sus datos en el PE
Alguien por msn me sopló que eso de poner datos después del binario a veces puede prestarse para la detección heuristica de algunos antivirus asi que estoy intentando de cambiar de estrategia. No es que no funcione pero quiero adelantarme un poco a su detección.
Lo de pasarlo a c++ es una opción pero me hize todo un desmadre cuando lo intenté jaja ya que no soy muy bueno con ese lenguaje aunque debo reconocer que intentandolo pude aprender muchas cosas pero aun así no pude y por eso lo hize en vb mejor.
struct datosEOF
{
int NumeroCaracteresCuerpoMensaje; // Si es 0 pues no hay mensaje ;)
int NumeroCaracteresTituloMensaje; // Si es 0 lo mismo
}
Lo que pasa es que cuando insertas el ícono o comprimes el binario cambia totalmente el valor total del peso del binario asi que el numero de carácteres ya no sirve, en un comienzo el stub trabajaba de esa forma donde el bat se obtenía a partir desde el último carácter contado del stub y ese valor estaba en una global pero al ponerle el ícono tube que cambiar de estrategia y ponerle la fiorma, así por mas que se modifique el binario los datos siguen donde mismo.
Estaba pensando en el cifrado de los datos y al descifrarlos encontrar tags en formato xml como por ejemplo
rc4('<msgbox>valor_en_base64</msgbox><bat>valor_en_base64</bat>', llave)
donde el contenido esté en base64 para evitar conflictos y todo eso en rc4 y ahi tener un único cuerpo donde pueda almacenar todo tipo de datos pero aun así estaría fuera del contenido total.
Yo la manera que recomiendo guardar datos si no quieres usar el sistema de firmas al final de el archivo es mediante resource
Eso en vb sería usar un OLE para cada recurso o simplemente un textbox y modificar binariamente el contenido por cada valor que quiera inyectarle.
Lo estoy viendo y en algún arreglo llegaré, eso si es seguro