CreateWindowExA

Тема в разделе "WASM.WIN32", создана пользователем Acrobat, 28 мар 2010.

  1. Acrobat

    Acrobat New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2010
    Сообщения:
    23
    всем привет, столкнулся с проблемою
    у меня стоит задача поставить пароль на ехе файл (не смейтесь только)
    создал код (в архиве исходники)
    алгоритм такой:
    1. компилирую исходники, вырезаю секцию
    2. добавляю в нужный файл свою секцию последней
    3. изменяю точку входа
    4. в своём коде достаю нужные мне Апи
    5. пробую создать окно << тут и рубит (на CreateWindowExA)
    6. при вводет пароля "123" должно перейти на ОЕР

    в архиве test.exe уже с вставленым кодом (просто прогоните в Олли)
    сам код рабочий (можно просто скомпилировать и посмотреть, окошко есть)

    есть идеи где ошибка ?

    З.Ы. при добавлении кода что нужно править в заголовке файла ?
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Acrobat
    В 364 строке ошибка, вы дельту забыли :)
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    На будущее. Допустим выполняется процедурное ветвление на не валидный адрес. Eip будет изменён, но процедурное ветвление сохранит в стеке адрес возврата, ниже которого нужная инструкция. Сюда и смотрим.
     
  4. Acrobat

    Acrobat New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2010
    Сообщения:
    23
    огромное спасибо, оказалось что и не только там забыл, второй вопрос, теперь ввожу пароль, оно открывает программу (как и должно быть) но окошко не закрывается потом, попробовал PostQuitMessage но полностю закрывает, есть идеи ?
     
  5. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Acrobat
    Коментари звеселили. :) Звісно процес завершуватиметься, бо PostQuitMessage провокує GetMessage повернути нуль. А Ви в цьому випадку визиваєте ExitProcess. Якщо Вам потрібно знищити вікно, то викликайте DestroyWindow замість PostQuitMessage. Звичайно при цьому також не потрібно оброблювати WM_DESTROY викликом PostQuitMessage.
     
  6. Acrobat

    Acrobat New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2010
    Сообщения:
    23
    да... коментарии доставляют))) взято из методички.
    заработало) отлично, спасибо l_inc и Clerk за подсказки