Сам себе Iczelion

Тема в разделе "WASM.BEGINNERS", создана пользователем Mikl_, 11 май 2007.

Метки:
  1. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Урок 17 DLL Вывод текста из dll и ресурсы в dll на nasmw без линкера и компилятора ресурсов
     
  2. TOLSTOPUZ

    TOLSTOPUZ New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2008
    Сообщения:
    509
    Поддерживаю вопрос...
     
  3. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Урок 10. Сделан по мотивам Iczelion и "main variants" от kero
    Создание диалога 6 способами:
    1) CreateDialogParam+DlgProc
    2) CreateDialogParam+DlgProc+WndProc
    3) CreateDialogParam+WndProc+RegisterClassEx
    4) DialogBoxParam+DlgProc
    5) DialogBoxParam+DlgProc+WndProc
    6) DialogBoxParam+WndProc+RegisterClassEx
    и переделанная динамическая загрузка иконок из dll'ки
    на nasmw без линкера и компилятора ресурсов
     
  4. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Урок 31. ListView на nasmw без линкера и компилятора ресурсов. 3 варианта по мотивам Iczelion, Sulaiman и driver
     
  5. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Урок 28. Конечный автомат на nasmw без линкера и компилятора ресурсов. Так как все сразу не крепится -- отправляю тремя частями, в аттачах сорц, картинки и курсор в папке Images и экзешник (продолжение следует...)
     
  6. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Урок 28. аттач часть вторая (окончание следует...)
     
  7. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Урок 28. аттач часть третья
     
  8. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Mikl___
    Термин "конечный автомат" в контексте данного произведения несколько похабен, так и задумано? :)
    Но пошто недотрога? пошто отпрыгивает от прикосновений? пущай реагирует соответственно хит-тесту эрогенных зон, XFORM для регионов тут был бы зело весьма :)
     
  9. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    kero
    Наш ответ skomarovу. "Автомат", можно дорабатывать и дорабатывать... Хватит читать благоглупости :)
     
  10. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    :)
    Не подливайте масло в огонь! он (ежели кодер) будет контр- дорабатывать и дорабатывать сию непотребную тамагочку :)
     
  11. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Урок 29. Пример обращение к портам из ring3 под WinXP на nasmw без линкера и компилятора ресурсов. Идея взята здесь В аттаче сорц, ехе и r0pc.sys by @L.chemist (Andrey A. Meshkov)
     
  12. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Урок 29 (переработанный). Пример непосредственного обращения к портам из ring3 из-под WinXP. По сравнению с предыдущим постом -- небольшая оптимизация и добавление возможности перезагрузки (будте осторожны -- при такой перезагрузке недолго и систему убить). Написано на nasmw без линкера и компилятора ресурсов. В аттаче сорц, ехе и r0pc.sys by @L.chemist (Andrey A. Meshkov)
     
  13. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Mikl___
    Может проще будет в флажках IOPL из дрова установить в 3 ?
     
  14. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    CrystalIC попробую...
     
  15. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Шаг четвертый. Минимизируем WndProc (продолжение)
    Способ восьмой -- самый быстрый
    идея взята здесь
    Пусть нам требуется обработать сообщения WM_CREATE=1, WM_DESTROY=2, WM_PAINT=0Fh и WM_TIMER=113h. Пусть сообщение WM_XX обрабатывается по адресу @@WM_XX. Максимальный номер у сообщения WM_TIMER Под таблицу адресов обрабатываемых сообщений отведем место среди неинециализированных данных, в памяти или в хипе
    Код (Text):
    1. .data?
    2. MsgTable DD WM_TIMER+1 DUP (?);Таблица адресов сообщений, которые обрабатывает
    3. ;наша процедура окна номер максимального сообщения + место под WM_NULL
    4. .code
    5. ; где-нибудь в самом начале программы заполняем таблицу адресов сообщений
    6.         mov edi,offset MsgTable
    7.     mov ecx,WM_TIMER
    8.     mov eax,OFFSET @@default
    9.     rep stosd   ;заполняем таблицу адресами необрабатываемых сообщений
    10. ;а теперь поверх адреса обрабатываемых сообщений
    11.     mov MsgTable[WM_CREATE*4],offset @@WM_CREATE
    12.     mov MsgTable[WM_TIMER*4],offset @@WM_TIMER
    13.     mov MsgTable[WM_DESTROY*4],offset @@WM_DESTROY
    14.     mov MsgTable[WM_PAINT*4],offset @@WM_PAINT
    15. ...
    16. WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
    17.         mov eax,[uMsg]
    18.     cmp eax,WM_TIMER
    19.     ja @@default
    20. ;больше не тратим время на сравнения -- сразу на Вызов соответствующего обработчика
    21.     jmp MsgTable[eax*4]
    22. @@default: leave
    23.         jmp _imp__DefWindowProcA@16  
    24. @@WM_CREATE: ...
     
  16. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    Похоже какие то проблемы с приаттаченными файлами. Всё битое.. :dntknw:

    PS. Удалось скачать только благодаря FireFox 3 (уж не сочтите за рекламу). IE6, 8, FireFox 2 failed...

    Mikl___
    Ни один пример не работает в Windows 7 beta bld. 7000. Даже с использованием всяческих compatible mode. Пока ещё не разбирался где затык.
     
  17. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    ALLeX
    Это проблемы сайта -- хотя все примеры можно найти начиная с сообщения#110 где к архивам добавлялась информация для восстановления, или здесь, или могу сбросить почтой. IMHO cкорее всего в Windows 7, так же как и в Windows Vista, align=4 не работает, либо проблемы в заголовке PE, сами примеры проверялись на Windows XP от Home Edition до SP3 и не будут работать на Win9X и Win2k о чем я честно предупреждал. К сожалению, пока под Windows 7 и Vista проверить не могу, буду рад подсказкам и замечаниям :)
     
  18. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Урок 29 (еще раз переработанный). Пример непосредственного обращения к портам из ring3 из-под WinXP. Учимся обходится совсем без драйвера! Проигрывает музыку системным динамиком, дает просмотреть содержимое CMOS'а, выводит из 60h порта скан-коды нажатых клавишь и возможность перезагрузки (будте осторожны -- при такой перезагрузке недолго и систему убить). Написано на masm. В аттаче сорц, ехе и r0pc1.sys by @L.chemist (Andrey A. Meshkov). Проверялось под Windows XP SP3, под Win9X и Win2k работать не будет!

    1) Насчет доступа к портам из ring3 без драйвера -- это конечно шутка. Драйвер спрятан в ресурсах ехе и при запуске программы пишется в ту же папку, по завершению приложения драйвер автоматически удаляется.
    2) Для проигрыша мелодии константу придется подбирать самим на слух: для Celeron 466 MHz она равна 400000h, а для Pentium 4 2.40 GHz = 3000000h
     
  19. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Еще больше сжимаем РЕ-заголовок :)
    Стандартно, массив директорий (IMAGE_OPTIONAL_HEADER.DataDirectory) состоит из 16 элементов, хотя нам требуется только IMPORT ну и иногда RESOURCE - в том случае, когда требуется только IMPORT указываем 2 элемента (export и import), учитываем что размер Debug таблицы (7й элемент) должен быть равен нулю и то, что можно заполнить мусором первый элемент -- вставляем код вместо Export RVA и Export SIZE (идея взята здесь у GoldFinch) в аттаче полупрозрачные часы (сорц и ехе и картинка цифирблата). Написано на nasmw без линкера и компилятора ресурсов.
     
  20. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Еще больше сжимаем РЕ-заголовок :) (continue)
    То же самое, но уже с RESOURCE - указываем 3 элемента (export, import, resource), учитываем что размер Debug таблицы (7-ой элемент) должен быть равен нулю и то, что можно заполнить мусором первый элемент -- вставляем код вместо Export RVA и Export SIZE. В аттаче переделанный 8-ой урок Iczelion'a (сорц и ехе). Написано на nasmw без линкера и компилятора ресурсов.