Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Willi2001
Заблокирован
1

Как открывать файлы-ЕХЕ для С++ через "декомпилятор JetBrains dotPeek .1.5"?

19.09.2015, 13:42. Просмотров 2921. Ответов 17
Метки нет (Все метки)

Здравствуйте!
Научите, пожалуйста, открывать файлы-ЕХЕ для С++ через "декомпилятор JetBrains dotPeek .1.5".
Сам пока не открывал, страшновато. "Декомпилятор JetBrains dotPeek .1.5" скачал вчера.

Он немного чудной — отличается от обычных программ, похож на рисунок.

"Декомпилятор JetBrains dotPeek .1.5" находится у меня в папке "Программные файлы" (объём 46 Мб). Характерная особенность — папок не имеет, сам как — иконка.
Файл-ЕХЕ во вложении (точнее: скачан с "Форума Программистов" за 2010 год)
0
Миниатюры
Как открывать файлы-ЕХЕ для С++ через "декомпилятор JetBrains dotPeek .1.5"?  
Вложения
Тип файла: rar shakerSort.rar (36.6 Кб, 10 просмотров)
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2015, 13:42
Ответы с готовыми решениями:

Через ООП: Дать для числа наименование: "рубль", "рубля", "рублей";
Помогите пожалуйста с задачей. Могу сделать ее просто, но надо через ООП и у...

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов),...

Как удалять скрытые, системные и "для чтения" файлы?
Удаляю файлы при помощи DeleteFile(). При этом файлы с вышеуказанными...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года "весна", "лето", "осень", "зима" определить...

Где ошибка невозможно преобразовать указатель "this" из "const pers" в "pers &" при выводе объектов через cout
Добрый день! Переписал код из книг Лафоре, создание мультимножества из...

17
Willi2001
Заблокирован
19.09.2015, 14:46  [ТС] 2
Что и откуда?
Пояснения:
1) dotPeek 1.5 as a 32-bit executable (47.0 MB) Официальный сайт для загрузки
2) shakerSort.rar (36.6 Кб, 7 просмотров) cut
0
Willi2001
Заблокирован
19.09.2015, 21:39  [ТС] 3
Модераторы, перенесите, пожалуйста, тему в раздел, где "Корифеи С++ "! От "начинающих" — толку не будет.
Нет желания ожидать: "когда рак на горе свистнет".

Сам пытаюсь что-то делать, но пока много неясного.
Например, распаковываю архив до 209 Кб. Запускаю: дважды ЛКМ
Появляется Командная строка:
Shaker Sort.
Enter array dimension:

Трудности на ровном месте…

Запускаю Декомпилятор "JetBrains dotPeek 1.5". Отвожу его туда, где файл "распакованный Shaker Sort". Дальше тупик.
По смыслу картинки, ниже, ему что-то не нравится или чего-то не хватает:
Shaker Sort (not supported)

Как уговорить Декомпилятор немного поработать?
0
Миниатюры
Как открывать файлы-ЕХЕ для С++ через "декомпилятор JetBrains dotPeek .1.5"?   Как открывать файлы-ЕХЕ для С++ через "декомпилятор JetBrains dotPeek .1.5"?  
mr_mczakenberg
65 / 65 / 72
Регистрация: 10.04.2015
Сообщений: 281
19.09.2015, 22:07 4
Ну, раз ты такой крутой, что сам-то не разобрался?
В Корифеев ему перенести, программист, а с программкой разобраться не может(даже погуглить)
0
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
19.09.2015, 22:20 5
Цитата Сообщение от Willi2001 Посмотреть сообщение
открывать файлы-ЕХЕ для С++ через "декомпилятор JetBrains dotPeek .1.5".
не бывает
декомпилировать исполняемый код, нереально
компиляция необратимый процесс
например
написал ты
C++
1
2
3
int sum=0;
for(int i=0;i<10;i++)
  sum+=i;
а компилятор это все заменил на sum=45
и насколько я почитал, JetBrains это декомпилятор для шарпа, а это совсем другая история
1
Willi2001
Заблокирован
19.09.2015, 23:02  [ТС] 6
ValeryS, спасибо!
Предполагаю, все они родня: C# и С++ — много общего!

Основные C-sharp-декомпиляторы http://my-it-notes.com/2011/12/c-sharp-decompiler-disassembler/
Кликните здесь для просмотра всего текста
Reflector (http://www.reflector.net/) – один из самых мощных и активно допиливаемых декомпиляторов. Кроме Шарпа жует VB.Net. Платный. Есть триалки. (к нему для удобства реккомендуют прикручивать – http://www.denisbauer.com/NETTools/FileDisassembler.aspx).
Дотпик (dotPeek – http://www.jetbrains.com/decompiler/) от jetbrains. Бесплатен.
Для более низкоуровневого анализа и дизасемблинга sharp-программ:
Ildasm – http://msdn.microsoft.com/ru-ru/library/f7dy01k1.aspx
Ilspy – http://wiki.sharpdevelop.net/ilspy.ashx
Старенькое руководство от мыщъха по взлому шарпных программ: http://www.insidepro.com/kk/258/258r.shtml


dotPeek http://habrahabr.ru/company/JetBrains/blog/189580/
Кликните здесь для просмотра всего текста
Напомним, dotPeek — это бесплатный декомпилятор .NET-сборок, который показывает результирующий код на языке C# и позволяет изучать его с помощью многообразных функций навигации и поиска, что знакомы и, будем надеяться, симпатичны пользователям другого нашего продукта, ReSharper. В частности, в dotPeek можно проводить поиск конкретного типа, символа или члена класса во всех загруженных сборках; переходить от деклараций символов к их использованиям и наоборот; анализировать иерархии наследования. Кроме того, при наличии файлов отладочной информации (.pdb) dotPeek показывает оригинальный исходный код сборок и дружит с серверами символов, такими как Microsoft Reference Source Center и SymbolSource.org, с которых при необходимости может скачивать исходный код различных библиотек.
Что касается собственно новой версии, то она может быть интересна .NET-разработчикам по нескольким причинам:
dotPeek теперь позволяет экспортировать декомпилированные сборки в проекты (.csproj). Нас об этом долго и убедительно просили, и вот оно, счастье: восстанавливать потерянные исходники по оставшимся библиотекам теперь гораздо проще. Помимо создания проекта и сохранения восстановленного исходного кода в его структуре, dotPeek умеет создавать файлы решений (.sln), воспроизводить структуру папок и файлов на основании отладочной информации, настраивать тип проекта исходя из типа сборки, сохранять историю экспортов и напоминать о том, что та или иная сборка уже была сохранена в виде проекта.
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,583
Записей в блоге: 2
Завершенные тесты: 1
19.09.2015, 23:06 7
Цитата Сообщение от Willi2001 Посмотреть сообщение
C# и С++ — много общего!
кроме буквы в названии, пожалуй, больше ничего.
1
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
19.09.2015, 23:18 8
Цитата Сообщение от Croessmah Посмотреть сообщение
кроме буквы в названии,

Цитата Сообщение от Willi2001 Посмотреть сообщение
Предполагаю, все они родня: C# и С++ — много общего!
ну разве что в синтаксисе и то не всегда
да и в букве как сказал Croessmah
шарп компилит код который должон, по великой задумке мелкомягких, исполнятся на любой машине, NET технология, понимаешь
и посему из них вполне реально выдернуть исходники
а плюсы компилят код уже в машинных кодах,можно сказать в ассемблере,хотя это не совсем верно
для ARM будет совсем другой код, нежли для Intel
да еще оптимизатор постарается
так что дизассемблер в зубы
IDA например, у неё есть модуль который переводит из ассемблера в Си
но чаще всего лучше бы он этого не делал, запутанный малопонятный код
1
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,583
Записей в блоге: 2
Завершенные тесты: 1
19.09.2015, 23:34 9
Цитата Сообщение от ValeryS Посмотреть сообщение
но чаще всего лучше бы он этого не делал, запутанный малопонятный код
то есть получается, что (компилятор + IDA) == (классный "обфускатор")?
1
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
20.09.2015, 00:01 10
Цитата Сообщение от Croessmah Посмотреть сообщение
классный "обфускатор"
по сути да
Вот например
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{
  const char *v1; // ecx@1
  char v2; // al@2
  int v3; // eax@4
  int v4; // eax@5
  size_t result; // eax@10
 
  v1 = a1;
  if ( (_BYTE)a1 & 3 )
  {
    while ( 1 )
    {
      v2 = *v1++;
      if ( !v2 )
        break;
      if ( !((_BYTE)v1 & 3) )
        goto main_loop;
    }
LABEL_10:
    result = v1 - 1 - a1;
  }
  else
  {
    while ( 1 )
    {
      do
      {
main_loop:
        v3 = (*(_DWORD *)v1 + 2130640639) ^ ~*(_DWORD *)v1;
        v1 += 4;
      }
      while ( !(v3 & 0x81010100) );
      v4 = *((_DWORD *)v1 - 1);
      if ( !(_BYTE)v4 )
        break;
      if ( !BYTE1(v4) )
        return v1 - 3 - a1;
      if ( !(v4 & 0xFF0000) )
        return v1 - 2 - a1;
      if ( !(v4 & 0xFF000000) )
        goto LABEL_10;
    }
    result = v1 - 4 - a1;
  }
  return result;
}
можно сразу догадаться что сие есть
а IDA опознала как strlen
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,583
Записей в блоге: 2
Завершенные тесты: 1
20.09.2015, 00:05 11
ValeryS, батюшки тот редкий случай, когда на asm'е читабельнее?
0
Willi2001
Заблокирован
20.09.2015, 00:43  [ТС] 12
Спасибо толковым людям, подсказали: декомпиляция с помощью OllyDbg! Осталось немного доработать саму идею. Потом напишу о результатах.

Практические советы:
Кликните здесь для просмотра всего текста
Инсталляция OllyDbg http://www.google.ru/url?url=http://...vceheYTKn80J4A
"Урок с помощью OllyDbg" http://daxa.com.ua/article/num1/
0
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
20.09.2015, 01:05 13
Цитата Сообщение от Willi2001 Посмотреть сообщение
декомпиляция с помощью OllyDbg!
и что это за "толковые люди"? Олька это отладчик а ни разу ни дизассемблер
конечно у ней есть плагины которые облегчают жизнь но никак не сравнится IDAй
как и ИДА не сравнится с Олькой по качеству отладки
у них разные задачи
походу ты еще не понял, куда решил влезть
ознакомься с трудами Криса Касперски
например "Техника отладки программ без исходных текстов"
http://forcoder.ru/security/tehnika-...nyh-tekstov-81
вообще у него много книг
1
Willi2001
Заблокирован
20.09.2015, 01:31  [ТС] 14
ValeryS, спасибо!
Этих книг до смерти не перечитать. Мне нужны только мельчайшие детали, полагаюсь на интуицию или озарение. Вся суть ниже, пока её не оспариваю.

Как узнать исходный код программы? Декомпиляция С++...
Как узнать исходный код С++
Кликните здесь для просмотра всего текста
Вопрос: Нужно узнать исходный код программы, написанной на C++. (Почему именно на с++? - Не спрашивайте, просто знаю и всё.)

Ответ: ну исходный код на С++ ты ни как не получишь, а вот дизассемблировать вполне можно. погляди на IDA Pro. лучше инструмента под Windows я не видел. Если изменить ход программы нужно совсем чуток, то можешь воспользоваться OllyDbg. И прямо на ходу изменить ассеблерные команды в нужном месте и сохранить новый дамп. Уроки и статьи по дизассемблированию можешь найти на wasm.ru.

Дополнение: Насчет дизассемблирования вам уже ответили, скажу чуть подробнее по самой проблеме. В том случае, если exeшник aimbot'а никак не запакован (в таком случае необходимо руками снять соответствующий пакер), то строковые константы обычно хранятся в одной части файла и все вместе. Т.е, вполне вероятно, что даже без использования IDA для реверсинга, можно в любом hex-редакторе подправить неустраивающую вас строчку (headshot) на что-либо менее заметное.
0
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
20.09.2015, 01:38 15
Лучший ответ Сообщение было отмечено Willi2001 как решение

Решение

Цитата Сообщение от Willi2001 Посмотреть сообщение
Мне нужны только мельчайшие детали, полагаюсь на интуицию или озарение.
ну полагайся, полагайся
для работы с Олькой (да и с ИДой тоже)нужно прекрасно знать ассемблер, архитектуру,знать Си на низком уровне,как выглядят строки, структуры, классы, адресная арифметика, ОСь опять же
никаких Сишных строк ты в листинге не увидишь
Цитата Сообщение от Willi2001 Посмотреть сообщение
Декомпиляция С++
декомпиляция невозможна, возможно дизассемблирование
это разные вещи
0
Willi2001
Заблокирован
20.09.2015, 01:58  [ТС] 16
ValeryS, спасибо! Пишу по-русски, как думаю!
Кликните здесь для просмотра всего текста
Вы, наверно, преподаватель — ощущается педант.
Когда всё перечитаю и выучу, то угроблю: интерес, страсть и жизнь. Кроме того и сам себя поневоле, в момент чтения, буду зомбировать, загоню в прокрустово ложе стереотипов. Сейчас… разбежался.

Лучше слушать оптимистов, пример ниже, где за два часа пойму азы ассемблера.
Желательно иметь хоть приблизительное представление о том что такое ассемблер но если и этого багажа знаний у вас нет нестрашно, думаю после этого опыта, вы обязательно выучите азы ассемблера http://daxa.com.ua/article/num1/
0
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
20.09.2015, 02:10 17
Цитата Сообщение от Willi2001 Посмотреть сообщение
Вы, наверно, преподаватель
ни разу в жизни
Цитата Сообщение от Willi2001 Посмотреть сообщение
ощущается педант.
отголоски программирования, ну и обратного инжинеринга, раздолбайство на пять минут, может добавить лишний месяц трудов
Цитата Сообщение от Willi2001 Посмотреть сообщение
Лучше слушать оптимистов, пример ниже, где за два часа пойму азы ассемблера.
это не оптимисты, это дилетанты

короче запусти Ольку, загрузи код , и поставь на пошаговое выполнение
а потом примерно через час, пойдешь искать книгу,кою я посоветовал
там в отличии от форумов и блогов хоть более-менее систематизировано
вот еще одна его книга "Фундаментальные основы хакерства. Искусство дизассемблирования "
http://www.labirint.ru/books/151717/
1
Willi2001
Заблокирован
20.09.2015, 02:58  [ТС] 18
ValeryS, спасибо! Уговорили. Уже план по скачиванию книг — перевыполнил.
Кликните здесь для просмотра всего текста
1) Касперски Крис. Фундаментальные основы хакерства. Техника хакерских атак (том 1) DOC JPG
http://www.twirpx.com/file/28460/
Издательство: СОЛОН - Р, 2005 г. техника работы с отладчиком и дизассемблером, идентификация и реконструкция ключевых структур исходного языка - функций (в т. ч. виртуальных), локальных и глобальных переменных, ветвлений, циклов, объектов и их иерархий, математических операторов и т. д.

2) Касперски Крис. Образ мышления - дизассемблер IDA Pro PDF
http://www.twirpx.com/file/260510/
Подробный справочник по функциям встроенного языка, интерфейсу и архитектуре дизассемблера IDA Pro 4.01 с уточнением особенностей младших версий.
Показывает приемы эффективного использования IDA Pro для исследования зашифрованного кода, π-кода, самомодифицирующегося кода и кода, защищенного антиотладочными приемами.
Ориентирован на системных программистов средней и высокой квалификации в совершенстве владеющих языком ассемблера микропроцессоров серии Intel 80x86 и работающих с операционными системами фирмы Microsoft.

3) Касперски Крис. Тонкости дизассемблирования DOC
http://www.twirpx.com/file/531912/
Очень часто под рукой не оказывается ни отладчика, ни дизассемблера, ни даже компилятора, чтобы набросать хотя бы примитивный трассировщик. Разумеется, что говорить о взломе современных защитных механизмов в таких условиях просто смешно, но что делать если жизнь заставляет? .

4) Крис Касперски - Величайший российский хакер-гуру
http://www.twirpx.com/topic/4726/
Биография
Крис Касперски (Николай Лихачёв) родился 2 ноября 1976 года, в маленьком поселке на Северном Кавказе.
Далее произошли две вполне логичные вещи – он подрос и пошел в школу. В начальных классах у Криса появился первый компьютер – «Правец-8Д», болгарский клон британской машины Oric Atmos с кучей документации на болгарском же языке. С него все и началось.
У народа в те дни, если что и встречалось, то «Спектрумы». Поэтому не заинтересоваться было трудно. По признанию будущего хакера, крайне интересно было воспроизвести на машине «елочку» или запустить по экрану шарик, отскакивающий от стенок. Этим, в числе прочего, и озадачивался наш герой…
0
20.09.2015, 02:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2015, 02:58

Описать класс "Контейнер" как объект, предназначенный для транспортировки классов "Строительных блоков"
1. Опишите класс &quot;Строительный блок&quot;, описывающий габариты и массу блока...

Наследуемым классом для комплексного числа объявить класс "радиус-вектор", имеющий данные "длина" и "угол"
кто то напишите пожалуйста, вот программа: наследуемым классом для комплексного...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование)
Разработать программу с использованием наследования классов, реализующую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru