Newsgroup: it.comp.lang.visual-basic
Titolo: [!] A tutti quelli che vogliono DISASSEMBLATORI

Allora....
siccome ne ho piene le scatole... e non solo io... di sentire chiedere
disassemblatori per VB5 o 6, e nonostante le miriadi di messaggi queste
domande vengono ancora poste, e con che scuse poi ??    "Voglio vedere il
sorgente per imparare...."
Ok, questo listato é quello che restituisce un disassemblatore per VB5 che
mi é capitato fra le mani :
Si tratta di un applicazione che ho creato io che contiene un bottone e 2
variabili, a una delle quali viene assegnato un testo:
--------------------------------------------
sub1=Command1_Click() '#803
0 PUSH.l [-ESP], EBP                               55
1 MOV.l EBP, ESP                                   8B EC
3 SUB.l ESP, C                                     83 EC 0C
6 PUSH.l [-ESP], &__vbaExceptHandler               68 16 10 40 00
B MOV.l EAX, [FS:pppp]                             64 A1 00 00 00 00
11 PUSH.l [-ESP], EAX                              50
12 MOV.l FS:0[], ESP                               64 89 25 00 00 00 00
19 SUB.l ESP, 1C                                   83 EC 1C
1C PUSH.l [-ESP], EBX                              53
1D PUSH.l [-ESP], ESI                              56
1E MOV.l ESI, SS:EBP[+8h]                          8B 75 08
21 PUSH.l [-ESP], EDI                              57
22 MOV.l EAX, ESI                                  8B C6
24 AND.l ESI, FE                                   83 E6 FE
27 MOV.l SS:EBP[-12], ESP                          89 65 F4
2A AND.l EAX, 1                                    83 E0 01
2D MOV.l ECX, DS:ESI[]                             8B 0E
2F MOV.l SS:EBP[-8], &#2                           C7 45 F8 00 10 40 00
36 PUSH.l [-ESP], ESI                              56
37 MOV.l SS:EBP[-4], EAX                           89 45 FC
3A MOV.l SS:EBP[+8h], ESI                          89 75 08
3D CALL.N DS:ECX[+4h]                              FF 51 04
40 MOV.l EDX, DS:ESI[]                             8B 16
42 PUSH.l [-ESP], ESI                              56
43 MOV.l SS:EBP[-28], 0                            C7 45 E4 00 00 00 00
4A MOV.l SS:EBP[-32], 0                            C7 45 E0 00 00 00 00
51 CALL.N DS:EDX[+2FCh]                            FF 92 FC 02 00 00
57 PUSH.l [-ESP], EAX                              50
58 LEA.l EAX, SS:EBP[-32]                          8D 45 E0
5B PUSH.l [-ESP], EAX                              50
5C CALL.N __vbaObjSet[]                            FF 15 C8 30 40 00
62 MOV.l ESI, EAX                                  8B F0
64 PUSH.b [-ESP], 0                                6A 00
66 PUSH.l [-ESP], ESI                              56
67 MOV.l ECX, DS:ESI[]                             8B 0E
69 CALL.N DS:ECX[+8Ch]                             FF 91 8C 00 00 00
6F TEST.l EAX, EAX                                 85 C0
71 JNL #804                                        7D 12
73 PUSH.l [-ESP], 8C                               68 8C 00 00 00
78 PUSH.l [-ESP], &#99                             68 2C 16 40 00
7D PUSH.l [-ESP], ESI                              56
7E PUSH.l [-ESP], EAX                              50
7F CALL.N __vbaHresultCheckObj[]                   FF 15 C0 30 40 00
#804 '#804
0 LEA.l ECX, SS:EBP[-32]                           8D 4D E0
3 CALL.N __vbaFreeObj[]                            FF 15 2C 31 40 00
9 PUSH.l [-ESP], &#100                             68 40 16 40 00
E CALL.N __vbaI2Str[]                              FF 15 FC 30 40 00
14 MOV.l SS:EBP[-4], 0                             C7 45 FC 00 00 00 00
#12 '#12
0 PUSH.l [-ESP], &#101                             68 6B 1A 40 00
5 JMP.N #13                                        EB 0A
#14 '#14
0 LEA.l ECX, SS:EBP[-32]                           8D 4D E0
3 CALL.N __vbaFreeObj[]                            FF 15 2C 31 40 00
9 RET.N                                            C3
#13 '#13
0 LEA.l ECX, SS:EBP[-28]                           8D 4D E4
3 JMP.N __vbaFreeStr[]                             FF 25 30 31 40 00
#805 '#805
0 RET.N                                            C3
#101 '#101
0 MOV.l EAX, SS:EBP[+8h]                           8B 45 08
3 PUSH.l [-ESP], EAX                               50
4 MOV.l EDX, DS:EAX[]                              8B 10
6 CALL.N DS:EDX[+8h]                               FF 52 08
9 MOV.l ECX, SS:EBP[-20]                           8B 4D EC
C MOV.l EAX, SS:EBP[-4]                            8B 45 FC
F POP.l EDI, [ESP+]                                5F
10 POP.l ESI, [ESP+]                               5E
11 MOV.l FS:0[], ECX                               64 89 0D 00 00 00 00
18 POP.l EBX, [ESP+]                               5B
19 MOV.l ESP, EBP                                  8B E5
1B POP.l EBP, [ESP+]                               5D
1C RET.N 4                                         C2 04 00
#806 '#806
0 NOP                                              90
1 NOP                                              90
2 NOP                                              90
3 NOP                                              90
4 NOP                                              90
5 NOP                                              90
--------------------------------------------
E ADESSO DIMOSTRATEMI CHE IMPARATE IL VISUAL BASIC con il codice postato
qui, e calcolate che é un applicazione semplicissima.
Grazie per l'attenzione.
Dave
(P.S: per imparare, ci sono milioni di siti contenenti sorgenti)
--
"The truth is out there"

Si capisce di + col debug del dos...
---
GbC
http://gbc.homeip.net
---

 Si capisce di + col debug del dos...
In effetti siam li' li'... :)

Grazie, grazie e grazie ancora ^__^
Ciaps
Stracca
http://www.stracca.net

 (P.S: per imparare, ci sono milioni di siti contenenti sorgenti)
Questo e' fuor di dubbio... Cmq puo' essere carino disassemblare un tuo
compilato per capire come VB affronta certi problemi.
E' chiaro che a quel punto devi lasciar dentro le informazioni di debugging
e levare le ottimizzazioni, altrimenti rischi di non capirci nulla.
E' altrettanto chiaro che in produzione le info di debug non sono dentro e
il codice e' ottimizzato, quindi da un programma non tuo (o tuo ma compilato
per ottenere un codice di produzione) capirai davvero poco.
Ciaotutti,
Alessandro

 21 PUSH.l [-ESP], EDI                              57
quì c'è un errore, ti sei scordato di impostare la property Visible=True per
il CommandButton :))))
ciao

Giusto!
Se i miei compagni di classe potessero disassemblare i miei programmi
la mia egemonia svanirebbe nel nulla!
Tanto poi gli mando i sorgenti...
Non ci capiscoo niente neanche di quelli!
Scuasate l'OT
Ciao
Giulio
-> Dave <- <da...@hate.spam> wrote in message
8vlsat$ej$1...@bw107zhb.bluewin.ch...


Bhè... la prima riga l'ho capita... =))))
P.S. Grazie che risparmi a tutti noi inutili risposte e chiarimenti
su questo argomento già troppo discusso e ridiscusso.
--------------------------------------------
             ASSA
http://web.tiscalinet.it/Assatarram
Napster: Assatarram3
it.comp.lang.visual-basic: Assatarram
--------------------------------------------
"-> Dave <-" <da...@hate.spam> ha scritto nel messaggio
news:8vlsat$ej$1...@bw107zhb.bluewin.ch...
