Re[3]: Реверс инжининг - с чего начать?
От: jakimushka  
Дата: 05.10.09 08:13
Оценка:
Здравствуйте, Orister, Вы писали:

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


М>>а вот если ты фрилансер, то можно успевать и то, и это, и еще многое другое, а по ходу дела смотреть, что у тебя лучше всего получается.


O>Насколько я понимаю заказы на фриланс надо искать через людей, задействованных в данной индустрии(т.е. не на сайтах типа rentacoder), а на этих людей надо произвести впечатление, а для этого надо сперва что-то разреверсить, или написать какую-то статью. Вот я и думаю, чтобы такого сделать .


Зачастую достаточно поговорить, чтобы показать что ты в теме. Разве что как этих людей искать, если не начинать с сайтов типа рентакодер — я так и не понял
Re[7]: Реверс инжининг - с чего начать?
От: gear nuke  
Дата: 05.10.09 19:56
Оценка:
Здравствуйте, TarasCo, Вы писали:

TC>вот и мучайся теперь ))


Ха-ха, я ж всегда найду удобную для себя интерпретацию
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[3]: Реверс инжининг - с чего начать?
От: senglory  
Дата: 05.10.09 21:29
Оценка: +1 -1
Здравствуйте, PepperPuh, Вы писали:

A>>Мистеру интересно становиться гиком? Странный вкус...


PP>С этого места поподробнее. Желательно сначала дать определение понятию "гик".


Асоциальный тип с преобладанием интереса к железкам над интересом к отношениям с людьми.
Re[4]: Реверс инжининг - с чего начать?
От: dilmah США  
Дата: 05.10.09 21:59
Оценка:
GN>Скорее, без навыков RE в R&D делать нечего.

чего только не узнаешь вечерком на рсдн..
Re[5]: Реверс инжининг - с чего начать?
От: gear nuke  
Дата: 06.10.09 01:53
Оценка:
Здравствуйте, dilmah, Вы писали:

GN>>Скорее, без навыков RE в R&D делать нечего.


D>чего только не узнаешь вечерком на рсдн..


Ага, если брать Экс-СССР, то большиснтво наших "разработок" в автопроме, электроннике являются результатом обратной разработки. В случае софта конечно есть очень важное отличие — отечественные программисты сразу рождаются со знанием как надо делать VC, FAR, ... Можно и не прибедняться отсутствием навыков
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[4]: Реверс инжининг - с чего начать?
От: мыщъх США http://nezumi-lab.org
Дата: 10.10.09 11:09
Оценка:
Здравствуйте, jakimushka, Вы писали:

J> Зачастую достаточно поговорить, чтобы показать что ты в теме.

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

J> Разве что как этих людей искать, если не начинать

J> с сайтов типа рентакодер — я так и не понял
искать как и обычный работодателей. на openrce.org периодически постят вакансии. другой хороший ресурс — официальный форум ida pro. ну а вообще очень много ресурсов можно нарыть по этой теме.

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

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

McAfee, F-Secure, Symantec, Panda, ROVI (бывшая Macrovision), NDS, SensePost… это что называется the best по условиям работы и во всех этих фирмах всегда рады новым реверсерам. кстати, о McAfee могу и подробнее написать, если кому будет интересно как тут работается, а работается в McAfee очень хорошо, причем не только в нашем тиме, но и в соседних.

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

короче, много фирм хороших и разных. в черный список попал пока что один SOFTFORUM. там реально кидают (кстати, он не только в моем черном списке).
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[4]: Реверс инжининг - с чего начать?
От: мыщъх США http://nezumi-lab.org
Дата: 10.10.09 13:06
Оценка: 5 (1)
Здравствуйте, gear nuke, Вы писали:

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


O>> У меня конечная цель — работа в области Research&Development

GN>Скорее, без навыков RE в R&D делать нечего.
ну я бы не был столь категоричен, особенно если понимать RE в узком смысле "дизассемблирование". я ранее уже приводил пример, что когда мне потребовалось реконструировать алгоритмы нескольких видеофильтров, то вместо дизассемблирования я применил метод "черного ящика", а в сам код вообще не заглядывал не идой, ни ольгой. это как бы тоже RE, но в то же время, как бы и не совсем. и тут возникает вопрос: а что мы вообще понимаем под RE ?!

GN> Поясню, есть 2 вида разработки: "прямая" (waterfall)

GN> когда передметная область хорошо изучена,
это вы где такое прочитали? waterfall включает в себя последовательность следующих стадий: постановка задачи, анализ, проектирование, имплементация, верифиация, введение в эксплуатацию. так вот, "анализ и проектирование" вполне могут включать в себя RE безотносительно от степени изученности данной предметной области.

GN> Другой вариант — когда в общем-то и не ясно

GN> как и, главное, почему надо делать.
и как такая разработка называется? и какие тут будут стадии? чем плох waterfall?! сначала мы составляем список требований _что_ надо делать, затем занимается анализом и проектированием, в ходе которого разбираемся _как_ именно это нужно делать.

так что waterfall тут вообще не причем. и тут все упирается в вопрос: какова доля RE в решаемой задаче. в некоторых задачах никакого RE вообще нет (допустим, мы пишем еще один "блокнот"), в других же она может достигать и 99% (допустим, захотели мы написать своего клиента под Skype, а для этого нужно еще расшифровать его протокол, после чего оставшаяся часть будет довольно тривиальной, особенно, если "наш" клиент — это клиент командной строки).

GN> ...исследования и существующих конкурентов, и в предметной области.

так это R&D и есть. в чистом виде. RE может, в принципе, и отсутствовать, причем, мы можем заниматься только R, а D поручить кому-то еще.

GN> проводилось исследование как руткитов, так и детекторов,

GN> результирующий POC отличается недостижимым КПД.
ну вот я и говорю. мы занимаемся R, а до D дело так и не доходит. если результатом исследования явился только POC, а не конечный продукт, то мы просто просрали время и деньги. кстати, безотносительно данного POC — до введения продукта в "промышленную" эксплуатацию о его характеристиках вообще ничего нельзя сказать, особенно, в антивирусной индустрии. т.е. тестовые примеры может быть и проходят, но вот удастся ли его реализовать так, чтобы он был пригоден для пользования — тут сказать трудно. допустим, можно столкнуться с высоким уровневом false positives или negatives, потреблением ресурсов, плохой совместимостью с осями и еще хвост знает чем.

GN> Однако не было никакого дизассемблирования,

ага. то есть изучались публичные руткиты те, что в исходниках и такая же публичная инфа о непубличных руткитах? здорово

GN> изучались лишь "архитектурные" особенности, давались оценки

GN> трудозатрат и эффективности решений. Это я всё к тому, что RE
GN> не совсем то же, что RCE.
для того, чтобы ловить руткиты как минимум нужно знать как они работают. а для этого их нужно ловить и дизасмить. причем ловить в дикой природе, а не ограничиваться только тем, что выкладывается на паблик. при этом следует ожидать появления новых руткитов, обходящих детектор, и оперативно их дизасмить.

O>>Просто не очень хочется всю жизнь быть code monkey и сидеть на саппорте чужого кода.

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

GN>Я, вероятно, неясно выразился. Нет никакой прнципиальной разницы, что реверсить. Есть разница, на чём это написано было ранее,


ну вот тут как раз никакой разницы нет, если, конечно, сравнивать компилируемые языки с компилируемыми.

GN> если это С++ и с ним плохо, то виртуальное наследование может шокировать.

и чем оно нас шокирует в машинном коде? его и на чистом Си можно "эмулировать". кстати, в отличии от плюсов которые более или менее предсказуемы, манипуляции с указателями в сях точно могут шокировать. попадалась как-то программа, в которой функции передавались указатели на другие функции как аргументы, причем после первого же вызова функция меняла содержимое указателя (сначала указатель указывал на "конструктор", выполняющий инициализацию, а после его выполнения (успешного) указатель смотрел уже на код реальной функции (GUI или TUI в зависимости от), или же на функцию, которая говорила "опа! а у нас проблемы"), причем один и тот же указатель мог указывать как на данные, так и на код. все просто. в данных сначала лежал "магический пирожок", а если его там не было, значит, это код. короче, функция в качестве аргумента принимала указатель на что-то. на некую абстракцию, которой могли быть как данные, так и код. вот это действительно шокирует и срывает крышу, поскольку, у нас вообще нет никаких перекрестных ссылок, и даже если прогонять прогу под отладчиком, то содержимое указателей стихийно меняется на протяжении всего выполнения программы. а как может шокировать форт, если о нем нет никакого представления?

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

а конечные цели задачи? поднять программу до компилируемых исходников или понять что она делает?! совсем не одно и тоже!

> Готовится надо к разботке бинарей для неизвесных архитектур:

это если с этим придется столкнуться по работе, что вовсе не факт. ну вот у меня, да, бывает, есть бинарь под х.з. какую архитектуру. реально это — сетевой пакет, в котором возможно есть shell-код, а, возможно, и нет. и там может быть и вынь, и линь, и ppc, и arm. перебирать все комбинации не хватит жизни. значит, нужно (ну мне нужно) уметь выделять последовательности байт, характерные для той или иной архитектуры. а вот другим это не нужно абсолютно. ну просто не нужно и все тут, поскольку они заранее знают с чем имеют дело.

> Смысл специализации на чем-то — это экономия времени

> на изучение предметной области, чем больше специализаций,
> тем меньше время потребуется на изучение новых.
все верно, но тут есть одно "но". когда изучение новых специальностей затрахает основательно и необратимо, то возникнет желание делать что-то одно, но делать это хорошо. чем уже специализация тем при прочих равных (уме, усидчивости) она глубже. а чем она глубже, тем проще с ней найти работу. не ну конечно только без перегибов. я-то делаю и то, что выходит за рамки моей непосредственной работы только потому, что интересно же черт возьми, но это если действительно интересно.
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]: Реверс инжининг - с чего начать?
От: мыщъх США http://nezumi-lab.org
Дата: 10.10.09 13:24
Оценка:
Здравствуйте, Orister, Вы писали:

М>приветствую! похоже в нашем полку реверсеров прибыло. как говорится, welcome!

> А вообще, как к Вашему полку присоединиться,
> но без необходимости дневать и ночевать за монитором?
"полк" — выражение образное. такое же как и "хвост" (для тех, у кого он есть). но ладно оставим хвост и будем говорить за полк. у нас реверсеров (как и у многих других, впрочем) есть свое community, и мы обмениваемся инфой, идеями, скиптами и плагинами вместе с прочими наработками и всем-всем-всем. формально, есть до хвоста групп реверсеров, членом которых можно стать, получив право цеплять к своей подписи логотип группы, если это прикалывает, ну и доступ к ресурсам, закрытых для тех, кто не в группе. если группа большая и профессиональная, то и ресурсы у нее интересные, а то ведь есть и такие группы, члены которых не знают не только друг друга, но и организатора, а так же совершенно не в курсе зачем они тут.

но это все шуточки. а если серьезно, то... все равно welcome! лучше быть не членом группы, а ее мозгом. или вообще просто быть мозгом. и дружить с другими мозгами, потому как реверсеры очень разные. среди нас и альпинисты есть. и эти... забыл... как называются те, которые на байдарках по горным рекам? такие тоже есть. это же только я предпочитаю коротать время за монитором, а мои коллеги дружно свалили на праздник лунного света. у них там в китае фестиваль. а в норвегии уже вроде как снег и лыжня и пипл готовится к сезону. ага. а мыщъх грызет сушеный мухомор, потому как все куда съе... в смысле у людей сезон начался, все разъехались, не с кем даже пообщаться. в gt остались одни малайцы. ну у них смена сезонов вообще ни разу не выражена, да и ехать им некуда, так что они все тут. то есть там.
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[5]: Реверс инжининг - с чего начать?
От: gear nuke  
Дата: 12.10.09 13:54
Оценка:
Здравствуйте, мыщъх, Вы писали:

GN>>Скорее, без навыков RE в R&D делать нечего.

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

Не надо его так понимать. Это называется RCE.

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


Ну да — RE это не совсем RCE

М> и тут возникает вопрос: а что мы вообще понимаем под RE ?!


Хороший вопрос, потому я и отвечаю в таком ключе... что не стоит путать.

GN>> Поясню, есть 2 вида разработки: "прямая" (waterfall)

GN>> когда передметная область хорошо изучена,
М>это вы где такое прочитали?

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

Впрочем:

Dr. Winston W. Royce, in "Managing the Development of Large Software Systems"[3], the first paper that describes the waterfall model, also describes the simplest form as "risky and invites failure".

здесь

М> waterfall включает в себя последовательность следующих стадий: постановка задачи, анализ, проектирование, имплементация, верифиация, введение в эксплуатацию. так вот, "анализ и проектирование" вполне могут включать в себя RE безотносительно от степени изученности данной предметной области.


Может включать. Только это будет уже "спираль". Потому что в конце разработки окажется, что дъявол в деталях (которые по незнанию предметной области упустили) и надо бы менять архитектуру. Либо другой вариант — сказать, что на самом деле все Ок — тогда да, waterfall окажется отличным методом...

GN>> Другой вариант — когда в общем-то и не ясно

GN>> как и, главное, почему надо делать.
М>и как такая разработка называется?

См выше.

М>и какие тут будут стадии?


Стадии всегда одинаковые, различается их порядок.

М> чем плох waterfall?!


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

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


Пусть так. Если же копнуть глубже, окажется, что основная задача разбита на несколько подзадачь, которые решаются путём RE.

GN>> ...исследования и существующих конкурентов, и в предметной области.

М>так это R&D и есть. в чистом виде. RE может, в принципе, и отсутствовать, причем, мы можем заниматься только R, а D поручить кому-то еще.

Хм... в принципе, да. RCE может отсутсвовать, и даже RE, потому что R&D — более общее понятие, скажем так — процесс, а RE — всего лишь одна из методик его проведения.

GN>> проводилось исследование как руткитов, так и детекторов,

GN>> результирующий POC отличается недостижимым КПД.
М>ну вот я и говорю. мы занимаемся R, а до D дело так и не доходит. если результатом исследования явился только POC, а не конечный продукт, то мы просто просрали время и деньги.

Затраты можно отбить и до выхода конечного продукта, что и произошло в том конкретном случае.

Говоря о КПД, я имел ввиду, что полученные в течении 2х дней 1000LOC выполняют задачи лучше, чем альтернативы с затратами исчисляющимися в человеко-годах.

М> кстати, безотносительно данного POC — до введения продукта в "промышленную" эксплуатацию о его характеристиках вообще ничего нельзя сказать, особенно, в антивирусной индустрии. т.е. тестовые примеры может быть и проходят, но вот удастся ли его реализовать так, чтобы он был пригоден для пользования — тут сказать трудно. допустим, можно столкнуться с высоким уровневом false positives или negatives, потреблением ресурсов, плохой совместимостью с осями и еще хвост знает чем.


Ключевой момент, что это "безотносительно данного POC". Пинок под зад остальной индустрии был хоть и беззвучным, но достаточно сильным — например ЛК быстро подсуетились и запатентовали это Многие другие хором причитали, что это, мол, "нечестный способ"

GN>> Однако не было никакого дизассемблирования,

М>ага. то есть изучались публичные руткиты те, что в исходниках и такая же публичная инфа о непубличных руткитах? здорово

Нет, я имел ввиду, что дизасм в данном случае — лишняя трата времени. Все тесты делались (большей частью на том что ITW) уже после написания утилиты и впринципе были "для успокоения совести".

GN>> изучались лишь "архитектурные" особенности, давались оценки

GN>> трудозатрат и эффективности решений. Это я всё к тому, что RE
GN>> не совсем то же, что RCE.
М>для того, чтобы ловить руткиты как минимум нужно знать как они работают.

Достаточно знать что делает руткит, детали реализации (как он это делает) второстепенны.

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


Это нужно при том подходе, что сейчас повсеместно используется — антинаучное облопошивание пользователей.

O>>>Просто не очень хочется всю жизнь быть code monkey и сидеть на саппорте чужого кода.

GN>> Это как раз типичная задача
М>в смысле типичная RE задача?

В том смысле, что RE — это изучение принципов работы целого, на основании знаний о мелких частях. То есть смотрится одна мелкая функция, другая, а потом постепенно вырисовывается общая картина.

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


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

GN>>Я, вероятно, неясно выразился. Нет никакой прнципиальной разницы, что реверсить. Есть разница, на чём это написано было ранее,


М>ну вот тут как раз никакой разницы нет, если, конечно, сравнивать компилируемые языки с компилируемыми.


Какие именно из компилируемых языков сравнивались, что бы прийти к такому выводу? Я абсолютно уверен, что это попытка обобщить несколько частных случаев, в которые не входит, например, haskell

GN>> если это С++ и с ним плохо, то виртуальное наследование может шокировать.

М>и чем оно нас шокирует в машинном коде? его и на чистом Си можно "эмулировать".

Можно конечно эмулировать. И в результате "восстановить" из машкода не красиво наследуемые классы, а написать вермишель на С (я исхожу из того, что незнакомый с С++ человек не знает что такое множественное наследование, а тем более виртуальное).

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


Это называется continuation, стандартный паттерн в некоторых языках (кстати вполне возможно что это был не С, а скомпелированное в него что-то другое).

М>а как может шокировать форт, если о нем нет никакого представления?


Например, наличием виртуальной машины.

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


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

М>а конечные цели задачи? поднять программу до компилируемых исходников или понять что она делает?! совсем не одно и тоже!


Здесь разница в трудзатратах.

>> Готовится надо к разботке бинарей для неизвесных архитектур:

М>это если с этим придется столкнуться по работе, что вовсе не факт.

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

>> Смысл специализации на чем-то — это экономия времени

>> на изучение предметной области, чем больше специализаций,
>> тем меньше время потребуется на изучение новых.
М>все верно, но тут есть одно "но". когда изучение новых специальностей затрахает основательно и необратимо, то возникнет желание делать что-то одно, но делать это хорошо. чем уже специализация тем при прочих равных (уме, усидчивости) она глубже.

Да. Но мне кажется, что нельзя этому научиться, просто прочитав где-то, необходимо через это пройти.
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[2]: Реверс инжининг - с чего начать?
От: Michael7 Россия  
Дата: 13.10.09 14:01
Оценка:
Здравствуйте, мыщъх, Вы писали:

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


А сколько может стоить нанять чела для обратных целей, дизасма прошивок Blu-ray, SACD, PS3 проигрывателей и написания копировщиков? Вопрос, впрочем скорее всего академический, хотя как знать...
Re[3]: Реверс инжининг - с чего начать?
От: мыщъх США http://nezumi-lab.org
Дата: 15.10.09 12:38
Оценка: 2 (1)
Здравствуйте, Michael7, Вы писали:

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


M>А сколько может стоить нанять чела для обратных целей, дизасма прошивок Blu-ray, SACD, PS3 проигрывателей и написания копировщиков? Вопрос, впрочем скорее всего академический, хотя как знать...


прошивки для этих целей дизасмить необязательно. а вот ковыряться в жабе придется. во всяком случае на Blu-Ray. сколько это может стоить — вопрос не сколько даже академический, а чисто риторический. если говорить за штаты, то могу сказать, что опытный ревересер может рассчитывать на $100k ~ $200k гроссом (при работе в офисе на полную занятость). в Европе зарплаты уже сильно проседают и $100k из "пола" превращается в "потолок" выше которого хрен запрыгнешь (при том, что цены на жилье и все прочее в Европе примерно же такие как в Штатах). в Азии $50k ~ $75k это уже очень клево получать такие деньги, но там правда и цены — в Kuala Lumpur можно снять домик с балконом и бассейном за $500 в месяц и не нужно тратиться на теплую одежду. в Африке придется довольствоваться ~ $25k, при том что там многие вещи дешевле (например, жилье и хавчик), остальные даже дороже. ну в России реверсингом тоже занимаются, но больше $25k ~ $30k за него не обещают, а местами даже намного меньше. но это все справедливо только для случая если вы нанимаетесь на работу, если же вы нанимаете на нее, то найти человека с не очень большим опытом, но желанием научиться чему-то новому можно и меньше, чем за $25k.

ЗЫ. цифры взяты из личного опыта и опыта моих близких знакомых, так что они могут отличаться от средних как в одну, так и в дргую сторону. если что ногами не бить
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[5]: Реверс инжининг - с чего начать?
От: gear nuke  
Дата: 24.10.09 11:12
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>а как может шокировать форт, если о нем нет никакого представления?


Кстати о форте

However, Xpaj-B has a major new feature in the form of multi-layer encryption. While Xpaj-A hid its strings and data with a rolling XOR key, Xpaj-B goes a few steps further: the whole of the virus body (including the already-encrypted data) has been put through another layer, its decryption is called by a Virtual Machine and the bytecode for that VM is stored (encrypted again) after the virus body.

The stack-based Virtual Machine uses only seven instructions, which each take two (or fewer) 32-bit arguments:

* Push immediate value
* Push from indirect address
* Pop to indirect address
* Add top two values
* Compare top two values and jump if equal
* Call non-VM function
* Push from FS region

здесь
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[2]: Реверс инжининг - зачем, что и кому это даёт?
От: Фанатик Ад http://vk.com/id10256428
Дата: 18.03.10 06:33
Оценка:
Не придумал лучшего места для этого вопроса.

Для меня, как программиста конечной целью является продукт (программа, библиотека, схема данных, или даже просто код), т.е. мысль, выраженная в коде.
Именно конечная цель меня заставляет двигаться, именно она мне даёт эмоциональную энергию, в ней заключён интерес и конечный смысл.
Когда я получаю конечный результат — я ощущаю свою результативность, тем более если мне сказали спасибо, или заплатили деньги.
---------------
А какую эмоциональную отдачу может дать реверсинг?
Скучная, напряжённая работа, требующая внимания, памяти и других ресурсов мозга.
Какой же результат в реверсинге может порадовать...?
Всё сказанное выше — личное мнение, если не указано обратное.
Re[3]: Реверс инжининг - зачем, что и кому это даёт?
От: DTB Россия  
Дата: 18.03.10 08:53
Оценка:
Здравствуйте, Фанатик, Вы писали:

[skip]

Ф>---------------

Ф>А какую эмоциональную отдачу может дать реверсинг?
Ф>Скучная, напряжённая работа, требующая внимания, памяти и других ресурсов мозга.
Ф>Какой же результат в реверсинге может порадовать...?

оргазм
Have fun...
Re[3]: Реверс инжининг - зачем, что и кому это даёт?
От: мыщъх США http://nezumi-lab.org
Дата: 18.03.10 10:10
Оценка: 10 (2) +1
Здравствуйте, Фанатик, Вы писали:

Ф> А какую эмоциональную отдачу может дать реверсинг?

меня уже опередили оргазм. причем такой, что женщины отдыхают и нервно курят в сторонке. гейзенберга цитировать не буду, но он это описал. я так не смог бы. а чувствуем мы одно и тоже. такой вселенский приход, что ты это захачил, ты понял как оно работает. такое чувство всеохватывающего удовлетворения. потому как в реверсинге есть момент просветления. в кодировании его нет. хотя в r&d он таки есть, особенно если это R&d, а не r&D.

Ф>Скучная,

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

Ф> напряжённая работа,

почему напряженная?

Ф> требующая внимания, памяти и других ресурсов мозга.

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

Ф> Какой же результат в реверсинге может порадовать...?

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

только в программировании основные дорожки уже давно протоптаны. особенно в прикладных направлениях. а чуть в сторону... и звиздец. ну допустим, есть клевая тузла, которая подвечивает ошибки написания слов в любом приложении. я хочу такую же. только свою. есть иди как это сделаь? а если и тулзы такой нет, но есть желание написать ее первому. а тут уже нужно знать как работает система и что перехватывать.
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[4]: Реверс инжининг - зачем, что и кому это даёт?
От: Фанатик Ад http://vk.com/id10256428
Дата: 18.03.10 11:54
Оценка:
Здравствуйте, мыщъх, Вы писали:

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


М>потому как в реверсинге есть момент просветления. в кодировании его нет. хотя в r&d он таки есть, особенно если это R&d, а не r&D.


Не в кодировании, только не в кодировании, а в разработке. Решение задачи должно быть до кодирования, а не во время, и уж никак не после

М>щас. порой такие штуки попадаются, что вообще непонятно как они работают. потому как по всем понятиям работать они не могут. и реверсиг влечет за собой создание средств анализа (т.е. девелопинг), разработку новых подходов анализа, etc. это как примерно если программируя на си вы пришли к выводу, что вам нужны классы и додумались до плюсов, которые переросли в самостоятельный проект и вы уже забыли зачем вам плюсы были нужны и что вы там девелопили.


Я давно стараюсь не делать работу, которую уже когда-то делал, за сим пришёл к ООП, ООД и даже пошёл немного дальше — вынашиваю идею порабощения мира
То, что я уже делал — уже решённая задача, второй раз её решать уже не интересно, это рутина — всё равно что для каждого нового проекта изобретать таблицу умножения. В разработке более — менее удаётся избегать. Если я вижу, что придётся написать две сотни одинаковых, или почти одинаковых классов, то я сильно подумаю прежде чем этим заниматься (кстати, есть печальный опыт на эту тему).
Удастся ли избежать рутины в реверсинге? Мне кажется — нет, от рутины здесь не убежать никуда.

Ф>> напряжённая работа,

М>почему напряженная?
Очень высока цена ошибки, и я не вижу, или не знаю никаких средств организовать работу так, чтобы минимизировать цену ошибки. Это не похоже на чтение чужого кода. Я довольно долго учился читать код, на него можно смотреть с высоты птичьего полёта, нужно уловить концепт, стиль мышления автора.
Если есть архитектура, то прежде всего нужно понять её, и уж потом переходить к частностям.
(случаи, когда авторов десятки или сотни — отдельная песня)

Ф>> требующая внимания, памяти и других ресурсов мозга.

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

Изначально был делфистом, потом чуть-чуть (не больше года) ковырялся в плюсах, чуть больше трёх лет назад стал шарпистом, проходил мимо десятка других языков. Знание языков, или даже просто знакомство с ними, обогащает ум, позволяет разнообразить свои решения, и подходы. Вызывает желание улучшить свои инструменты. Плюсовикам весьма желательно познакомиться с Delphi, C# и SQL (флэйма не хочу, подробностей писать не буду)
Сишникам (это заболевание такое), весьма полезно будет написать неглубокую иерархию классов с триллионом наследников, дабы избавились от привычки кастовать интерфейс к реализации, хотя даже не знаю — поможет ли.
В антивирусной индустрии приходится быть, в разработке никто толкать не будет, нужно самому решать и смотреть, т.е. быть паровозом, а не поездом.

Ф>> Какой же результат в реверсинге может порадовать...?

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

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


гм.. "ничего нового изобрести нельзя, всё уже изобрели", всё решили — где-то я это уже видел..
Всё сказанное выше — личное мнение, если не указано обратное.
Re[5]: Реверс инжининг - зачем, что и кому это даёт?
От: Фанатик Ад http://vk.com/id10256428
Дата: 18.03.10 12:08
Оценка:
ну допустим, есть клевая тузла, которая подвечивает ошибки написания слов в любом приложении. я хочу такую же. только свою. есть иди как это сделаь? а если и тулзы такой нет, но есть желание написать ее первому. а тут уже нужно знать как работает система и что перехватывать.

Идеи были ровно до тех пор, пока я не вспомнил DevExpress, т.е. безхэндловые контролы, а так же то, что UI далекое не всегда делается с помощью GDI. Увидел бы такое чудо в природе — с удовольствием посмотрел бы как оно работает
А знать систему нужно, хотя бы за тем чтобы не допускать дыр в абстракциях.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[3]: Реверс инжининг - зачем, что и кому это даёт?
От: BlackEric http://black-eric.lj.ru
Дата: 18.03.10 13:02
Оценка:
Здравствуйте, Фанатик, Вы писали:


Ф>Не придумал лучшего места для этого вопроса.


Ф>Для меня, как программиста конечной целью является продукт (программа, библиотека, схема данных, или даже просто код), т.е. мысль, выраженная в коде.

Ф>Именно конечная цель меня заставляет двигаться, именно она мне даёт эмоциональную энергию, в ней заключён интерес и конечный смысл.
Ф>Когда я получаю конечный результат — я ощущаю свою результативность, тем более если мне сказали спасибо, или заплатили деньги.
Ф>---------------
Ф>А какую эмоциональную отдачу может дать реверсинг?
Ф>Скучная, напряжённая работа, требующая внимания, памяти и других ресурсов мозга.
Ф>Какой же результат в реверсинге может порадовать...?


Я это сделал!!!!!!!!!!!!!! YO!!!!!!!!
Примерно так. Зачастую после не одной недели втыкания в WinHex

А исходная мотивация — смогу\не смогу.
https://github.com/BlackEric001
Re[4]: Реверс инжининг - зачем, что и кому это даёт?
От: Фанатик Ад http://vk.com/id10256428
Дата: 18.03.10 13:23
Оценка:
BE>А исходная мотивация — смогу\не смогу.

Я заранее знаю, что смогу — иначе не берусь. Думаю что будет, когда ты тоже будешь знать...
не уйдёт ли мотивация
Всё сказанное выше — личное мнение, если не указано обратное.
Re[4]: Реверс инжининг - зачем, что и кому это даёт?
От: FR  
Дата: 18.03.10 15:52
Оценка:
Здравствуйте, мыщъх, Вы писали:

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


Ф>> А какую эмоциональную отдачу может дать реверсинг?

М>меня уже опередили оргазм. причем такой, что женщины отдыхают и нервно курят в сторонке. гейзенберга цитировать не буду, но он это описал. я так не смог бы. а чувствуем мы одно и тоже. такой вселенский приход, что ты это захачил, ты понял как оно работает. такое чувство всеохватывающего удовлетворения. потому как в реверсинге есть момент просветления. в кодировании его нет. хотя в r&d он таки есть, особенно если это R&d, а не r&D.

В кодировании тоже есть свой наркотик

http://kapterev.livejournal.com/496630.html
http://russian.joelonsoftware.com/Articles/FireAndMotion.html

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