Сейчас на форуме: tyns777, cppasm, dutyfree, asfa (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Как быстро сравнить 2 функции в IDA ?
Посл.ответ Сообщение

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

Создано: 28 сентября 2016 15:19 · Поправил: olia64
· Личное сообщение · #1

Вопрос 1.
1. Дано два exe файла, в них 2 аналогичные функции, но они могут отличаться версиями или быть одинаковыми.
2. Как в IDA можно быстро сравнить эти фукнции? Типа левый клик посчитать хэш функции, calc->crc16 or md5
Скорее всего таких сложных приблуд в IDA нет, получается пункт3
3. Как снять дамп функции в IDA ?
PS. сейчас делаю так, захожу в hex окно, начало функции - конец функции и save to file делаю.
Потом приходится в hex редакторе notepad++ удалять вручную мусорные окончания неотносящиеся к области функции ( потому что копировать в hex окне можно кратно 16 байтам )

Вопрос 2. Уже сложнее.
Как в одном одном exe заменить функцию аналогичной из другого exe ?
Получается что нам нужен дамп нужной функции, каким то образом залить в свободный сегмент памяти и изменить CALL на нашу область?
Что делать если функция вызывает группу других функции внутри себя и её аналоги в другом exe тоже могут отличаться.

Суть вопроса в следующем.
Дано:
1) Клиент-сервер
2) Пакет шифруется ключем и с начальным вектором IV потому что AES CBC и уходит на сервер.
3) На сервере пакет дешифруется уже неправильно. Притом что и ключ и начальный вектор дешифрации совпадают с зашифрованными на клиенте.
Вопрос:
1) Могут ли не совпадать версии AES CBC функции шифрования? Или алгоритм 100% один вне зависимости от версии OpenSSL ?
2) Как узнать какая версия AES На сервере и на клиенте используется?
Проверяю на сайте клиенскую шифрацию
http://extranet.cryptomathic.com/aescalc
Пакеты на клиенте шифруются корректно. На сервере дешифруются некорретно.

PS: убедительно прошу помогать с ответами адекватных людей по теме вопроса без лишнего флуда, если вас мои вопросы новичка как то задеваю идите дальше...



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

Создано: 28 сентября 2016 16:27 · Поправил: unknownproject
· Личное сообщение · #2

Для вопросов по IDA есть отдельный тред.
--> https://exelab.ru/f/action=vthread&forum=1&topic=12507&page=46 <--

olia64 пишет:
Как в одном одном exe заменить функцию аналогичной из другого exe ?

Посчитать смещение относительно виртуального адреса и перезаписать N-ное кол-во байт.До этого сложно догадаться ? Ида для этой цели нужна ровно настолько, насколько обладает функционалом для нахождения пролога функции для замены.

olia64 пишет:
Что делать если функция вызывает группу других функции внутри себя и её аналоги в другом exe тоже могут отличаться.

Они итак будут отличаться, как минимум адресом.Патчить, что еще делать.

PS.
Ну а самого "Вас" уже слишком много для форума, так что молитесь своим богам, чтобы не быть забаненным.10 дней на форуме и уже всех замандил.

-----
TEST YOUR MIGHT




Ранг: 33.4 (посетитель), 24thx
Активность: 0.020
Статус: Участник

Создано: 28 сентября 2016 16:31 · Поправил: redlord
· Личное сообщение · #3

например:
__https://github.com/joxeankoret/diaphora

olia64 пишет:
Притом что и ключ и начальный вектор дешифрации совпадают

padding?



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

Создано: 28 сентября 2016 16:31
· Личное сообщение · #4

1. Ida Bindiff, Ida Diaphora




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 28 сентября 2016 16:48 · Поправил: -=AkaBOSS=-
· Личное сообщение · #5

olia64 пишет:
2. Как в IDA можно быстро сравнить эти фукнции? Типа левый клик посчитать хэш функции, calc->crc16 or md5

хэш тут слишком неэффективен. А разные компиляторы и режимы оптимизации свой отпечаток накладывают.
Если есть эталонный код, проще отладчиком проверить входные-выходные данные.


olia64 пишет:
Как в одном одном exe заменить функцию аналогичной из другого exe

Волшебных кнопок нет - только руками. Да, это трудоёмко. А так как речь идёт об AES, придётся еще патчить много констант - обращений к таблицам. Да и сами таблицы тоже заменять, для полной уверенности.

Лучше не функцию пытаться заменить "вслепую", а разобраться что происходит.
Возможно, как-то изменился заголовок принимаемого пакета, и данные интерпретируются неправильно.

Я бы проверил на различия между:
1. тем что отсылает клиент
2. тем что получает сервер
3. тем что сервер отправляет на расшифровку



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

Создано: 28 сентября 2016 18:21
· Личное сообщение · #6

unknownproject пишет:
PS.
Ну а самого "Вас" уже слишком много для форума, так что молитесь своим богам, чтобы не быть забаненным.10 дней на форуме и уже всех замандил.

Что с тобой не так??? Русскими буквами попросил, если что-то не устрайвает кого-то в моем вопросе для новичков, просто молча пройти мимо или мне нельзя в принципе вопросы задавать?
Я соблюдаю все правила и ограничение на кол-во тем для новичков.
А ты нарушаешь правила форума, разводишь флуд и пытаешься унизить собеседника.
Почему не забанят тебя, а должны как-то наказать меня???
Почему я в каждой теме прошу об одном, заканчивайте флудить, тролить и пытаться оскорбить ?

PS: вообще очень хорошая штука личный черный список, такой чтобы пользователь из черного списка навсегда пропадал во всех темах, к сожалению это почти нигде не реализовано и приходится пилить свои подделки
в виде плагинов для браузера по типу greasemonkey.

Я решил полностью отключить шифрование на клиенте и сервере и перехожу к своему первому патчу
Это проще чем изменить весь фреймворк AES..

-=AkaBOSS=- пишет:
Волшебных кнопок нет - только руками. Да, это трудоёмко. А так как речь идёт об AES, придётся еще патчить много констант - обращений к таблицам. Да и сами таблицы тоже заменять, для полной уверенности.

Лучше не функцию пытаться заменить "вслепую", а разобраться что происходит.
Возможно, как-то изменился заголовок принимаемого пакета, и данные интерпретируются неправильно.

Я бы проверил на различия между:
1. тем что отсылает клиент
2. тем что получает сервер
3. тем что сервер отправляет на расшифровку


1. проверил что отсылает.
2. проверил что приходит
3. отправляет на расшифровку всё то что ушло клиентом уже запакованое ( запакованое ушло всё правильно ), а распаковывается НЕПРАВИЛЬНО.
И основной вопрос звучал так... Возможно ли что версии AES CBC отличаются? Таблицы S и раундовые ключи шифрования совпадают.

Я что то пропустил или ВОЗМОЖНЫ разные версии AES CBC ? Кто нибудь знает ? OPENSSL 1.0 Отличается от других версии реализацией алгоритма?
подозрение на разные версии Openssl




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

Создано: 28 сентября 2016 18:41
· Личное сообщение · #7

olia64
Для начала перестань воспринимать ответы форумчан так, что они относятся к тебе высокомерно! Выглядит так, как будто ты обижен на то, что люди знают, а ты - нет.

unknownproject пишет:
Для вопросов по IDA есть отдельный тред

Да не столько это к иде относится.

По сравнению 2х функций: сделать это просто! нужно либо поискать плагин для иды (который может потянуть за собой и питон, поставить его не помешает), либо выделяешь в hex-представлении байты функции в обоих exe, сохраняешь в свои файлы, и в WinHex сравниваешь. Я - не любитель плагинов, ставить все подряд - потом не поймёшь из-за чего крашится ида(а была аналогичная ситуация с плагинами для студии).

Добавлено спустя 4 минуты
olia64 пишет:
Возможно ли что версии AES CBC отличаются? Таблицы S и раундовые ключи шифрования совпадают.

Мучают сомнения, что версии криптоалго одинаковые? - проверь пошагово(по раундам) в каждой версии клиента, запиши промежуточные результаты на листочек, сравни.

Добавлено спустя 7 минут
Проверь векторы инициализации (IV)

Добавлено спустя 9 минут
DenCoder пишет:
и в WinHex сравниваешь

Естественно, из-за смещений могут быть различия после 0xe8(опкод инструкции call) до 4х байт - не обращать внимания

Добавлено спустя 10 минут
А также глобальные переменные могут быть сдвинуты по адресам.

-----
IZ.RU





Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 28 сентября 2016 18:54
· Личное сообщение · #8

olia64 пишет:
Возможно ли что версии AES CBC отличаются?




25b0_28.09.2016_EXELAB.rU.tgz - aes_dll.dll

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 28 сентября 2016 18:58
· Личное сообщение · #9

третий топик про гадания на картах, когда его уже зобанят))



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

Создано: 28 сентября 2016 20:00
· Личное сообщение · #10

reversecode пишет:
третий топик про гадания на картах, когда его уже зобанят))

dimka_new пишет:
ОБана, пенькондер с запоя вышел ! или с реабилитации ? А?Хрюхрю


почему это не наказывается модераторами




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 28 сентября 2016 20:03
· Личное сообщение · #11

третий топик по гадания на алгоритм аес с троллингом под подсказки работы с ида
и засирание мне лички с оскорблениями афтАром

)))




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 28 сентября 2016 20:30
· Личное сообщение · #12

olia64
Вероятность того что AES CBC отличаются в разных версиях ничтожно мала. Это стандарт и я ни разу не встречал модификаций алго в живых программах, копай выше. Возможно, буфер как-то ещё обрабатывается перед попаданием на расшифровку

-----
Research For Food




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

Создано: 28 сентября 2016 20:49 · Поправил: olia64
· Личное сообщение · #13

daFix пишет:
olia64
Вероятность того что AES CBC отличаются в разных версиях ничтожно мала. Это стандарт и я ни разу не встречал модификаций алго в живых программах, копай выше. Возможно, буфер как-то ещё обрабатывается перед попаданием на расшифровку

Спасибо, это то что я хотел услышать. Клиент шифрует и дешифрует правильно. При расшифровке на стороне сервера начинается какая то шляпа. Все таблицы аналогичны. IV аналогичный и aes ключ тоже
Подозрение только на сам алгоритм, а разбирать его по полочкам в моем случае это надолго. Опыта не хватает.
Попробую отключить шифрование вообще.
В связи с этим возникает вопрос.
В IDA -> Edit -> Patch program
Меняю необходимую область байт на
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
Больше это размера патчить не даёт. Это проблема 1.
если нада пропатчить
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
Прийдется 2 раза выполнять.
Как просто выделить весь участок кода и заполнить его 90 ? Переключаюсь между text view и graph view в окне кода
Проблема 2. Как быстро отменить патч в первоначальный вид?




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

Создано: 28 сентября 2016 20:59 · Поправил: DenCoder
· Личное сообщение · #14

olia64 пишет:
Больше это размера патчить не даёт. Это проблема 1.

Плагин Ida Patcher позволит обойти это ограничение. Скрипт на питоне кидается в папку иды Plugins.
Питон должен стоять.

olia64 пишет:
Как просто выделить весь участок кода и заполнить его 90 ?

И это этот плагин позволяет.

olia64 пишет:
Проблема 2. Как быстро отменить патч в первоначальный вид?

Когда выбираешь Edit->Patch program->Change byte, над эдитом видно оригинальные байты

Добавлено спустя 5 минут
daFix пишет:
Вероятность того что AES CBC отличаются в разных версиях ничтожно мала

У тс возможно и есть маловероятный случай ))

Мне как-то за короткий промежуток времени попалось 6 различных модификаций блоуфиша

-----
IZ.RU




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

Создано: 28 сентября 2016 21:22
· Личное сообщение · #15

DenCoder пишет:Плагин Ida Patcher позволит обойти это ограничение.
DenCoder , ты реально тут топ 1 в помощи новичкам. Побольше бы таких людей на форуме.
Форум фактически мертвый, возможно как и наша страна Россия... Обсуждения стремятся к нулю.
Я не жалуюсь, просто обидно как то. Полторы темы в день. Неужели нас так мало, господа?
Все активные обсуждения на англо-ресурсах?



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

Создано: 28 сентября 2016 23:05 · Поправил: dosprog
· Личное сообщение · #16

olia64 пишет:
Неужели нас так мало, господа?


Кого - вас?

tihiy_grom пишет:
Всегда умиляли пафосные и патриотические речи "доколе ??? доколе Россия/форум (нужное подчеркнуть) будет на коленях стоять ??? Поднимайтесь братья, надо срочно мне помочь !!!"

Ударим автопробегом?






Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 28 сентября 2016 23:32
· Личное сообщение · #17

DenCoder пишет:
выделяешь в hex-представлении байты функции в обоих exe, сохраняешь в свои файлы, и в WinHex сравниваешь.

А WinHex случаем не умеет подсвечивать различия?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





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

Создано: 29 сентября 2016 00:08
· Личное сообщение · #18

Isaev пишет:
А WinHex случаем не умеет подсвечивать различия?

Ну да, забыл про подробность - View -> Synchronize and compare

-----
IZ.RU




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

Создано: 29 сентября 2016 00:35 · Поправил: olia64
· Личное сообщение · #19

dosprog пишет:
Кого - вас?

Так долго писал и старался, а ты не понял кого.. Или к благородным кровям себя относишь?
Форум полумертвый, что не понятно? Хотелось бы большей активности, но это походу дела в Китае только или в eng сегменте.

DenCoder пишет:
Ну да, забыл про подробность - View -> Synchronize and compare

Спасибо открыл для себя WinHex )




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

Создано: 29 сентября 2016 01:13
· Личное сообщение · #20

olia64
Открой же для себя ещё и рубрику --> Скачать <--. ))
Там, конечно, кое-какие инструменты старых версий, но на трекерах, варезах лежат по-новей.

-----
IZ.RU




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

Создано: 29 сентября 2016 01:30
· Личное сообщение · #21

Всегда умиляли пафосные и патриотические речи "доколе ??? доколе Россия/форум (нужное подчеркнуть) будет на коленях стоять ??? Поднимайтесь братья, надо срочно мне помочь !!!"

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

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

Создано: 29 сентября 2016 01:32
· Личное сообщение · #22

tihiy_grom пишет:
Всегда умиляли пафосные и патриотические речи "доколе ??? доколе Россия/форум (нужное подчеркнуть) будет на коленях стоять ??? Поднимайтесь братья, надо срочно мне помочь !!!"

смешно, да.. ( без иронии )
Не, я о другом. В других темах тоже тухло. Тут глобальная проблема.
А я так... балуюсь реверсом.




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

Создано: 29 сентября 2016 01:52 · Поправил: difexacaw
· Личное сообщение · #23

По расплывчатому первому пункту задачи в общем случае задача не разрешима. Изначально не ясно что с чем сравнивать. Возможно код совершенно разный, тогда поиск подобий будет бессмысленным. Есть и есчо проблема - группировка.

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

-----
vx





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

Создано: 29 сентября 2016 02:26
· Личное сообщение · #24

difexacaw пишет:
Изначально не ясно что с чем сравнивать. Возможно код совершенно разный, тогда поиск подобий будет бессмысленным. Есть и есчо проблема - группировка.

Кажется, Клерк, ака Инде, ака Bowrowco, ака Dr0p, соскучился. Или одепт?)))

-----
IZ.RU





Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 29 сентября 2016 03:04
· Личное сообщение · #25

olia64 пишет:
отправляет на расшифровку всё то что ушло клиентом уже запакованое ( запакованое ушло всё правильно ), а распаковывается НЕПРАВИЛЬНО.

учитывая всё это и вспоминая предыдущую тему, предполагаю, что ключи всё-таки не сходятся.

difexacaw пишет:
По расплывчатому первому пункту задачи в общем случае задача не разрешима

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

DenCoder пишет:
Кажется, Клерк, ака Инде, ака Bowrowco, ака Dr0p, соскучился. Или одепт?)))

ну раз васма нет больше, где еще скучать?)




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 29 сентября 2016 05:37
· Личное сообщение · #26

https://www.drive2.ru/users/olia64/

-----
Give me a HANDLE and I will move the Earth.


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

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

Создано: 29 сентября 2016 07:35 · Поправил: vovanre
· Личное сообщение · #27

plutos и ещё, вангую, что ещё у её(-го) друга Толи не так давно украли аккаунт в mail.ru



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 29 сентября 2016 10:18 · Поправил: SReg
· Личное сообщение · #28

DenCoder вангую не клерк, тот бы не давал советы окромя кэпского учения матчасти и посылания нах

reversecode пишет:
клерк --> Link <--

да хз так многие пишут... ждем чистосердечного




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 29 сентября 2016 10:30 · Поправил: reversecode
· Личное сообщение · #29

клерк --> Link <--

SReg 100% клерк




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

Создано: 02 октября 2016 16:52
· Личное сообщение · #30

SReg

Этот ник пропал много лет назад

-----
vx



 eXeL@B —› Вопросы новичков —› Как быстро сравнить 2 функции в IDA ?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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