Сейчас на форуме: tyns777, bezumchik, Lohmaty (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Ничего не делающие команды ассемблера
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: 0.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 14 декабря 2018 07:46
· Личное сообщение · #1

Подскажите пустые (ничего не делающие) инструкции ассемблера.
Аналоги команды NOP.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 20 марта 2019 14:50 · Поправил: Gideon Vi
· Личное сообщение · #2

e_sergey пишет:
Что за отладчик - можно назвать ?


первый скрин из x64dbg, второй из ольги. На скринах то, что нужно сделать у себя, чтобы перестать переживать из-за левых исключений.



Добавлено спустя 2 минуты
e_sergey пишет:
Можно заменить все CC на 90 ?


нет. Кроме того, отладчики не обязаны использовать int 3, это свободная страна.



Ранг: 13.6 (новичок), 1thx
Активность: 0.080
Статус: Участник

Создано: 20 марта 2019 15:28 · Поправил: e_sergey
· Личное сообщение · #3

e_sergey пишет:
друга это вопросы , которые возникают в процессе изучения .
я вижу эти прерывания в x64bdg когда делаю трассировку с заходом



freudz пишет:
уморил! ))))
мам... это не я! это пацаны код отлаживали, я просто рядом гуглил!..


что тут такого уморного , да и про пацанов - сам себе придумал ,
а за ссылки и поисковые запросы и где почитать - спасибо большое !

Gideon Vi пишет:
то, что нужно сделать у себя


понял , ок



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 20 марта 2019 16:30
· Личное сообщение · #4

freudz пишет:
судять по твоим постам выше, "ничегонеделающие" int 3 - это заполнение гапов между кодом для выравнивая функций
- непохоже, уж чему чему а даже говеный отладчик туда не заходит.
Парень похоже наткнулся на элементарные (или несовсем) методы защиты от отладки.



Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 20 марта 2019 18:39
· Личное сообщение · #5

e_sergey пишет:
вот например --> Link <--
калашников стр 165 - литература рекомендуемая на форуме



книжка говно имхо
структура ужас, в создании циклов идёт инфа про адресацию
какие то сегменты и реал моды... падал прошлогодний снег




Добавлено спустя 5 минут
третья часть из двух про дос вирусы резиденты с дос прерываниями

Добавлено спустя 7 минут
учи лучше базы С и добавляй "Введение в крэкинг с помощью OllyDbg"



Ранг: 13.6 (новичок), 1thx
Активность: 0.080
Статус: Участник

Создано: 20 марта 2019 18:58
· Личное сообщение · #6

Вот сколько интов , например, в екзешнике



к чему они там и какои смысл их таком количестве
и так не в одном месте

hash87szf пишет:
книжка говно имхо


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




Ранг: 69.9 (постоянный), 83thx
Активность: 0.140.73
Статус: Участник

Создано: 20 марта 2019 19:02
· Личное сообщение · #7

e_sergey пишет:
Вот сколько интов , например, в екзешнике

Скорее всего "Оно для выравнивания может использоваться и не исполняется."

e_sergey пишет:
и в большей части про асмы

Внезапно. А как вы собираетесь дебажить, не зная асма? дебагер типа hex rays еще не придумали, разве что свое отлаживать в студии.



Ранг: 13.6 (новичок), 1thx
Активность: 0.080
Статус: Участник

Создано: 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 строк
если бы я сам не писал это - наврятли бы смог наити что и где происходит




Ранг: 69.9 (постоянный), 83thx
Активность: 0.140.73
Статус: Участник

Создано: 20 марта 2019 19:48
· Личное сообщение · #9

e_sergey
поэтому и надо кодить на Асме, там в дебагере сразу видно свой код. А компилеры (студия особенно) вставляет миллион строк говна, CRT, стековые куки, исключения С++ и прочая, и прочая. Можно (и нужно) все это отключать, но - это тоже надо изучать. Отключите вы вот default lib, а студия заругается, что нет мемсета и не соберется.

Надо изучить основы Асма, в идеале бы уроки Нарвахи или еще что. Литературы много на самом деле.

Добавлено спустя 1 минуту
e_sergey пишет:
А про свое отлаживать в студии - тоже не совсем корректно

я имел ввиду студийный отладчик (который по F10 доступный), там все гораздо проще, чем во всяких олях , но чужие проги им не особо подебажишь. А так- пошагово, показывает все переменные, не надо Асм знать.



Ранг: 13.6 (новичок), 1thx
Активность: 0.080
Статус: Участник

Создано: 20 марта 2019 19:55
· Личное сообщение · #10

Нарваху читаю




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 20 марта 2019 19:58
· Личное сообщение · #11

e_sergey пишет:
если бы я сам не писал это - наврятли бы смог наити что и где происходит

Свое собственное мало кто в нестудийном дебаггере отлаживает, накрайняк .pdb подключают, иначе заблудятся. Декомпиль опять же хексрейзовский есть на совсем крайний случай. Поэтому ассемблер никому никуда не впился. Как небольшой лайфхачик - вставленный в программу MessageBeep может маякнуть в ольгу нужный участок кода, если отлаживаешь свою программу.

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 20 марта 2019 20:10
· Личное сообщение · #12

e_sergey

Инты вместо нопов, по всем нопам управление пройти может, а по интам не пройдёт. Фишка такая защиты, что бы управление абы куда не шло. Но всё равно это для выравнивания.

-----
vx




Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 20 марта 2019 20:24
· Личное сообщение · #13

имхо в x86 32 bit вендах это совсем не для выравнивания, а для хотпатчинга
nop/int
nop/int
nop/int
nop/int
nop/int
mov edi,edi

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

Добавлено спустя 1 минуту
f13nd пишет:
Как небольшой лайфхачик - вставленный в программу MessageBeep int3 может маякнуть в ольгу нужный участок кода, если отлаживаешь свою программу.




Ранг: 13.6 (новичок), 1thx
Активность: 0.080
Статус: Участник

Создано: 20 марта 2019 20:29
· Личное сообщение · #14

Спасибо страна за советы
Есть несколько уже своих зацепок , недели как 2 плотно после работы и до пол ночи сижу
Ситуация примерно следующая , я вижу что "моя" длл копирует на свои адреса код функций например стандартной длл от виндовс .
Далее, перед тем как в адрес загрузятся определенные ( только несколько ) другие длл или екзе , которые, как я думаю используются для проверки валидности приложения, ещё до загрузки этих длл или экзе - хотя адреса у них относительные в памяти , но в определенные , все время в одни и те же , если считать смещение от начала области памяти , куда грузится длл или экзе , на точки входа в эти длл и экзе ставятся точки останова (но в эти адреса ещё ничего не загружено ) , и я так понимаю , что ставит их "моя длл " После чего в эту область загружается нужная длл или экзе и уже отладчик , в котором я указал ставить точки остановка на входе , говорит мне повторно что точка остановка поставлена на адрес ...




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 20 марта 2019 20:29 · Поправил: f13nd
· Личное сообщение · #15

hash87szf
Твой int3 сделает программу нерабочей, если сех не справится.

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 20 марта 2019 20:37 · Поправил: difexacaw
· Личное сообщение · #16

e_sergey

> "моя" длл копирует на свои адреса код функций например стандартной длл от виндовс .

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

> Далее, перед тем как в адрес загрузятся определенные...

Сформулируйте иначе, я ничего не понял

-----
vx




Ранг: 64.9 (постоянный), 47thx
Активность: 0.120.02
Статус: Участник

Создано: 20 марта 2019 20:43
· Личное сообщение · #17

jit дебагер не ловит? я давно инты так не вставлял



Ранг: 13.6 (новичок), 1thx
Активность: 0.080
Статус: Участник

Создано: 20 марта 2019 20:48
· Личное сообщение · #18

difexacaw пишет:
не понял


например вот так - запись из журнала x64dbg
Точка останова по адресу 00007FFA000110B0 (DllMain (shcore.dll)) установлена!
DLL загружена: 00007FFA00010000 C:\Windows\System32\SHCore.dll
INT3 точка останова "DllMain (shcore.dll)" на <shcore.EntryPoint> (00007FFA000110B0)!




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 20 марта 2019 20:53 · Поправил: difexacaw
· Личное сообщение · #19

e_sergey

> что ставит их "моя длл "

Отладчик ловит события по срабатыванию ловушек, а не по их установке(запись в память). Поэтому это отладчик ставит туда останов и об этом сообщает.

Такое впечатление что ваша либа живёт своей жизнью". Рипает себе системный код, какие то точки останова ставит и вы не можете разобраться с этим

-----
vx




Ранг: 13.6 (новичок), 1thx
Активность: 0.080
Статус: Участник

Создано: 20 марта 2019 20:59 · Поправил: e_sergey
· Личное сообщение · #20

difexacaw пишет:
Рипает себе системный код, какие то точки останова ставит и вы не можете разобраться с этим

Абсолютно верно
Да и пробую разобраться , все верно , но пока не понимаю много чего .

Например что такое тлс коллбеки




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 20 марта 2019 21:01
· Личное сообщение · #21

e_sergey

Тогда получается что эта либа не ваша. Признавайтесь что вы реверсите.

-----
vx




Ранг: 13.6 (новичок), 1thx
Активность: 0.080
Статус: Участник

Создано: 20 марта 2019 21:03
· Личное сообщение · #22

а я и написал "моя" в кавычках , имел ввиду ту , которую пытаюсь "раскурить" ...




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 20 марта 2019 21:07
· Личное сообщение · #23

e_sergey

И всё же интересно что за приложение.

> что такое тлс коллбеки

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

-----
vx




Ранг: 13.6 (новичок), 1thx
Активность: 0.080
Статус: Участник

Создано: 20 марта 2019 21:11
· Личное сообщение · #24

difexacaw пишет:
блок данных связанный с потоком. Колбек нужен для его выделения и инициализации

Это тоже есть в сообщениях журнала , потоки передаются либе ( как я понял) , а потом возвращаются из либы обратно на свой номер потока (если я верно понимаю )




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 20 марта 2019 22:50
· Личное сообщение · #25

e_sergey

> потоки передаются либе ( как я понял) , а потом возвращаются из либы обратно на свой номер потока (если я верно понимаю )

Рано вам этим походу заниматься, с таким пониманием. И вы не ответили на мой вопрос.

-----
vx





Ранг: 52.0 (постоянный), 146thx
Активность: 0.030.08
Статус: Участник

Создано: 21 марта 2019 08:40
· Личное сообщение · #26

morgot пишет:
поэтому и надо кодить на Асме, там в дебагере сразу видно свой код. А компилеры (студия особенно) вставляет миллион строк говна, CRT, стековые куки, исключения С++ и прочая, и прочая.

ИМХО не надо кодить на асме, это прошлый век... слишком платформо зависимо...
Уж лучше на си, если нужен минимализм. Платформо независимо, универсально, удобно, более легче читается/воспринимается. К тому же нормальные си компиляторы не многим уступают асму, а чем то даже и превосходят, т.к. учитывают больше особенностей архитектуры.

А студия ничего лишнего не включает, если нет обращения...
Переопределите точку входа и не будет вам ничего, совсем ничего...
(по умолчанию, точка входа указывает на CRT'шный [Win]Main, отсюда и весь хлам).

e_sergey
Не проще ли взять какой-нибудь анализатор типа «Detect It Easy» и натравить на него свою не свою dll, чтобы хотя-бы примерно понимать с чем имеете дело.



Ранг: 13.6 (новичок), 1thx
Активность: 0.080
Статус: Участник

Создано: 21 марта 2019 08:59 · Поправил: e_sergey
· Личное сообщение · #27

difexacaw пишет:
И вы не ответили на мой вопрос

Вы про реверсинг , дак я этого не скрывал .

UniSoft пишет:
хотя-бы примерно понимать с чем имеете дело.


Надо сначала общие принципы изучить и что то иметь из знании начальных .
Пока пытаюсь сделать только это .



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 21 марта 2019 09:18
· Личное сообщение · #28

h__p://prntscr.com/n0tm66 аж всплакнул) сколько я не видел этого окошка




Ранг: 52.0 (постоянный), 146thx
Активность: 0.030.08
Статус: Участник

Создано: 21 марта 2019 19:07 · Поправил: UniSoft
· Личное сообщение · #29

e_sergey пишет:
Вот сколько интов , например, в екзешнике

Только увидел скриншот, с работы почему-то не открывался.
Все просто, это x64 и к тому-же ntdll,
во первых там зарезервировано минимум 5 байт (возможно под патчи) в конце каждой функции (и именно в конце, можете посмотреть на первую и на последнюю функции),
а остальные для выравнивания, так чтобы все процедуры располагались по 16-байтному выравниванию.
Почему int3, все просто, потому-что этот код не должен выполняться,
и если вдруг, по каким либо причинам, окажемся на этом коде, должно быть вызвано исключение,
а не просто исполнение какого-то кода.

| Сообщение посчитали полезным: e_sergey
<< . 1 . 2 .
 eXeL@B —› Вопросы новичков —› Ничего не делающие команды ассемблера
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати