Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.51/104: Рейтинг темы: голосов - 104, средняя оценка - 4.51
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615

Декомпиляция dll файла

04.04.2017, 17:22. Показов 20550. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Читал, все говорят что можно, а чем не пишут.
Сам файл размером 101 Кб. Написан он по любому на C и/или C++.

Как его можно отчекрыжить?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.04.2017, 17:22
Ответы с готовыми решениями:

Декомпиляция из dll в C++
У меня есть библиотека dll, как её можно декомпилировать в C++? Точно знаю, что она написана на C++ Пытался декомпилировать вот тут...

Декомпиляция dll
Возможна ли декомпиляция dll'ки, защищенной Themida, если есть ThemidaSDK.h и Obfuscator.cpp, с помощью которых была скомпилирована эта dll...

Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями?
Движок перевожу на платформу Win64 и нужно, чтобы разрядность ЕХЕ и DLL совпадали, а в интернете искал 64-битные версии ogg.dll, vorbis.dll...

53
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
11.01.2018, 15:52  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от dailydose Посмотреть сообщение
открывает при каждом запуске ехе?
а ты после того как заменяешь всё нуля что делаешь далье? ну там сохранить/перезаписать ехе или как?
Весь чит состоит из exe'шника который подгружает через процессы к игре dll'ку.
Я не понял как в IDA что-то высматривать, я увидел там то же самое, что и в HEX редакторе.

Открыл в HEX редакторе exe'шник, нашел поиском адрес сайта(тут он только в 1м месте), и заменил его нолями.
Запустил, открываю игру - игра сворачивается, браузер лезет на тот же сайт.
Ну думаю может в dll'ке ещё что, открываю - есть 3 штуки, но там 1 видимо из самого чита ссылка, 2 просто в консоль выводится, а 3я имеет другой адрес, вернее на форум того же сайта.

После изменений я просто нажимал сохранить, открывал повторно - уже нет адреса.

Цитата Сообщение от dailydose Посмотреть сообщение
ну ты как программист мог бы не юзать сам читы, а писать читы-винлокеры
либо хакать инет, вычислять негодяев по ip и банить их
либо хакнуть сервак, получить права админа и банить читеров
Я? Программист?
Я без форума и гугла окно создать не смогу.

Цитата Сообщение от jr_ Посмотреть сообщение
Патчить надо call ds:ShellExcecuteA (опкод FF XX XX XX XX) на 5 nop-ов (опкод 0x90 вроде).
Но врядли там, откуда сделан скрин - там следом идет ExitProcess (или может быть так и надо ?).
Если бы было понятно, откуда функция начинается...
Надо попробовать сделать тестовую прогу, которая открывает сайт, если перед и после функции поставить несколько переносов строк, они уберутся в скомпилированном виде?
Типа того должно быть?

C++
1
ShellExecuteA(Handle, 'open', 'https://www.cyberforum.ru/', nil, nil, SW_SHOW);
0
139 / 139 / 53
Регистрация: 14.06.2016
Сообщений: 467
11.01.2018, 15:58
тяжелый случай, проще скинуть бинари в лс, если не понятно о чём я пишу.
2
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
11.01.2018, 17:04  [ТС]
Да мне бы показать, от куда до куда нужно удалять.

Там и exe и dll, а так же текстовик с инфой(папку с настройками приложения не вкладывал):
Desktop.rar
0
139 / 139 / 53
Регистрация: 14.06.2016
Сообщений: 467
11.01.2018, 17:39
Вроде так если я не ошибся.

Не по теме:


кстати говоря, а вообще это тот ли форум для такого ? :D:D:D:D

Вложения
Тип файла: zip Desktop (4).zip (208.7 Кб, 2 просмотров)
1
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
11.01.2018, 18:43  [ТС]
Без подстав? У меня винда не удалится?
Просто бывают люди, которые любят пошутить. ))
0
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
11.01.2018, 19:13
на виртуалке запустите, если сомневаетесь
1
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
11.01.2018, 19:53  [ТС]
Игра вылетела. ))
0
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
23.03.2018, 10:27  [ТС]
А какой тип процессора нужно выбирать, и зачем?

0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
23.03.2018, 12:46
Цитата Сообщение от артист Посмотреть сообщение
и зачем?
и действительно, зачем здесь нужна IDA?
не вижу смысла лезть в dll (их обычно переписывают, а не редактируют).
в чём проблема отладчиком отключить вызов сайта?
глянул по быстрому, там всё на ладони.
вырубил загон в стек, и перекинул несколько условных переходов, после чего приложение перестало падать и надпись Searching... заместо отсутствия dll, дальше трейсить не могу игры нет (там делается снапшот процесса).
1
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
23.03.2018, 13:00  [ТС]
Да я уже тот чит удалил. ))

Я просто хочу хоть немного понять как пользоваться программой.

Если открывать *.exe, что ставить в этом окне?
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
23.03.2018, 13:17
Цитата Сообщение от артист Посмотреть сообщение
Я просто хочу хоть немного понять как пользоваться программой.
https://wasm.in/blogs/vvedenie... chast-1.3/
2
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
31.03.2018, 16:02  [ТС]
Это я смотрел на ютубе...

Как полностью код дисаземблировать в С?

Открываю в IDA файл exe(чит для игры), весит он 385кб(я сравнивал моя мини программа больше весит).
Так вот, нажимаю F5 - и выдаёт клочек кода:

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
signed __int64 __fastcall sub_140002290(__int64 a1)
{
  __int64 v1; // rax
  HWND v2; // rax
  signed __int64 result; // rax
  HWND v4; // rax
  const CHAR *lpString; // ST40_8
  HWND v6; // rax
  HWND v7; // rax
  HWND v8; // rax
  HWND v9; // rax
  __int64 v10; // r8
  __int64 v11; // r9
  HWND v12; // rax
  __int64 v13; // rax
  __int64 v14; // [rsp+20h] [rbp-5C8h]
  __int64 v15; // [rsp+30h] [rbp-5B8h]
  unsigned int v16; // [rsp+38h] [rbp-5B0h]
  unsigned int v17; // [rsp+3Ch] [rbp-5ACh]
  __int64 v18; // [rsp+50h] [rbp-598h]
  char DstBuf[2]; // [rsp+1E0h] [rbp-408h]
  char v20; // [rsp+1E2h] [rbp-406h]
  __int64 v21; // [rsp+5F0h] [rbp+8h]
 
  v21 = a1;
  *(_WORD *)DstBuf = 0;
  memset(&v20, 0, 0x3E6ui64);
  v1 = sub_14000E1D0();
  sprintf_s(DstBuf, 0x1F4ui64, L"/checkkey.php?key=%ws&hwid=%ws&dl=0", v21, v1);
  LOBYTE(v14) = 0;
  v15 = sub_14000E9D0((char)off_140053000[0]);
  if ( sub_14000A910(v15, "trial not available") )
  {
    v2 = GetDlgItem(hDlg, 1006);
    qword_1400549B8(v2, L"Trial not available.");
    result = 0i64;
  }
  else if ( sub_14000A910(v15, "key not found") || sub_14000A910(v15, "is wrong!") )
  {
    v4 = GetDlgItem(hDlg, 1006);
    qword_1400549B8(v4, L"Invalid Key.");
    result = 0i64;
  }
  else if ( sub_14000A910(v15, "key is expired") )
  {
    lpString = (const CHAR *)sub_1400021A0(v15, "This key", 55i64);
    v6 = GetDlgItem(hDlg, 1006);
    SetWindowTextA(v6, lpString);
    result = 0i64;
  }
  else if ( sub_14000A910(v15, "badhwid") )
  {
    v7 = GetDlgItem(hDlg, 1006);
    qword_1400549B8(v7, L"This key was used on another computer, please wait about ~20 mins before use again.");
    result = 0i64;
  }
  else if ( sub_14000A910(v15, "404 Not Found") )
  {
    v8 = GetDlgItem(hDlg, 1006);
    qword_1400549B8(v8, L"Web error 404.");
    result = 0i64;
  }
  else if ( sub_14000A910(v15, "game=10") )
  {
    if ( sub_14000A910(v15, "daysleft=") )
    {
      v17 = sub_140002040(v15, "daysleft=", 10i64);
      v16 = sub_140002040(v15, "hoursleft=", 10i64);
      if ( sub_14000B020(DstBuf, L"trial") )
        sub_140003590(&v18, L"Key Accepted\nKey time: Trial period about ~3 hours\n", v10, v11, v14);
      else
        sub_140003590(&v18, L"Key Accepted\nKey time: %i days %i hours\n", v17, v16, v14);
      v12 = GetDlgItem(hDlg, 1006);
      qword_1400549B8(v12, &v18);
      sub_14000A990(&unk_1400546C0, L"%ws", L"Crossout.exe");
      sub_14000A990(
        &word_140054790,
        L"%ws",
        L"Unable to find Crossout.exe process, please run Crossout in DirectX 11 mode.");
      v13 = sub_14000E1D0();
      sprintf_s(::DstBuf, 0x1F4ui64, L"/checkkey.php?key=%ws&hwid=%ws&dl=1", v21, v13);
      if ( (unsigned int)sub_140015110() )
      {
        Sleep(0xBB8u);
        result = 1i64;
      }
      else
      {
        result = 0i64;
      }
    }
    else
    {
      result = 0xFFFFFFFFi64;
    }
  }
  else
  {
    v9 = GetDlgItem(hDlg, 1006);
    qword_1400549B8(v9, L"This key is not for Crossout cheat.");
    result = 0i64;
  }
  return result;
}
И всё, больше куда я не тыкал ничего кроме этого же кода не выдаёт.
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
31.03.2018, 16:13
Цитата Сообщение от артист Посмотреть сообщение
Как полностью код дисаземблировать в С?
никак.
IDA вам выдала мнемокод - перевела байты в мнемонику ассемблера.
вы ничего не скомпилируете просто вытащив кусок кода.
IDA дала вам шаблон, теперь открываете студию и пишите самостоятельно код по этому шаблону.
1
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
31.03.2018, 16:25
Цитата Сообщение от артист Посмотреть сообщение
И всё, больше куда я не тыкал ничего кроме этого же кода не выдаёт.
Тыкаете на другую функцию - декомпилит её.
1
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
31.03.2018, 16:52  [ТС]
Цитата Сообщение от _lunar_ Посмотреть сообщение
никак.
IDA вам выдала мнемокод - перевела байты в мнемонику ассемблера.
вы ничего не скомпилируете просто вытащив кусок кода.
IDA дала вам шаблон, теперь открываете студию и пишите самостоятельно код по этому шаблону.
Не знаю, по моему это просто одна функция...

Цитата Сообщение от Someone007 Посмотреть сообщение
Тыкаете на другую функцию - декомпилит её.
В том то и дело, что одно и тоже декомпилит.

Получил полностью:
File -> Produce File -> Create C File

Создал пустой win32 проект(прога x64, а у меня нет такого в VS).
Сунул код полностью, пишет, что не найден заголовок defs.h, это надо OpenGL32 библиотеку ставить?

Добавлено через 6 минут
Не пойму от чего этот заголовок.
Нашел вот просто по имени: https://github.com/khizmax/lib... /vc/defs.h
А как поставить в VS?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
31.03.2018, 17:10
Цитата Сообщение от артист Посмотреть сообщение
В том то и дело, что одно и тоже декомпилит.
Обновите значит вашу IDA и Hex-Rays, это известный баг и давно пофикшен. И обойти его тоже можно кликая по функциям из окна Functions Window.

Цитата Сообщение от артист Посмотреть сообщение
Создал пустой win32 проект(прога x64, а у меня нет такого в VS).
Сунул код полностью, пишет, что не найден заголовок defs.h
Если у вас цель скомпилировать программу обратно в exe, то поспешу вас огорчить, вы не скомпилируете обратно программу без ручной правки всего кода, полученного с помощью Hex-Rays.

Цитата Сообщение от артист Посмотреть сообщение
это надо OpenGL32 библиотеку ставить?
Зачем?

Цитата Сообщение от артист Посмотреть сообщение
Не пойму от чего этот заголовок.
Вы не поверите, но он находится в папке с IDA...
1
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
31.03.2018, 17:17  [ТС]
Так как его в VS запихнуть?
Править проще с ошибок же...

Добавлено через 3 минуты
Закинул в проект, т.к. в заголовке просто фигня, не имена решений, а уже они.
Всё равно какой-то он упоротый, не видит...
Кавычки наверное надо...
0
 Аватар для vlisp
1070 / 991 / 153
Регистрация: 10.08.2015
Сообщений: 5,416
31.03.2018, 17:20
кто-нибудь скажет зачем дизассемблировать библиотеку? Ведь это нарушает суть их использования, то есть использование готового скомпилированного кода без вникания в логику его работы. То есть доверяя разработчику. Суть в экономии времени.
1
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
31.03.2018, 17:24  [ТС]
Да не библиотека это, а исполняемый файл *.exe.
Чит для игры, но к нему продают ключи по 400р. это наглость.
Игра вообще бесплатная(на донате видимо отбивается).

Мне и игра то эта не нравится, просто мне заняться нечем, я то за одно хватаюсь, то за другое.
И ничего не довожу до конца.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
31.03.2018, 17:29
Цитата Сообщение от артист Посмотреть сообщение
а не библиотека это, а исполняемый файл *.exe.
Чит для игры, но к нему продают ключи по 400р. это наглость.
Зачем его компилировать обратно тогда? Разобрали логику работы защиты по коду из Hex-Rays, поправили asm прямо в exe и все.
Зачем нужны эти лишние телодвижения?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.03.2018, 17:29

Декомпиляция С++
Товарисчи с++ разработчики, тут возникла такая проблема, связанная с декомпиляцией с++ приложений. Увы, познания конкретно в этом языке у...

Декомпиляция программы
Как декомпилировать программу? И как узнать на каком языке она написана?

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

Декомпиляция программы
Люди, никто не знает можно ли декомпелировать программу написаную на языке Си в исходный код?

Возможна ли декомпиляция исходника?
Возможно ли получить исходник программы на c++? Если да, то как от этого защититься?


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru