Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  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]
  34.         test al,al
  35.         jz exit_check_simbol
  36.  
  37.                 xor edx,edx
  38.                 mov dl,[esi]
  39.                 cmp al,dl
  40.                 je simbols_equvalent
  41.                         add edi,1
  42.                         jmp exit_check_simbol
  43.                 simbols_equvalent:
  44.  
  45.                   ;pushad
  46.  
  47.                   ;mov  cl,al
  48.                   ;mov  ebx,1
  49.                   ;mov  eax,63
  50.                   ;int  0x40
  51.  
  52.                   ;popad
  53.  
  54.         add ecx,1
  55.         add esi,1
  56.         jmp next_simbol_check
  57.         exit_check_simbol:
  58.  
  59.         test edi,edi
  60.         jnz function_not_finded
  61.                 mov eax,[ebx+4]
  62.                 jmp end_export
  63.         function_not_finded:
  64.  
  65.         add ebx,8
  66.  
  67.         jmp next_name_check
  68.  
  69.         end_export:
  70.  
  71.         ret
  72. endp
  73.  
  74.