Tal vez me exprese mal yo tambien, hice un EXE en MI PC y lo abri con un editor, en mi editor veo los nombres de las variables, no en la captura de Alberto.
Probé de hacer un pequeño exe, guardando una constante string, y una variable string, cargandola con los CHR y efectivamente es como decis.
Otra cosa que vi mirando el editor hex, es que aparecen los nombres de las variables, asi que no deberiamos llamar a una variable como UserPass, o algo similar.
Otra cosa, si declaro una variable, pero no la uso en el codigo, se ve que el compilador se da cuenta y directamente no la compila, porque no se ve dentro del exe.
Me dio intriga y abir el EXE con un VB Decompiler.
Es increible como puede leer la informacion del exe.
Por ej el proyecto:
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ScaleMode = 1
AutoRedraw = False
FontTransparent = True
'Icon = n/a
LinkTopic = "Form1"
ClientLeft = 120
ClientTop = 450
ClientWidth = 4560
ClientHeight = 3030
StartUpPosition = 3 'Windows Default
End
Attribute VB_Name = "Form1"
El Diseño del Form:
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ScaleMode = 1
AutoRedraw = False
FontTransparent = True
'Icon = n/a
LinkTopic = "Form1"
ClientLeft = 120
ClientTop = 450
ClientWidth = 4560
ClientHeight = 3030
StartUpPosition = 3 'Windows Default
End
Attribute VB_Name = "Form1"
Lo bueno es que el codigo no lo pudo restaurar, se ve en assembler
Private Sub Form_Load() '401A00
loc_00401A00: push ebp
loc_00401A01: mov ebp, esp
loc_00401A03: sub esp, 0000000Ch
loc_00401A06: push 004010B6h ; __vbaExceptHandler
loc_00401A0B: mov eax, fs:[00h]
loc_00401A11: push eax
loc_00401A12: mov fs:[00000000h], esp
loc_00401A19: sub esp, 00000134h
loc_00401A1F: push ebx
loc_00401A20: push esi
loc_00401A21: push edi
loc_00401A22: mov var_C, esp
loc_00401A25: mov var_8, 004010A0h
loc_00401A2C: mov eax, Me
loc_00401A2F: mov ecx, eax
loc_00401A31: and ecx, 00000001h