Русский / Russian English / Английский

Сейчас на форуме: (+5 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

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

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

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

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


Ранг: 1122.0 (!!!!)
Статус: Участник

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

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


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



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


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

Ранг: 13.6 (новичок)
Статус: Участник

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

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



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


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

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


понял , ок

Ранг: 324.7 (мудрец)
Статус: Участник
ILSpector Team

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

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

Ранг: 65.0 (постоянный)
Статус: Участник

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

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



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




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

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

Ранг: 13.6 (новичок)
Статус: Участник

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

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



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

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


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

Ранг: 45.7 (посетитель)
Статус: Участник

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

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

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

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

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

Ранг: 13.6 (новичок)
Статус: Участник

Создано: 20 марта 2019 19:38 New!
Цитата · Личное сообщение · #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 строк
если бы я сам не писал это - наврятли бы смог наити что и где происходит

Ранг: 45.7 (посетитель)
Статус: Участник

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

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

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

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

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

Ранг: 13.6 (новичок)
Статус: Участник

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

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


Ранг: 246.0 (наставник)
Статус: Участник

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

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

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


Ранг: 326.7 (мудрец)
Статус: Участник

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

e_sergey

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

Ранг: 65.0 (постоянный)
Статус: Участник

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

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

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

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

Ранг: 13.6 (новичок)
Статус: Участник

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

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


Ранг: 246.0 (наставник)
Статус: Участник

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

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


Ранг: 326.7 (мудрец)
Статус: Участник

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

e_sergey

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

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

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

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

Ранг: 65.0 (постоянный)
Статус: Участник

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

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

Ранг: 13.6 (новичок)
Статус: Участник

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

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


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


Ранг: 326.7 (мудрец)
Статус: Участник

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

e_sergey

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

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

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

Ранг: 13.6 (новичок)
Статус: Участник

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

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

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

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


Ранг: 326.7 (мудрец)
Статус: Участник

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

e_sergey

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

Ранг: 13.6 (новичок)
Статус: Участник

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

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


Ранг: 326.7 (мудрец)
Статус: Участник

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

e_sergey

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

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

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

Ранг: 13.6 (новичок)
Статус: Участник

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

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

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


Ранг: 326.7 (мудрец)
Статус: Участник

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

e_sergey

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

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


Ранг: 50.6 (постоянный)
Статус: Участник

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

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

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

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

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

Ранг: 13.6 (новичок)
Статус: Участник

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

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

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

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


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

Ранг: 324.7 (мудрец)
Статус: Участник
ILSpector Team

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

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


Ранг: 50.6 (постоянный)
Статус: Участник

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

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

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

| Сообщение посчитали полезным: e_sergey

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

Видеокурс ВЗЛОМ