eXeL@B —› Вопросы новичков —› Ничего не делающие команды ассемблера |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 14 декабря 2018 07:46 · Личное сообщение · #1 |
|
Создано: 20 марта 2019 14:50 · Поправил: Gideon Vi · Личное сообщение · #2 e_sergey пишет: Что за отладчик - можно назвать ? первый скрин из x64dbg, второй из ольги. На скринах то, что нужно сделать у себя, чтобы перестать переживать из-за левых исключений. Добавлено спустя 2 минуты e_sergey пишет: Можно заменить все CC на 90 ? нет. Кроме того, отладчики не обязаны использовать int 3, это свободная страна. |
|
Создано: 20 марта 2019 15:28 · Поправил: e_sergey · Личное сообщение · #3 e_sergey пишет: друга это вопросы , которые возникают в процессе изучения . я вижу эти прерывания в x64bdg когда делаю трассировку с заходом freudz пишет: уморил! )))) мам... это не я! это пацаны код отлаживали, я просто рядом гуглил!.. что тут такого уморного , да и про пацанов - сам себе придумал , а за ссылки и поисковые запросы и где почитать - спасибо большое ! Gideon Vi пишет: то, что нужно сделать у себя понял , ок |
|
Создано: 20 марта 2019 16:30 · Личное сообщение · #4 |
|
Создано: 20 марта 2019 18:39 · Личное сообщение · #5 e_sergey пишет: вот например --> Link <-- калашников стр 165 - литература рекомендуемая на форуме книжка говно имхо структура ужас, в создании циклов идёт инфа про адресацию какие то сегменты и реал моды... падал прошлогодний снег Добавлено спустя 5 минут третья часть из двух про дос вирусы резиденты с дос прерываниями Добавлено спустя 7 минут учи лучше базы С и добавляй "Введение в крэкинг с помощью OllyDbg" |
|
Создано: 20 марта 2019 18:58 · Личное сообщение · #6 |
|
Создано: 20 марта 2019 19:02 · Личное сообщение · #7 e_sergey пишет: Вот сколько интов , например, в екзешнике Скорее всего "Оно для выравнивания может использоваться и не исполняется." e_sergey пишет: и в большей части про асмы Внезапно. А как вы собираетесь дебажить, не зная асма? дебагер типа hex rays еще не придумали, разве что свое отлаживать в студии. |
|
Создано: 20 марта 2019 19:38 · Личное сообщение · #8 morgot пишет: А как вы собираетесь дебажить, не зная асма Вот и пытаюсь понять на что нужно обратить внимание и что про что стоит читать А про свое отлаживать в студии - тоже не совсем корректно вот написал я длл тестовую принимающую на вход число с параметром и производящую над этим числом арифм деиствия в зависимости от параметра (стандартный пример) например сложить умножить разделить #include "stdafx.h" #include "MathFuncsDll.h" #include <stdexcept> using namespace std; namespace MathFuncs { double MyMathFuncs::Add(double a, double b) { return a + b; } double MyMathFuncs::Subtract(double a, double b) { return a - b; } double MyMathFuncs::Multiply(double a, double b) { return a * b; } double MyMathFuncs::Divide(double a, double b) { if (b == 0) { throw invalid_argument("b cannot be zero!"); } return a / b; } } скомпилил открыл в Ida - на импорте - 60 функций , на экспорт мои 4 Итого : более 140 000 строк если бы я сам не писал это - наврятли бы смог наити что и где происходит |
|
Создано: 20 марта 2019 19:48 · Личное сообщение · #9 e_sergey поэтому и надо кодить на Асме, там в дебагере сразу видно свой код. А компилеры (студия особенно) вставляет миллион строк говна, CRT, стековые куки, исключения С++ и прочая, и прочая. Можно (и нужно) все это отключать, но - это тоже надо изучать. Отключите вы вот default lib, а студия заругается, что нет мемсета и не соберется. Надо изучить основы Асма, в идеале бы уроки Нарвахи или еще что. Литературы много на самом деле. Добавлено спустя 1 минуту e_sergey пишет: А про свое отлаживать в студии - тоже не совсем корректно я имел ввиду студийный отладчик (который по F10 доступный), там все гораздо проще, чем во всяких олях , но чужие проги им не особо подебажишь. А так- пошагово, показывает все переменные, не надо Асм знать. |
|
Создано: 20 марта 2019 19:55 · Личное сообщение · #10 |
|
Создано: 20 марта 2019 19:58 · Личное сообщение · #11 e_sergey пишет: если бы я сам не писал это - наврятли бы смог наити что и где происходит Свое собственное мало кто в нестудийном дебаггере отлаживает, накрайняк .pdb подключают, иначе заблудятся. Декомпиль опять же хексрейзовский есть на совсем крайний случай. Поэтому ассемблер никому никуда не впился. Как небольшой лайфхачик - вставленный в программу MessageBeep может маякнуть в ольгу нужный участок кода, если отлаживаешь свою программу. ----- 2 оттенка серого |
|
Создано: 20 марта 2019 20:10 · Личное сообщение · #12 |
|
Создано: 20 марта 2019 20:24 · Личное сообщение · #13 имхо в x86 32 bit вендах это совсем не для выравнивания, а для хотпатчинга nop/int nop/int nop/int nop/int nop/int mov edi,edi мов еди,еди становится коротким джампом наверх, а пять байт хватает на лонг джамп куда хочем Добавлено спустя 1 минуту f13nd пишет: Как небольшой лайфхачик - вставленный в программу |
|
Создано: 20 марта 2019 20:29 · Личное сообщение · #14 Спасибо страна за советы Есть несколько уже своих зацепок , недели как 2 плотно после работы и до пол ночи сижу Ситуация примерно следующая , я вижу что "моя" длл копирует на свои адреса код функций например стандартной длл от виндовс . Далее, перед тем как в адрес загрузятся определенные ( только несколько ) другие длл или екзе , которые, как я думаю используются для проверки валидности приложения, ещё до загрузки этих длл или экзе - хотя адреса у них относительные в памяти , но в определенные , все время в одни и те же , если считать смещение от начала области памяти , куда грузится длл или экзе , на точки входа в эти длл и экзе ставятся точки останова (но в эти адреса ещё ничего не загружено ) , и я так понимаю , что ставит их "моя длл " После чего в эту область загружается нужная длл или экзе и уже отладчик , в котором я указал ставить точки остановка на входе , говорит мне повторно что точка остановка поставлена на адрес ... |
|
Создано: 20 марта 2019 20:29 · Поправил: f13nd · Личное сообщение · #15 |
|
Создано: 20 марта 2019 20:37 · Поправил: difexacaw · Личное сообщение · #16 e_sergey > "моя" длл копирует на свои адреса код функций например стандартной длл от виндовс . Секция кода может быть в памяти перемещена просто копированием. При этом указатели будут адресовать исходный модуль, иначе нужно релоцировать. Это часто используется для обхода изменений в кодовых секциях. > Далее, перед тем как в адрес загрузятся определенные... Сформулируйте иначе, я ничего не понял ----- vx |
|
Создано: 20 марта 2019 20:43 · Личное сообщение · #17 |
|
Создано: 20 марта 2019 20:48 · Личное сообщение · #18 |
|
Создано: 20 марта 2019 20:53 · Поправил: difexacaw · Личное сообщение · #19 e_sergey > что ставит их "моя длл " Отладчик ловит события по срабатыванию ловушек, а не по их установке(запись в память). Поэтому это отладчик ставит туда останов и об этом сообщает. Такое впечатление что ваша либа живёт своей жизнью". Рипает себе системный код, какие то точки останова ставит и вы не можете разобраться с этим ----- vx |
|
Создано: 20 марта 2019 20:59 · Поправил: e_sergey · Личное сообщение · #20 |
|
Создано: 20 марта 2019 21:01 · Личное сообщение · #21 |
|
Создано: 20 марта 2019 21:03 · Личное сообщение · #22 |
|
Создано: 20 марта 2019 21:07 · Личное сообщение · #23 |
|
Создано: 20 марта 2019 21:11 · Личное сообщение · #24 |
|
Создано: 20 марта 2019 22:50 · Личное сообщение · #25 |
|
Создано: 21 марта 2019 08:40 · Личное сообщение · #26 morgot пишет: поэтому и надо кодить на Асме, там в дебагере сразу видно свой код. А компилеры (студия особенно) вставляет миллион строк говна, CRT, стековые куки, исключения С++ и прочая, и прочая. ИМХО не надо кодить на асме, это прошлый век... слишком платформо зависимо... Уж лучше на си, если нужен минимализм. Платформо независимо, универсально, удобно, более легче читается/воспринимается. К тому же нормальные си компиляторы не многим уступают асму, а чем то даже и превосходят, т.к. учитывают больше особенностей архитектуры. А студия ничего лишнего не включает, если нет обращения... Переопределите точку входа и не будет вам ничего, совсем ничего... (по умолчанию, точка входа указывает на CRT'шный [Win]Main, отсюда и весь хлам). e_sergey Не проще ли взять какой-нибудь анализатор типа «Detect It Easy» и натравить на него |
|
Создано: 21 марта 2019 08:59 · Поправил: e_sergey · Личное сообщение · #27 |
|
Создано: 21 марта 2019 09:18 · Личное сообщение · #28 |
|
Создано: 21 марта 2019 19:07 · Поправил: UniSoft · Личное сообщение · #29 e_sergey пишет: Вот сколько интов , например, в екзешнике Только увидел скриншот, с работы почему-то не открывался. Все просто, это x64 и к тому-же ntdll, во первых там зарезервировано минимум 5 байт (возможно под патчи) в конце каждой функции (и именно в конце, можете посмотреть на первую и на последнюю функции), а остальные для выравнивания, так чтобы все процедуры располагались по 16-байтному выравниванию. Почему int3, все просто, потому-что этот код не должен выполняться, и если вдруг, по каким либо причинам, окажемся на этом коде, должно быть вызвано исключение, а не просто исполнение какого-то кода. | Сообщение посчитали полезным: e_sergey |
<< . 1 . 2 . |
eXeL@B —› Вопросы новичков —› Ничего не делающие команды ассемблера |