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

Тема в разделе "WASM.BEGINNERS", создана пользователем Protorus, 9 мар 2010.

  1. Protorus

    Protorus New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2009
    Сообщения:
    51
    Не получается вруную смоделировать вот такое действие

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

    Делаю так
    Код (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

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

    Protorus New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2009
    Сообщения:
    51
    О всем спасибо :)) Я поторопился
    Надо так
    stdcall EAX, 0, 0, exec.buffer.addr, 0
     
  4. Protorus

    Protorus New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2009
    Сообщения:
    51
    Хотя и не знаю почему так
    Но все таки, как же узнает rundll32.exe, как надо вызывать?
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    это документировано.
    http://support.microsoft.com/kb/q164787/
     
  6. Protorus

    Protorus New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2009
    Сообщения:
    51
    Спасибо, действительно все просто
     
  7. Protorus

    Protorus New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2009
    Сообщения:
    51
    Я раньше почему-то думал, что rundll32 может вызвать любую функцию, MessageBox например ..