Загводка

Тема в разделе "WASM.ASSEMBLER", создана пользователем EvilsInterrupt, 10 сен 2004.

  1. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Если твой ImageBase ненравиться мастдаю, то он его изменит на другой.
     
  2. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    _Chiganchkug_

    по используй мой последний зип в этой теме можешь скажешь, имеет ли погрешности шифрования прога, по мимо того, что могут совпадаться 64битные блоки
     
  3. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Господа виндовщики и любители wasm`a!



    изучая урок 3 из туториалов Iczelion`a у меня возник

    вопрос что же на самом деле делает функция CreatyWindow?

    Читаю доку там передать тип окна и получишь банан, а что

    именно и как банан получается ни слова? Я предполагаю, что

    в выделенной области памяти рисуется пиксель за пикселем,

    одна строка, потом другая и так все окно. Т.е. это как при

    распечатывании матричным принтером.



    вопрос) Прав ли я?



    Логично если это действительно так происходит иначе больше

    смысла не вижу. :dntknw:

    ;---------------------------------------------------------

    Далее второй вопрос. Когда в игру вступает работа видеокар-

    ты? Насколько я полагаю - в ShowWindow.

    ;---------------------------------------------------------

    Третий вопрос после того как мы отобразили окно, мы можем

    подвести курсор к краям окна и появится что то вроде этого:

    "<->" и этим символом мы можем изменить размер окна.



    ГДе в коде место на это действие? Я не увидел. Вижу токо

    UpDateWindow, но оно не в цикл сообщений, ни в процедуру

    окна не входит. Где правда?



    ЗЫ: это что бы несоздавать новый топик: Я пробую убрать один

    вызов в проге, но мне бы хотелось чтобы с помощью какой нить

    проги можно было проследить все вызовы апи, без указания их

    параметров, токо сами в функции.

    К примеру я захожу в прогу нажимаю лицензия, далее появляет-

    ся меню для ввода пароля, как мне с этого места проследить

    все вызовы?

    Прошу не материть и не банить,т.к. винду токо начал изучать.

    APISpy, не предлагать, что то она мне не понравилась ;)



    + посоветуйте пожалуйста на будущее, что сделать для автома-

    тизации создания окна. Чтобы не писать здоровый код в каждой

    проге, может уже есть у кого готовые и удобные макросы?
     
  4. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Для тебя надо создать отдельный форум WASM.EVILS %)
     
  5. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Блин, хорош смеяться просто эта голова, в смысле моя, задолбала генерировать колоссальное количество вопросов. А вот как не пытался увличить скорость генерации ответов, попытки весьма плачевны! :)
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    EvilsInterrupt

    > + посоветуйте пожалуйста на будущее, что сделать для автома-

    тизации создания окна. Чтобы не писать здоровый код в каждой

    проге, может уже есть у кого готовые и удобные макросы?




    А нарисовать в ресурс-редакторе тебя не устроит? :derisive:
     
  7. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    EvilsInterrupt



    Эта дока написана для тех, кто знает что такое об'ектно-ориентированное программирование, что такое классы , об'екты, свойства (property) и методы(method).

    Просто у об'екта окно есть куча методов, которые реализованы в системных DLL - например , реакция на мышу.

    Поэтому выбирай : или читать долго-долго толстые книжки или программировать наощупь. Именно этим мне и не нравится эта технология :)
     
  8. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Ответ получил на rusfaq.ru

    В моей теме "прошу помочь найти выход"



    товарищ bagrus показал импортирование без jmp`ов, но мне до сих пор не понятен механизм импортирования. в указанной теме есть ff 25 [адрес] если проследить по этому переходу,то попадаю в секцию .rdata на сколько понимаю секцию импорта. Но если посмотреть в отладчике, управление передается в верхний адрес, т.е. в dll а не в секцию импорта.

    Как это происходит?

    В статьях как в джунглях гуляю, среди хинтов и намеков каких то да и всякие image_discryptor_import ясности тоже не вносят
     
  9. Inked Wedge

    Inked Wedge New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2004
    Сообщения:
    33
    Адрес:
    Ukraine
    Гм... Насколько я понял (сам только второй день изучаю кодинг под WIN32) Там в стек пихаюцца парпметры, идет вызов в.... как ето вы называете... секцию импорта, а там просто стоит jmp куда - то в kernel32.dll...



    Вся эта лабуда хорошо просматривается td32 (Borland rulezz forever!!!!!!) :)
     
  10. Inked Wedge

    Inked Wedge New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2004
    Сообщения:
    33
    Адрес:
    Ukraine
    Т.е. как мне кажется в "секции импорта" :) строковые названия заменяются на конкретные адреса...





    Насчет объектно ориентированного программирования... эх, видно, что человек не юзал в прошлом тысячелетии Turbo Vision... Я так думаю, что графическое окно и процесс - абсолютно разные сущности, графика - сама по себе, просто при воздействии на нее тебе (т.е. процессу) посылаются "события" или "сообщения". Сие есть принцип разделения визуальных копонентов и обработки данных.
     
  11. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    Ну мысль почти правильная :) , см. подробней .
    Код (Text):
    1. ====================================================================== ======================
    2. 00401000 >/$  6A 00             PUSH    0                ; /ExitCode = 0
    3. 00401002  \.  FF15 3D104000     CALL    [40103D]         ; \ExitProcess
    4. ====================================================================== ======================
    5. 00401008   .  00000000          DD      00000000         ;  Struct 'IMAGE_IMPORT_DESCRIPTOR'
    6. 0040100C   .  00000000          DD      00000000
    7. 00401010   .  00000000          DD      00000000
    8. 00401014   .  30100000          DD      00001030
    9. 00401018   .  3D100000          DD      0000103D
    10. 0040101C   .  00000000          DD      00000000         ;  Struct 'IMAGE_IMPORT_DESCRIPTOR'
    11. 00401020   .  00000000          DD      00000000
    12. 00401024   .  00000000          DD      00000000
    13. 00401028   .  00000000          DD      00000000
    14. 0040102C   .  00000000          DD      00000000
    15. 00401030   .  6B 65 72 6E 65 6C>ASCII   "kernel32.dll",0
    16. 0040103D > .  [b]1AE03A79[/b]          DD      793AE01A         ; kernel32.ExitProcess
    17. 00401041      00000000          DD      00000000
    18. 00401045      00                DB      00
    19. 00401046      00                DB      00
    20. 00401047   .  45 78 69 74 50 72>ASCII   "ExitProcess",0
    21. ============================================================================================


    Тут я разделил вверху код , а ниже импорт (один из его видов) . Команда по адресу 00401002 (CALL [40103D]) генерируеться компилером , и четыре байта по адресу 0040103D до загрузки модуля пустые (нули) , а при загрузке его в память туда проставляеться реальный адрес ф-ции (т.е. у меня 793AE01A соотв. ExitProcess)
     
  12. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Ещё может работать и так , но не везде :)
    Код (Text):
    1. 00401000 >/$  6A 00       PUSH 0        ; /ExitCode = 0
    2. 00401002  \.  E8 13D0FA78 CALL 793AE01A ; \ExitProcess
     
  13. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    bagrus.



    1)

    Спасибо, что объясняешь,но я не могу понять цепочку передачи уп-

    равления, т.е. на 00401002 call, но ведь на 0040103D стоит та-

    кое значение 1AE03A79, а это далеко не jmp или call! Следовате-

    льно наверняка есть демон, который следит за обращением к этой

    области и переправляет по адресу указанному адресу.

    Прав ли я?

    И в какой момент в игру вступает функция GetProcAdress?



    2)

    Плюс если msgbox.exe из 2 урока Исцелителя компилится с помощью

    ml.exe, а он не call dword использует, а call->jmp dword! Как

    сделать так, что бы он сделал первый случай?



    3)

    В досе я люблю делать модификацию в сегменте кода, в винде на

    сколько я понял в таблице секции поле characteristic надо пра-

    вить, но на какое значение, какое наиболее безопасно? Чтобы слу-

    чайно эту секцию не затерли.



    4)

    Как узнать по какому адресу загрузится функция из user32.dll, для

    случая bound импорта?

    Мои мысли спросил dumppe:

    Image Base 77E10000

    00026544 1C3 452 MessageBoxA



    т.е. MessageBoxA загрузится по IB+Rva=VA=77e36544

    Правильно? Olly говорит да, но ведь винде можит иногда не нравить-

    ся imageBase?



    В случае если я захочу сделать bound import, мне что все придется

    вручную?
     
  14. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    DevilsInterrupt



    1. Квадратные скобки там не зря , CALL [40103D] - это не "прыгнуть" по адресу 40103D , а "прыгнуть" по адресу который лежит в ячейке 40103D .

    GetProcAdress вступает во время загрузки модуля , именно по-этому мы должны хранить в импорте строковое наименование ф-ции и модуля (тут ExitProcess и kernel32.dll) , а результат от GetProcAdress загрузчик и запишет в ячейку 40103D .



    2. http://www.xmln.narod.ru/Masm32ex.htm
     
  15. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    >Квадратные скобки там не зря

    Сорри за тупость



    А второй вопрос слабо? Плюс тему Дизассембирование смотрел?



    На Третий вопрос ответ начал получать исследуя Aspack, точнее че он "натворил" с моей msgbox.exe Тама и увидел вопросы по теме дизассемблирование ;) Прикольные вещи, но легко увидеть. Кстати твой линк у меня 404 дает



    И как по поводу 4го квеста?
     
  16. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Я тебе говорил - восемь раз , разными предложениями задавать один вопрос , чтобы можно было его понять . Слабо ? Буду тебя игнорировать пока не научишся .
     
  17. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Bagrus

    Извини за непонятливость! :dntknw:

    Постараюсь исправиться.



    Если сейчас взять 2 урок из Iczelion`a то если посмотреть через Hiew можно увидеть такие байты вроде ff 25 [adress], т.е. вызов функции идет через цепочку call -> jmp dword [adress].

    А как сделать мне, что бы скомпилировалось приложение и там вместо этой цепочки сразу было call dword[adress]?



    ЗЫ: Не сердись постарался испаравиться и написать по норме.
     
  18. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Тю , погуглил бы по слову "Masm32ex" и скачал , там батник тебе всё сам переделает в масме , а вчера ещё линк работал , странно .
     
  19. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    хттп :// pagead2.googlesyndication.com/pagead/ads?client=ca-pub-43445871 53322062&dt=1096275839734&alternate_ad_url=http%3A%2F%2Fb.softbn.ru%2Fsoftsearch.ru.shtml&format=468x60_as&output=html&channel=8336146160&url=http%3A%2F%2Fsoft-search.pp.ru%2Fprograms%2F46-633-masm32ex-download.shtml&color_bg=ECF8FF&color_text=6F6F6F&color_link=0000CC&color_url=008000&color_border=B4D0DC&ad_type=text_image&ref=http%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3DMasm32ex%26sourceid%3Dopera%26num%3D0%26ie%3Dutf-8%26oe%3Dutf-8&u_h=600&u_w=800&u_ah=570&u_aw=800&u_cd=32&u_tz=240&u_his=1&u_java=true&u_nplug=7&u_nmime=135





    Ты про это говорил? :))))
     
  20. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine