Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 9

Как откладчики и дебагеры распознают строки асм кода?

28.01.2015, 07:49. Показов 993. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос таков как откладчики и дебагеры распознают строки асм кода?
Пишу программу которая расчитывает овсеты с программы и иногда когда офсета (нет или попросту 0)
он продолжает считать
подскажите как исправить это
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2015, 07:49
Ответы с готовыми решениями:

Обьеденение кода на С++ с Асм файлом
Доброго времени суток! Возникла проблема со следующим заданием: Считать 2 числа с помощью С++ Передать их в функцию на ассемблере ...

Hello, world на с++, с использованиям кода асм.
Нужен пример на с++ но с использованиям кода асм...

Анонимность в сети. Как меня распознают ?
Применяю прокси и чищу куки, а сайт меня все равно определяет. Как это получается? Как этого избежать?

11
21 / 21 / 12
Регистрация: 08.01.2015
Сообщений: 66
28.01.2015, 08:35
Примерно так -
http://ref.x86asm.net/coder32.html

Честно не понял что именно вы хотите сделать, если трассировать программу до определенного места, видимо вам надо отслеживать все опкоды ветвления(jmp, je, jne, jz, jc итп...)
0
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 9
28.01.2015, 13:11  [ТС]
Принцип таков что я беру определённый адресс и высчитываю из него овсет но как я уже писал иногда овсета нет и он считает все остальные байты как овсет
0
21 / 21 / 12
Регистрация: 08.01.2015
Сообщений: 66
28.01.2015, 14:21
Цитата Сообщение от RPO_100_CeM Посмотреть сообщение
я беру определённый адресс
OK

Цитата Сообщение от RPO_100_CeM Посмотреть сообщение
и высчитываю из него овсет
Офсет это смещение одного адреса по отношению к другому. Относительно чего или к чему высчитывается офсет? А главное зачем?

Цитата Сообщение от RPO_100_CeM Посмотреть сообщение
но как я уже писал иногда овсета нет
Между двумя идентичными адресами офсета не бывает.

Цитата Сообщение от RPO_100_CeM Посмотреть сообщение
и он считает все остальные байты как овсет
Кто он? Какие остальные байты?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
28.01.2015, 14:51
Цитата Сообщение от RPO_100_CeM Посмотреть сообщение
Вопрос таков как откладчики и дебагеры распознают строки асм кода?
Тоже хотелось бы понять, что имел в виду афтор
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
28.01.2015, 20:28
Цитата Сообщение от RPO_100_CeM Посмотреть сообщение
Вопрос таков как откладчики и дебагеры распознают строки асм кода?
Машинные инструкции формируются по четко определенным правилам,
все это есть в мануалах Intel и AMD.

P.S.
Правильно писать "отладчик", а не "откладчик".
0
Заблокирован
28.01.2015, 20:39

Не по теме:

Цитата Сообщение от Убежденный Посмотреть сообщение
"откладчик"
:D



Цитата Сообщение от Убежденный Посмотреть сообщение
Машинные инструкции формируются по четко определенным правилам,
все это есть в мануалах Intel и AMD.
А разве дизассемблированный вид кода при отладке не есть автосгенерированный и чисто отладчико зависимый, а не процессоро зависимый? Ведь даже если писать код на MASM, компильнуть, а потом дизассемблером на него полгядеть, там же будут сто пудово совсем другие инструкции и в других последовательностях, отличных от написанного кода на MASM.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
28.01.2015, 21:16
Цитата Сообщение от DukeNukem Посмотреть сообщение
А разве дизассемблированный вид кода при отладке не есть автосгенерированный и чисто отладчико зависимый, а не процессоро зависимый?
Не понял вопроса. Как может быть, к примеру, инструкция mov отладчико-зависимой ?

Цитата Сообщение от DukeNukem Посмотреть сообщение
Ведь даже если писать код на MASM, компильнуть, а потом дизассемблером на него полгядеть, там же будут сто пудово совсем другие инструкции и в других последовательностях, отличных от написанного кода на MASM.
Скажи нет invoke и прочим макросам !
0
3178 / 1937 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
28.01.2015, 21:17
Цитата Сообщение от RPO_100_CeM Посмотреть сообщение
распознают строки
На сайте z0mbie посмотрите раздел length-disassembler.
0
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 9
29.01.2015, 08:14  [ТС]
Ну похоже придётся пример приводить:
Беру любой кусок асм кода

FF 44 24 1C - inc [esp+1C]
89 4C 24 60 - mov [esp+60],ecx
8B 8C 24 30020000 - mov ecx,[esp+00000230]
81 F1 B3EA15D0 - xor ecx,D015EAB3
89 44 24 5C - mov [esp+5C],eax
33 ED - xor ebp,ebp

Укажываю например адресс на этот кусочек
8B 8C 24 30020000 - mov ecx,[esp+00000230]

Код таков код считает с 2 байта
C++
1
printf(fmt,((ByteOlolo[2]|ByteOlolo[3]<<8|ByteOlolo[4]<<16)));
он выдаст мне значение 230

но если я беру например

8B D0 - mov edx,eax
8B 44 24 18 - mov eax,[esp+18]
03 08 - add ecx,[eax]
13 50 04 - adc edx,[eax+04]

он просто пишет из следующих байт овсет 8B 44 24 Хотя строчка ужэ конилась и мне не нужно считать овсет потому что его там нет поетому я хочу понять как можно это предотвратить или же узнать как заставить код распозновать строки асм
0
21 / 21 / 12
Регистрация: 08.01.2015
Сообщений: 66
29.01.2015, 18:59
Что-либо понять из этого кода не представляется возможным -
Assembler
1
2
3
4
5
6
FF 44 24 1C - inc [esp+1C]                                   ;Инкремент по адресу [esp+1c] Куда показывает esp и где он стек вообще неясно
89 4C 24 60 - mov [esp+60],ecx                            ; Тоже, неизвестно куда в стек+60 записываем ecx с неизвестным смыслом
8B 8C 24 30020000 - mov ecx,[esp+00000230]        ; В есх пишем значение из стека со смещением 0х230
81 F1 B3EA15D0 - xor ecx,D015EAB3                      ; ??? Шифруем ecx 
89 44 24 5C - mov [esp+5C],eax                            ; eax пишем куда-то в стек
33 ED - xor ebp,ebp                                             ; ebp = 0
Я ничерта не понял что это все значит.

Добавлено через 58 секунд
Цитата Сообщение от RPO_100_CeM Посмотреть сообщение
Укажываю например адресс на этот кусочек
8B 8C 24 30020000 - mov ecx,[esp+00000230]
Код таков код считает с 2 байта
Код C++
1
printf(fmt,((ByteOlolo[2]|ByteOlolo[3]<<8|ByteOlolo[4]<<16)));

Ololo!

Добавлено через 1 час 25 минут
Цитата Сообщение от Убежденный Посмотреть сообщение
Скажи нет invoke и прочим макросам !
Дык все х86-x64 инструкции и есть по сути макросы, транслируемые процессором в RISC набор.
0
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 9
29.01.2015, 20:42  [ТС]
Всем спасибо решил проблему
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2015, 20:42
Помогаю со студенческими работами здесь

Переставить в строке элементы на четных позициях и не четных
Здравствуйте, помогите пожалуйста, дали задание, нужно переставить в строке элементы на четных позициях и не четных...например так: ...

Заменить символы на чётных местах в строке на "2"
Здравствуйте, помогите разобраться вот с таким заданием. Задана строка, нужно циклом ее пробежать и заменить символы на чётных местах на 2,...

USB-порты не распознают устройства
Здравствуйте! Поготите разобраться. Поставил Windows XP с нуля а USB-порты не распознают устройства. В чем проблема? Если вставить пишет...

Программы не правильно распознают символ
Итак, есть документ .doc в котором отображается знак евро (€) в место знака крышка (^), который ставиться над символами. Отображается он не...

Как переделать код под асм
Здравствуйте, ребята! Помогите, пожалуйста переделать функцию под ассемблер.. function Scan(base: Cardinal; size: Cardinal; sign:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru