Rev 647 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
647 | andrew_pro | 1 | format ELF |
2 | include 'proc32.inc' |
||
3 | section '.text' executable |
||
4 | |||
5 | public _ksys_cofflib_load |
||
6 | public _ksys_cofflib_getproc |
||
7 | |||
8 | proc _ksys_cofflib_load stdcall, name:dword |
||
9 | |||
10 | mov eax, 68 |
||
11 | mov ebx, 19 |
||
12 | mov ecx, [name] |
||
13 | int 0x40 |
||
14 | ret |
||
15 | endp |
||
16 | |||
17 | proc _ksys_cofflib_getproc stdcall, export:dword,name:dword |
||
18 | |||
19 | mov ebx,[export] |
||
20 | |||
21 | next_name_check: |
||
22 | |||
23 | mov ecx,[ebx] |
||
24 | test ecx,ecx |
||
25 | jz end_export |
||
26 | |||
27 | ;cmp export string with name |
||
28 | mov esi,[name] |
||
29 | xor edi,edi |
||
30 | next_simbol_check: |
||
31 | |||
32 | xor eax,eax |
||
33 | mov al,[ecx] |
||
7418 | siemargl | 34 | ; siemargl moved to post-check |
35 | ; test al,al |
||
36 | ; jz exit_check_simbol |
||
647 | andrew_pro | 37 | |
38 | xor edx,edx |
||
39 | mov dl,[esi] |
||
40 | cmp al,dl |
||
41 | je simbols_equvalent |
||
42 | add edi,1 |
||
43 | jmp exit_check_simbol |
||
44 | simbols_equvalent: |
||
7418 | siemargl | 45 | test al,al |
46 | jz exit_check_simbol |
||
647 | andrew_pro | 47 | |
48 | ;pushad |
||
49 | |||
50 | ;mov cl,al |
||
51 | ;mov ebx,1 |
||
52 | ;mov eax,63 |
||
53 | ;int 0x40 |
||
54 | |||
55 | ;popad |
||
56 | |||
57 | add ecx,1 |
||
58 | add esi,1 |
||
59 | jmp next_simbol_check |
||
60 | exit_check_simbol: |
||
61 | |||
62 | test edi,edi |
||
63 | jnz function_not_finded |
||
64 | mov eax,[ebx+4] |
||
65 | jmp end_export |
||
66 | function_not_finded: |
||
67 | |||
68 | add ebx,8 |
||
69 | |||
70 | jmp next_name_check |
||
71 | |||
72 | end_export: |
||
73 | |||
74 | ret |
||
75 | endp |
||
76 |