подскажите по функционированию rundll32

Discussion in 'WASM.BEGINNERS' started by Protorus, Mar 9, 2010.

  1. Protorus

    Protorus New Member

    Blog Posts:
    0
    Не получается вруную смоделировать вот такое действие

    rundll32.exe shimgvw.dll,ImageView_Fullscreen C:\picture.jpg

    Делаю так
    Code (Text):
    1.         format  PE GUI 4.0
    2.         entry   start
    3.  
    4. section '.data' data readable writeable
    5.  
    6.         libra.name db 'shimgvw.dll',0
    7.         funct.name db 'ImageView_Fullscreen',0
    8.         image.name db 'c:\picture.jpg',0
    9.  
    10. section '.code' code readable executable
    11.  
    12. start:
    13.  
    14.         invoke  LoadLibrary, libra.name
    15.         invoke  GetProcAddress, EAX, funct.name  
    16.         stdcall EAX, image.name, 0, 0, 0
    17.         ret
    18.  
    19.  
    20. section '.idata' import data readable writeable
    21.  
    22.         library kernel32,'KERNEL32.DLL'
    23.         include 'C:\Install_Files\Fasm\INCLUDE\api\kernel32.inc'
    Т.е. я не знаю прототип функции ImageView_Fullscreen
    Сначала передал ей 1 параметр, после завершения, она удалила из стека еще 3
    Т.е всего параметров 4

    При запуске окно просмотрщика изображений открывается, но картинку не кажет

    Олька пишет RichEd20.dll - failled inicialize

    Куда дальше копать?
     
  2. Protorus

    Protorus New Member

    Blog Posts:
    0
    Да еще, забыл спросить, как rundll32.exe узнает о количесве параметров?
    Или есть какое-то соглашения для вызова данных функций?
     
  3. Protorus

    Protorus New Member

    Blog Posts:
    0
    О всем спасибо :)) Я поторопился
    Надо так
    stdcall EAX, 0, 0, exec.buffer.addr, 0
     
  4. Protorus

    Protorus New Member

    Blog Posts:
    0
    Хотя и не знаю почему так
    Но все таки, как же узнает rundll32.exe, как надо вызывать?
     
  5. n0name

    n0name New Member

    Blog Posts:
    0
    это документировано.
    http://support.microsoft.com/kb/q164787/
     
  6. Protorus

    Protorus New Member

    Blog Posts:
    0
    Спасибо, действительно все просто
     
  7. Protorus

    Protorus New Member

    Blog Posts:
    0
    Я раньше почему-то думал, что rundll32 может вызвать любую функцию, MessageBox например ..