_Chiganchkug_ по используй мой последний зип в этой теме можешь скажешь, имеет ли погрешности шифрования прога, по мимо того, что могут совпадаться 64битные блоки
Господа виндовщики и любители wasm`a! изучая урок 3 из туториалов Iczelion`a у меня возник вопрос что же на самом деле делает функция CreatyWindow? Читаю доку там передать тип окна и получишь банан, а что именно и как банан получается ни слова? Я предполагаю, что в выделенной области памяти рисуется пиксель за пикселем, одна строка, потом другая и так все окно. Т.е. это как при распечатывании матричным принтером. вопрос) Прав ли я? Логично если это действительно так происходит иначе больше смысла не вижу. ;--------------------------------------------------------- Далее второй вопрос. Когда в игру вступает работа видеокар- ты? Насколько я полагаю - в ShowWindow. ;--------------------------------------------------------- Третий вопрос после того как мы отобразили окно, мы можем подвести курсор к краям окна и появится что то вроде этого: "<->" и этим символом мы можем изменить размер окна. ГДе в коде место на это действие? Я не увидел. Вижу токо UpDateWindow, но оно не в цикл сообщений, ни в процедуру окна не входит. Где правда? ЗЫ: это что бы несоздавать новый топик: Я пробую убрать один вызов в проге, но мне бы хотелось чтобы с помощью какой нить проги можно было проследить все вызовы апи, без указания их параметров, токо сами в функции. К примеру я захожу в прогу нажимаю лицензия, далее появляет- ся меню для ввода пароля, как мне с этого места проследить все вызовы? Прошу не материть и не банить,т.к. винду токо начал изучать. APISpy, не предлагать, что то она мне не понравилась + посоветуйте пожалуйста на будущее, что сделать для автома- тизации создания окна. Чтобы не писать здоровый код в каждой проге, может уже есть у кого готовые и удобные макросы?
Блин, хорош смеяться просто эта голова, в смысле моя, задолбала генерировать колоссальное количество вопросов. А вот как не пытался увличить скорость генерации ответов, попытки весьма плачевны!
EvilsInterrupt > + посоветуйте пожалуйста на будущее, что сделать для автома- тизации создания окна. Чтобы не писать здоровый код в каждой проге, может уже есть у кого готовые и удобные макросы? А нарисовать в ресурс-редакторе тебя не устроит?
EvilsInterrupt Эта дока написана для тех, кто знает что такое об'ектно-ориентированное программирование, что такое классы , об'екты, свойства (property) и методы(method). Просто у об'екта окно есть куча методов, которые реализованы в системных DLL - например , реакция на мышу. Поэтому выбирай : или читать долго-долго толстые книжки или программировать наощупь. Именно этим мне и не нравится эта технология
Ответ получил на rusfaq.ru В моей теме "прошу помочь найти выход" товарищ bagrus показал импортирование без jmp`ов, но мне до сих пор не понятен механизм импортирования. в указанной теме есть ff 25 [адрес] если проследить по этому переходу,то попадаю в секцию .rdata на сколько понимаю секцию импорта. Но если посмотреть в отладчике, управление передается в верхний адрес, т.е. в dll а не в секцию импорта. Как это происходит? В статьях как в джунглях гуляю, среди хинтов и намеков каких то да и всякие image_discryptor_import ясности тоже не вносят
Гм... Насколько я понял (сам только второй день изучаю кодинг под WIN32) Там в стек пихаюцца парпметры, идет вызов в.... как ето вы называете... секцию импорта, а там просто стоит jmp куда - то в kernel32.dll... Вся эта лабуда хорошо просматривается td32 (Borland rulezz forever!!!!!!)
Т.е. как мне кажется в "секции импорта" строковые названия заменяются на конкретные адреса... Насчет объектно ориентированного программирования... эх, видно, что человек не юзал в прошлом тысячелетии Turbo Vision... Я так думаю, что графическое окно и процесс - абсолютно разные сущности, графика - сама по себе, просто при воздействии на нее тебе (т.е. процессу) посылаются "события" или "сообщения". Сие есть принцип разделения визуальных копонентов и обработки данных.
Ну мысль почти правильная , см. подробней . Код (Text): ====================================================================== ====================== 00401000 >/$ 6A 00 PUSH 0 ; /ExitCode = 0 00401002 \. FF15 3D104000 CALL [40103D] ; \ExitProcess ====================================================================== ====================== 00401008 . 00000000 DD 00000000 ; Struct 'IMAGE_IMPORT_DESCRIPTOR' 0040100C . 00000000 DD 00000000 00401010 . 00000000 DD 00000000 00401014 . 30100000 DD 00001030 00401018 . 3D100000 DD 0000103D 0040101C . 00000000 DD 00000000 ; Struct 'IMAGE_IMPORT_DESCRIPTOR' 00401020 . 00000000 DD 00000000 00401024 . 00000000 DD 00000000 00401028 . 00000000 DD 00000000 0040102C . 00000000 DD 00000000 00401030 . 6B 65 72 6E 65 6C>ASCII "kernel32.dll",0 0040103D > . [b]1AE03A79[/b] DD 793AE01A ; kernel32.ExitProcess 00401041 00000000 DD 00000000 00401045 00 DB 00 00401046 00 DB 00 00401047 . 45 78 69 74 50 72>ASCII "ExitProcess",0 ============================================================================================ Тут я разделил вверху код , а ниже импорт (один из его видов) . Команда по адресу 00401002 (CALL [40103D]) генерируеться компилером , и четыре байта по адресу 0040103D до загрузки модуля пустые (нули) , а при загрузке его в память туда проставляеться реальный адрес ф-ции (т.е. у меня 793AE01A соотв. ExitProcess)
Ещё может работать и так , но не везде Код (Text): 00401000 >/$ 6A 00 PUSH 0 ; /ExitCode = 0 00401002 \. E8 13D0FA78 CALL 793AE01A ; \ExitProcess
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, мне что все придется вручную?
DevilsInterrupt 1. Квадратные скобки там не зря , CALL [40103D] - это не "прыгнуть" по адресу 40103D , а "прыгнуть" по адресу который лежит в ячейке 40103D . GetProcAdress вступает во время загрузки модуля , именно по-этому мы должны хранить в импорте строковое наименование ф-ции и модуля (тут ExitProcess и kernel32.dll) , а результат от GetProcAdress загрузчик и запишет в ячейку 40103D . 2. http://www.xmln.narod.ru/Masm32ex.htm
>Квадратные скобки там не зря Сорри за тупость А второй вопрос слабо? Плюс тему Дизассембирование смотрел? На Третий вопрос ответ начал получать исследуя Aspack, точнее че он "натворил" с моей msgbox.exe Тама и увидел вопросы по теме дизассемблирование Прикольные вещи, но легко увидеть. Кстати твой линк у меня 404 дает И как по поводу 4го квеста?
Я тебе говорил - восемь раз , разными предложениями задавать один вопрос , чтобы можно было его понять . Слабо ? Буду тебя игнорировать пока не научишся .
Bagrus Извини за непонятливость! Постараюсь исправиться. Если сейчас взять 2 урок из Iczelion`a то если посмотреть через Hiew можно увидеть такие байты вроде ff 25 [adress], т.е. вызов функции идет через цепочку call -> jmp dword [adress]. А как сделать мне, что бы скомпилировалось приложение и там вместо этой цепочки сразу было call dword[adress]? ЗЫ: Не сердись постарался испаравиться и написать по норме.
Тю , погуглил бы по слову "Masm32ex" и скачал , там батник тебе всё сам переделает в масме , а вчера ещё линк работал , странно .
хттп :// 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 Ты про это говорил? )))