Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на Ассемблере как общего так и конкретного характера.
 
важное примечание
для тех кто считает, что здесь место халявных исполнений курсовых и лабораторных работ.
тут обычно помогают тем, кто сам хоть что-то пытается понять и сделать, но что-то не понимает, что-то не получается...
ведь ассемблер изучают и задачки на нём дают обычно не менеджерам по продажам и даже не всем физ.-мат. специальностям
вы сами избрали этот путь? вот и идите по нему сами, ножками... с ручками и с головой...
 
короче, тут не сборище придурков-альтруистов, которым нечего делать и они ждут-не дождутся когда вы их попросите
что-то сделать _за_ вас
если позарез надо и вы даже готовы заплатить, тогда вам сюда
удачи
 
некоторые ресурсы
http://www.wasm.ru/ Самый популярный русскоязычный ресурс. https://wasm.in/
Ассемблер - книги (ASM, Assembler)
 
Просьба все большие листинги оформлять тегом more.
 
если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:42 29-11-2006 | Исправлено: akaGM, 17:44 11-06-2020
cp58

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
Надежнее через inject перехватывать CreateWindowEx, а дальше уже заменять extended тип на нужный.
A1exSun

Код:
xor dx,dx

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 21:11 21-03-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cp58
Пробовал - не помогло
На 10 делиться, на 100 - нет.
На BH делит, на BL нет Оо
Понял в чем ошибка. В BL изменилось значение...

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 21:29 21-03-2012 | Исправлено: A1exSun, 21:39 21-03-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Надежнее через inject перехватывать CreateWindowEx, а дальше уже заменять extended тип на нужный.  

была и такая мысля - минусы это перехватит все окна, а не только программ которые надо. а как сбрасывать расширенные стили это какая то часть битов флага?

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:53 21-03-2012
cp58

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
Это первый параметр в функции CreateWindowEx - dwExStyle, можно попробовать передать 0 или вызвать CreateWindow, параметры у них идентичные(за отсутствием dwExStyle).

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 22:05 21-03-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cp58
сенкс

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 22:54 21-03-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как сравнять AX с элементом массива mas, номер которого в DX?
cmp ax, mas+dx не катит
 

Код:
mov si, dx
cmp al, byte ptr [mas+dx]

Так что ли.

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 22:54 21-03-2012 | Исправлено: A1exSun, 22:57 21-03-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не так низя. можно только целочисленный параметр прибавить. можно командой lea адрес вычилить

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 23:21 21-03-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
cmp al, byte ptr [mas+si] работает. Не то написал выше...

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 23:34 21-03-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а может быть регистры в этом случае разные

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 23:39 21-03-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
люди, чета не соображу. если хук удаленный, его надо пихать в дллку. вот я запускаю програмку, она грузит дллку, получает ее адрес в памяти, адрес хук функции в ней, устанавливает хук на окно другого приложения и.... дальше что делать, приложение закрыть? тогда наверно дллка выгрузится, но она вроде должна отразится в память того процесса, а как хук снимать когда то окно закроется - он автоматом скинется с закрытием того приложения?
 
*если дллку не делать ошибка возникает при вызове хука
 
Добавлено:
может дллку надо грузить в контексте того процесса который хукаецтся?

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 12:54 22-03-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 17:01 22-03-2012 | Исправлено: A1exSun, 18:07 22-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
Дэлэлэлку мохно не ледать - хукается, но при вводе пароля затребует права админа.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 20:02 22-03-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну хукается, только каждый раз при перехвате ошибка выскакивает. я с дллкой уже сделал все отлично работает. правда того чего хотел не смог добится

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 20:13 22-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz Хотеть не вредно главное конкретно хотеть чтоб другие поняли.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 20:39 22-03-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
мне надо чтоб у приложения вместо диалогового окна SHBrowseForFolder с флагом BIF_USENEWUI открывалось диалоговое окно с флагом BIF_RETURNONLYFSDIRS.  
 
 
 
сейчас я на стадии такой - сделал дллку, хукнул приложение, и когда оно вызывает это диалоговое окно, я вывожу свое с нужным флагом, а теперь пытаюсь обмануть апи функцию чтоб возвращаемое значение ей подсунуть из моего. кручусь вообщем в потоке сообщений

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 20:47 22-03-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
    search:
    repe cmpsb
    je not_edit
    mov str1[bx], 'x'
    mov str1[bx], 'x'
    not_edit:
    inc bx
    loop search

Почему CX становиться меньше нуля и выходит бесконечный цикл?
Хочу все неравные элементы в str1 и str2 заменить на 'x'.

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 23:51 22-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A1exSun
а можно на код до "search:" глянуть?
 
+
 
  mov str1[bx], 'x'
  mov str1[bx], 'x'  
 
почему два раза?
 
+
 
насколько я помню,
"repe" само по СХ работает, а ты его на loop ещё зарядил
т.е. я бы префикс repe убрал...

Всего записей: 24121 | Зарегистр. 06-12-2002 | Отправлено: 00:22 23-03-2012 | Исправлено: akaGM, 00:32 23-03-2012
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A1exSun

Цитата:
Почему CX становиться меньше нуля и выходит бесконечный цикл?

Потому, надо полагать, что loop сначала декрементирует CX, и только потом проверяет на 0. С loop тщательнЕе надо.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 00:32 23-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A1exSun
я понял твою логику и, наверное, неправ...
твой CX -- общая длина строки, и счётчик сквозной, так? тогда лучше вставить "выпрыг" по jcxz внуть цикла...

Всего записей: 24121 | Зарегистр. 06-12-2002 | Отправлено: 00:41 23-03-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM

Цитата:
  mov str1[bx], 'x'  
   mov str1[bx], 'x'

Второй раз - str2.

Цитата:
"repe" само по СХ работает, а ты его на loop ещё зарядил

У меня repe как бы внутренний цикл поиска неравных элементов... Нашел - заменяю их и дальше в цикл
Abs62
Перед loop сделать проверку CX?
 
Добавлено:
akaGM

Цитата:
тогда лучше вставить "выпрыг" по jcxz внуть цикла

Сделал, работает.
Только вот почему строки не правит?.. (x не пишет)

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 00:42 23-03-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru