Ik ben bezig om uit te zoeken in hoeverre ik zelf bestanden in m'n freecom beatman kan krijgen.
De freecom wordt geleverd met een USBDLL2.DLL, waarin de functies zitten die ik nodig heb, bv de functie dll_fn_upload_file. Lijkt me duidelijk wat die functie moet doen.
Mijn vermoeden is dat deze functie als parameter vraagt de bestandslocatie, en of dat bestand naar het interne en/of externe geheugen moet. Nu heb ik die DLL met PE Explorer gedisassembleerd, en dat levert mij de volgende code op voor deze functie:
Mijn assembly is niet meer wat het geweest is, en is nooit echt denderend geweest, maar als ik dit goed lees gebruiken ze hier 3 parameters (eax, ecx, edx). Hoe vind ik nu de types van deze parameters uit? (lijkt me overigens dat hij ook iets teruggeeft). Ik vraag niet om het antwoord, maar meer om de methode om dit antwoord te bepalen..
Voor alle volledigheid, hij called die SUB_L10002A90, hier even een stukje daaruit:
De freecom wordt geleverd met een USBDLL2.DLL, waarin de functies zitten die ik nodig heb, bv de functie dll_fn_upload_file. Lijkt me duidelijk wat die functie moet doen.
Mijn vermoeden is dat deze functie als parameter vraagt de bestandslocatie, en of dat bestand naar het interne en/of externe geheugen moet. Nu heb ik die DLL met PE Explorer gedisassembleerd, en dat levert mij de volgende code op voor deze functie:
code:
1
2
3
4
5
6
7
8
9
10
11
| Align 16
dll_fn_upload_file:
mov eax,[esp+0Ch]
mov ecx,[esp+08h]
mov edx,[esp+04h]
push eax
push ecx
push edx
call SUB_L10002A90
add esp,0000000Ch
retn |
Mijn assembly is niet meer wat het geweest is, en is nooit echt denderend geweest, maar als ik dit goed lees gebruiken ze hier 3 parameters (eax, ecx, edx). Hoe vind ik nu de types van deze parameters uit? (lijkt me overigens dat hij ook iets teruggeeft). Ik vraag niet om het antwoord, maar meer om de methode om dit antwoord te bepalen..
Voor alle volledigheid, hij called die SUB_L10002A90, hier even een stukje daaruit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| push FFFFFFFFh
push L10015448
mov eax,fs:[00000000h]
push eax
mov fs:[00000000h],esp
sub esp,0000009Ch
push ebx
push ebp
push esi
push edi
mov ecx,00000008h
xor eax,eax
lea edi,[esp+4Ah]
mov byte ptr [esp+44h],23h
mov byte ptr [esp+45h],00h
mov byte ptr [esp+46h],04h
mov byte ptr [esp+47h],3Ah
mov byte ptr [esp+48h],4Dh
mov byte ptr [esp+49h],52h
mov esi,[esp+000000BCh]
rep stosd
stosw
mov edi,esi
or ecx,FFFFFFFFh
xor eax,eax
repne scasb
not ecx
dec ecx
lea edi,[esp+6Dh]
mov [esp+18h],ecx
mov ecx,0000000Fh
mov [esp+6Ch],al
rep stosd
stosw
lea ecx,[esp+34h]
stosb
call SUB_L1000F12E |
