Эксперты из Касперского
От: dmart  
Дата: 07.02.13 16:26
Оценка: 5 (1) -1
Привет всем.
Наверное техническим специалистом будет интересно почитать про "настоящих" экспертов в реверс инжениринге, которые работают в Лаборатории Касперского: http://dmitryart1985.livejournal.com/8069.html
Настолько умные товарищи, что в уме дизасемблируют бинарник восстанавливая исходный код программы вплоть до названия функций и переменных, при этом читая "Отче наш" на старо-гречеком языке. Так сказать одним глазком туда, одним сюда...
Интересно ваше мнение.

Кстати, статья была жёстко отцензурена на Хабре — http://dmitryart1985.livejournal.com/8422.html

18.02.13 00:08: Перенесено модератором из 'Священные войны' — kochetkov.vladimir
Re: Эксперты из Касперского
От: Abyx Россия  
Дата: 07.02.13 17:30
Оценка: +2
Здравствуйте, dmart, Вы писали:

D>Привет всем.

D>Наверное техническим специалистом будет интересно почитать про "настоящих" экспертов в реверс инжениринге, которые работают в Лаборатории Касперского: http://dmitryart1985.livejournal.com/8069.html
D>Настолько умные товарищи, что в уме дизасемблируют бинарник восстанавливая исходный код программы вплоть до названия функций и переменных, при этом читая "Отче наш" на старо-гречеком языке. Так сказать одним глазком туда, одним сюда...
D>Интересно ваше мнение.

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

два куска кода можно сравнить, и даже если имена переменных не совпадают, можно сказать что
int add(int a, int b) { return a+b; }
имеет ту же функциональность что и
int sub1(int arg1, int arg2) { return arg1+arg2; }
In Zen We Trust
Re: Эксперты из Касперского
От: Ромашка Украина  
Дата: 07.02.13 17:33
Оценка:
Здравствуйте, dmart, Вы писали:
D>Привет всем.

Пока, Дима.

Я вот не вкуриваю, вы идиоты или только прикидываетесь? Нет, я понимаю, можно журналистам втереть про то, что имена функций из бинарника нельзя вытянуть, но нам-то зачем мозги полоскать? Тем более приводя ссылку на отчет есета, где весь функционал и имена функций расписаны по самое не хочу... мы ж не только прочитать можем, мы еще и понимаем, что там написано. Ладно ты, геймдев это штука заразная, но брат-то твой компилеры писал. Поговори с ним, пусть он тебе хоть что-то объяснит, чтобы ты так не позорился на весь инет.
http://brunets.name/ua_developer.gif

Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[2]: Эксперты из Касперского
От: linuz  
Дата: 07.02.13 17:48
Оценка: 1 (1)
Здравствуйте, Abyx, Вы писали:

A>да, бинарник можно восстановить вплоть до осмысленных названий функций и переменных.

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

A>если в бинарнике есть названия функций и переменных (строки), то можно восстановить их как они были в исходнике.

Строки да, но названий функций и переменных там нет если их специально туда не включали.

A>два куска кода можно сравнить, и даже если имена переменных не совпадают, можно сказать что

A>int add(int a, int b) { return a+b; }
A>имеет ту же функциональность что и
A>int sub1(int arg1, int arg2) { return arg1+arg2; }
Что-то я сомневаюсь что этот експерт делал такой весьма нетривиальный анализ. Для этого нужна действительно высокая квалификация, иначе можно взять пару библиотечных функций и каждую вторую программу признать малварей на том основании что оно местами похоже.
Re[3]: Эксперты из Касперского
От: Ромашка Украина  
Дата: 07.02.13 18:27
Оценка:
Здравствуйте, linuz, Вы писали:
A>>да, бинарник можно восстановить вплоть до осмысленных названий функций и переменных.
L>Восстановить можно имена классов исключений если они имеют виртуальный деструктор, они сохраняются в замангленном виде для RTTI. Имена функций и переменных уникального (не библиотечного) кода не восстанавливаются в принципе. Потому что в бинарнике их тупо нет ни в каком виде. Их можно самому заново придумать, но никак не восстановить.

Там мальчик выложил отчет ESET-а. Насколько я его понял, внутрях червя фреймворк для плагинов, то бишь некислая куча имен методов, классов и тому подобное там есть. Наверное, их и восстановили.
http://brunets.name/ua_developer.gif

Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[2]: Эксперты из Касперского
От: Ops Россия  
Дата: 07.02.13 18:31
Оценка:
Здравствуйте, Abyx, Вы писали:

A>да, бинарник можно восстановить вплоть до осмысленных названий функций и переменных.

A>если в бинарнике есть названия функций и переменных (строки), то можно восстановить их как они были в исходнике.

Угу, а еще паспортные данные автора. Коммерческие ботнеты же идиоты пишут.

A>два куска кода можно сравнить, и даже если имена переменных не совпадают, можно сказать что

A>int add(int a, int b) { return a+b; }
A>имеет ту же функциональность что и
A>int sub1(int arg1, int arg2) { return arg1+arg2; }

А это, скорее всего, заинлайнится и даже функцией не будет. Зато, в разных местах могут использоваться разные регистры и/или разная адресация, код может быть неидентичен.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: Эксперты из Касперского
От: Ops Россия  
Дата: 07.02.13 18:35
Оценка: +1
Здравствуйте, Ромашка, Вы писали:

Р>Я вот не вкуриваю, вы идиоты или только прикидываетесь? Нет, я понимаю, можно журналистам втереть про то, что имена функций из бинарника нельзя вытянуть, но нам-то зачем мозги полоскать? Тем более приводя ссылку на отчет есета, где весь функционал и имена функций расписаны по самое не хочу... мы ж не только прочитать можем, мы еще и понимаем, что там написано. Ладно ты, геймдев это штука заразная, но брат-то твой компилеры писал. Поговори с ним, пусть он тебе хоть что-то объяснит, чтобы ты так не позорился на весь инет.


Там совсем другое доказывали, что "эксперт" — фуфло. Говорит общие фразы, а как спрашивают конкретику — "я не помню", "это не требуется", и т.п.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: Эксперты из Касперского
От: eqw  
Дата: 07.02.13 20:49
Оценка: +1 -4 :))) :))
Здравствуйте, dmart, Вы писали:

D>Интересно ваше мнение.


Наше мнение — ЖЖ автора пропитан баттхертом и из-за этого лишен объективности и иногда автор вообще невменяем.
Странно такую чущь тащить на программерский форум.


Простой пример

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

К примеру, inline функции – функция как таковая исчезает, а её код вставляется в места вызова этой inline функции, и многое-многое другое.


Да будет известно автору, что IDA, на которую несколько раз мягко намекает эксперт Ануфриев, как раз умеет восстанавливать исходный код (с разницей до имен переменных, иногда с именами переменных), в том числе оптимизированный, в том числе с inline-функциями. Называется это декомпиляция, про разницу между декомпиляцией и дизассемблированием, автор, видимо, не в курсе.

В IDA есть возможность декомпиляции кода, произведеного распространенными компиляторами, техники оптимизации которых хорошо известны и реверсятся.

Для всех желающих — читаем про hex-rays https://www.hex-rays.com/products/decompiler/index.shtml
Re[2]: Эксперты из Касперского
От: мыщъх США http://nezumi-lab.org
Дата: 07.02.13 21:38
Оценка: 1 (1)
Здравствуйте, Ромашка, Вы писали:

Р>Здравствуйте, dmart, Вы писали:

D>>Привет всем.

Р>Пока, Дима.


Р>Я вот не вкуриваю, вы идиоты или только прикидываетесь?

вот цитата из текста по ссылке:

...если Вы откроете Ida Pro... Она может восстанавливать и наименования функций, она восстанавливает все библиотеки, системные. Более того, есть дополнительные модули, которые можно писать и самому, которые даже и в исходные коды часть могут вернуть.


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

про исходные коды это бред в квадрате. компиляция это преобразование А, а декомпиляция это преобразование Б. между А и Б нет ничего общего. декомпиляция не есть процесс обратный компиляции.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[3]: Эксперты из Касперского
От: Ромашка Украина  
Дата: 07.02.13 22:14
Оценка: -1
Здравствуйте, мыщъх, Вы писали:
М>вам не кажется, что это бред сивой кобылы? ida-pro -- черный ящик. восстановить имена функций она может только если это библиотечные функции или имена функций по тем или иным причинам присутствуют в бинарнике. однако, сходство имен функций ни о чем не говорит, т.к. нужно доказать, что это уникальные имена и они не принадлежат никакой другой программе, а присутствуют только в анализируемом бинарнике.

Мыщъх, ты о них слишком хорошего мнения.

http://files.rsdn.org/40713/festi.png
http://brunets.name/ua_developer.gif

Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[4]: Эксперты из Касперского
От: dmart  
Дата: 07.02.13 22:22
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Здравствуйте, мыщъх, Вы писали:

М>>вам не кажется, что это бред сивой кобылы? ida-pro -- черный ящик. восстановить имена функций она может только если это библиотечные функции или имена функций по тем или иным причинам присутствуют в бинарнике. однако, сходство имен функций ни о чем не говорит, т.к. нужно доказать, что это уникальные имена и они не принадлежат никакой другой программе, а присутствуют только в анализируемом бинарнике.

Р>Мыщъх, ты о них слишком хорошего мнения.


Р>http://files.rsdn.org/40713/festi.png


Написал так радостно. А на самом деле очередную чушь. Это страка значит что был сгенерён pdb файл при компиляции, и ничего больше.
Иди ты считаешь что малварь распространяют с многомегабайтными pdb файлами, чтобы облегчить работу таких "экспертов" как Ануфриев?
Re[5]: Эксперты из Касперского
От: Ромашка Украина  
Дата: 07.02.13 22:37
Оценка:
Здравствуйте, dmart, Вы писали:
D>Написал так радостно. А на самом деле очередную чушь. Это страка значит что был сгенерён pdb файл при компиляции, и ничего больше.

Дима, это подпись. Это значит, что дальше сравнение бинарников можно проводить только и исключительно для того, чтобы срубить побольше бабла с заказчика.

D>Иди ты считаешь что малварь распространяют с многомегабайтными pdb файлами, чтобы облегчить работу таких "экспертов" как Ануфриев?


Я допускаю, что людям, оставившим такое в бинарнике, хватит на подобное дурости.
http://brunets.name/ua_developer.gif

Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[6]: Эксперты из Касперского
От: linuz  
Дата: 07.02.13 22:41
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Дима, это подпись. Это значит, что дальше сравнение бинарников можно проводить только и исключительно для того, чтобы срубить побольше бабла с заказчика.

В строчке пути к pdb фамилия автора не написана. В экспертизе написано что исходники лежали в C:\Projects. Как-то не вяжется одно с другим.
Re[7]: Эксперты из Касперского
От: Ромашка Украина  
Дата: 07.02.13 23:47
Оценка:
Здравствуйте, linuz, Вы писали:
L>В строчке пути к pdb фамилия автора не написана. В экспертизе написано что исходники лежали в C:\Projects. Как-то не вяжется одно с другим.

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

ЗЫ. Дима, вы вообще серьезно? Вас поймали с исходниками крупнейшего ботнета и вы пытаетесь доказать, что это какой-то другой ботнет??? Это типа вас повязали с калашом в руках над еще теплым трупом и вы пытаетесь доказать, что у вас в руках не калаш, а ТТ потому-что "функционал совпадает"?
http://brunets.name/ua_developer.gif

Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[8]: Эксперты из Касперского
От: dmart  
Дата: 07.02.13 23:54
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Здравствуйте, linuz, Вы писали:

L>>В строчке пути к pdb фамилия автора не написана. В экспертизе написано что исходники лежали в C:\Projects. Как-то не вяжется одно с другим.

Р>Прочитал экспертизу. Сорри, почему-то думал, что сравнивают бинарники (разных версий?). Да, не вяжется. Да и пофиг, анализ ботнета есть, исходники есть, квалификация эксперта достаточна, чтобы связать одно с другим. Один черт исходников недостаточно, это только средство. Нужно доказывать сам факт совершения правонарушения. Если у следствия этого нет, то им ничего не будет, если у следствия это есть, то даже отсутствие исходников их не спасет.


Какая у него квалификация. 2 года работы. И полное отсутствие знаний в реверс энжиниренге? Это же понятно при общении с ним.

Р>ЗЫ. Дима, вы вообще серьезно? Вас поймали с исходниками крупнейшего ботнета и вы пытаетесь доказать, что это какой-то другой ботнет??? Это типа вас повязали с калашом в руках над еще теплым трупом и вы пытаетесь доказать, что у вас в руках не калаш, а ТТ потому-что "функционал совпадает"?


А нас не поймали. Читайте окончание моего поста на ЖЖ. Эти сорсы, которых у меня не было, требовали от меня 5 месяцев угрозами.
Более того, тот злощастный ноутбук при передаче в ЛК менял и упаковку и включался 6 раз. Я не знаю, что там за код оказался.

БОлее того, исследование ЕСЕТа написано предвзято. Если поднять статистику по спаму M86, то окажется что ботнет первый с конца. Когда это он крупнейшим был?
Re[9]: Эксперты из Касперского
От: eqw  
Дата: 07.02.13 23:59
Оценка: +1 -1
Здравствуйте, dmart, Вы писали:

D>А нас не поймали. Читайте окончание моего поста на ЖЖ. Эти сорсы, которых у меня не было, требовали от меня 5 месяцев угрозами.

D>Более того, тот злощастный ноутбук при передаче в ЛК менял и упаковку и включался 6 раз.
Оставив в стороне ваше мнение об экспертизе, расскажите, пожалуйста, подробнее, как вы определили, что "злощастный ноутбук при передаче в ЛК менял и упаковку и включался 6 раз" и почему в таком случае этот факт не был учтен следствием? Это же чистой воды подлог, если правда. Из текста в ЖЖ это совсем непонятно.

>Я не знаю, что там за код оказался.

Ну это любой на вашем месте бы сказал
D>БОлее того, исследование ЕСЕТа написано предвзято.
Ну конечно!
Re[4]: Эксперты из Касперского
От: мыщъх США http://nezumi-lab.org
Дата: 08.02.13 03:57
Оценка: 1 (1)
Здравствуйте, Ромашка, Вы писали:

Р>Здравствуйте, мыщъх, Вы писали:


Р>Мыщъх, ты о них слишком хорошего мнения.


а классная у вас цветовая раскраска в иде! но вы поскипали цитату "эксперта", который говорил, что ида _восстанавливает_ имена функций. очевидно, восстанавливает она через FLIRT. там какие-то еще плагины упоминались -- хз что там "эксперт" скачал из тырнета. есть и такие плаги, которые восстанавливают имена криптографических функций с той или иной вероятностью угадать или промазать.

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

на приведенном вами фрагменте виден путь к .pdb файлу, который, вай-вай, за уникальный прокатывает только в судах, где приговор выносится еще до начала заседания.

'botnet' это очень слабый аргумент. практически каждый второй хацкер даст такое название директории.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[2]: Эксперты из Касперского
От: мыщъх США http://nezumi-lab.org
Дата: 08.02.13 04:06
Оценка: +1
Здравствуйте, eqw, Вы писали:

eqw>Здравствуйте, dmart, Вы писали:


eqw>Да будет известно автору, что IDA, на которую несколько раз мягко намекает эксперт Ануфриев,


для нормального суда ида не аргумент. если вывод "эксперта" базируется на сходстве результатов работы декомпилятора с исходными текстами, то декомпилятор должен быть простым и прозрачным. а если это "черный ящик", то такой цырк нам не нужен, поскольку, де-юре "эксперт" говорит -- мы засунули бинарник в ЭВМ, машина пожжужала, покряхтеля и выдала результат "казнить нельзя помиловать". очевидно же где тут запятая.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[3]: Эксперты из Касперского
От: eqw  
Дата: 08.02.13 04:31
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>Здравствуйте, eqw, Вы писали:


eqw>>Здравствуйте, dmart, Вы писали:


eqw>>Да будет известно автору, что IDA, на которую несколько раз мягко намекает эксперт Ануфриев,


М>для нормального суда ида не аргумент.

Да нет, почему. Суд принимает во внимание мнение экспертов. Если эксперта кто-то считает некомпетентным или предвзятым, его имеют право отвести.

> если вывод "эксперта" базируется на сходстве результатов работы декомпилятора с исходными текстами, то декомпилятор должен быть простым и прозрачным.

Никто никому ничего не должен.


>мы засунули бинарник в ЭВМ, машина пожжужала, покряхтеля и выдала результат "казнить нельзя помиловать".

Забавно, что современные антивирусы с эмуляторами и эвристиками примерно так и работают
Re[6]: Эксперты из Касперского
От: мыщъх США http://nezumi-lab.org
Дата: 08.02.13 04:36
Оценка: 3 (1)
Здравствуйте, Ромашка, Вы писали:

Р>Здравствуйте, dmart, Вы писали:

D>>Написал так радостно. А на самом деле очередную чушь. Это страка значит что был сгенерён pdb файл при компиляции, и ничего больше.

Р>Дима, это подпись. Это значит, что дальше сравнение бинарников можно проводить только и исключительно для того, чтобы срубить побольше бабла с заказчика.


это подпись? мама, роди меня обратно. щоб ваш банк такие подписи использовал. и по ним позволят переводить деньги с вашего счета.

ответьте на простой вопрос: какова вероятность, что совершенно посторонний хакер вася пупкин
1) юзает eclipse и держит проекты в корне E:
2) ботнет называет ботнетом, а не блакджеком

это улика, но не более того. если у подозреваемого сорцы лежает именно там -- его можно начинать прорабатывать, но на доказательство это не тянет. у меня, кстати, тоже есть сорцы по аналогичному пути. только я не автор. я просто скачал zip из интернета, кинул в корень на E: и распаковал с путями.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.