Обнаружил взлом своей программы копированием файла msimg32.dll
, в папку моей программы
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.217.24] |
|
|
Правила раздела C/C++: Системное программирование и WinAPI
FAQ Сайта (C++)
FAQ Форума
Наши Исходники
Поиск по Разделу
MSDN Library Online (Windows Driver Kit)
Google| Страницы: (5) 1 2 [3] 4 5 все ( Перейти к последнему сообщению ) |
Обнаружил взлом своей программы копированием файла msimg32.dll
, в папку моей программы
|
Сообщ.
#31
,
|
|
|
|
Цитата Попытаться удалять DLL? Сразу найдет неугодный вызов DeleteFile или что-нить аналогичного. Можно написать лаунчер для своей программы... Launcher На Delphi , но смысл, думаю, понятен:![]() ![]() program Launcher; uses Windows, SysUtils; procedure DetectAndRemoveDLL; var SR: TSearchRec; begin if FindFirst('*.dll', faAnyFile - faDirectory, SR) = 0 then begin repeat if (SR.Attr and faReadOnly) <> 0 then FileSetAttr(SR.Name, SR.Attr and not faReadOnly); DeleteFile(SR.Name); until FindNext(SR) <> 0; FindClose(SR); end; end; procedure Exec(const S: string); const Flag = CREATE_DEFAULT_ERROR_MODE; var SI: TStartupInfo; PI: TProcessInformation; begin FillChar(SI, SizeOf(TStartupInfo), 0); SI.cb := SizeOf(TStartupInfo); CreateProcess(nil, PChar(S), nil, nil, False, Flag, nil, nil, SI, PI); CloseHandle(PI.hProcess); CloseHandle(PI.hThread); end; begin DetectAndRemoveDLL; Exec('MainProg.exe'); end. А потом понадобится Enigma Virtual Box Скрытый текст ![]() Что усложнит взлом... |
|
Сообщ.
#32
,
|
|
|
|
Современные компиляторы с включенной оптимизацией и так являются хорошими обфускаторами. Но как видишь это никого не остановило. Есть куда более действенные методы защиты от отладки. Но все это лишь упирается во время взлома: 10 мин, день, неделя. Добавлено Цитата Filka @ потом понадобится Enigma Virtual Box Это вроде обычный упаковщик. |
|
Сообщ.
#33
,
|
|
|
|
Цитата shm @ Это вроде обычный упаковщик. Распакуй |
|
Сообщ.
#34
,
|
|
|
|
|
Сообщ.
#35
,
|
|
|
|
а как это вяжется с разными версиями DLL для разных систем? |
|
Сообщ.
#36
,
|
|
|
|
Цитата Современные компиляторы с включенной оптимизацией и так являются хорошими обфускаторами. Не, тут о настоящих обфускаторах идет речь. Он замусоривает и запутывает код. И поток управления и поток данных. Необратимо. Obfuscator-LLVM это, так сказать, последняя академическая разработка. У них есть демка - kryptonite: http://0vercl0k.tuxfamily.org/bl0g/?p=260 Цитата а как это вяжется с разными версиями DLL для разных систем? Ты читаешь клинический бред) Какой ты хочешь получить ответ?) |
|
Сообщ.
#37
,
|
|
|
|
Цитата reinterpret_alexey @ Он замусоривает и запутывает код Иии? Ты думаешь это сильно усложнит отладку? |
|
Сообщ.
#38
,
|
|
|
|
Цитата Иии? Ну посмотри демку. Ты можешь покрыть весь код приложения таким обфускатором и сделать так, чтобы он работал только при правильном вводе серийника. Пока серийник не уплывет к отакуюсчим - не думаю, что кто-либо поломает такое. А к случае с уплыванием - надо раздавать именные лицензии как делает IDA&HexRays) Цитата Иии? Ты думаешь это сильно усложнит отладку? Это сделает её практически невозможной. Даже автоматизированными средствами, т.к. не понятно, что именно искать. Символьные формулы тоже не составишь - ни один smt сольвер их не решит: слишком много кода, не понятно, какой код выполняется, а какой нет. Какой мусорный, а какой нет. В то и идеяя запутывания control-flow. |
|
Сообщ.
#39
,
|
|
|
|
Цитата reinterpret_alexey @ Ну посмотри демку Домой приду - посмотрю. |
|
Сообщ.
#40
,
|
|
|
|
Цитата UncleBob @ а как это вяжется с разными версиями DLL для разных систем? Я об этом говорил выше почитай. Цитата reinterpret_alexey @ Ты читаешь клинический бред) Какой ты хочешь получить ответ?) Слышь, придурок, больше не пиши на мой счет ничего ладно. Не зли, не хочу злиться Ты глупый бестолковый рассуждатель, теоретик! |
|
Сообщ.
#41
,
|
|
|
|
shm
Попробуй. У меня не получилось Прямой линкhttp://download.tuxfamily.org/overclokblog...kme.Win7.x64.7z Там же висит статья о том, как, из чего и чем они её скомпилировали http://0vercl0k.tuxfamily.org/bl0g/?p=260 |
|
Сообщ.
#42
,
|
|
|
|
Какие, мля, обсуфукации
хренофукации когда речь идёт о подмене DLL! Вот чудак! |
|
Сообщ.
#43
,
|
|
|
|
Просто оффтопят, neokoder, не паникуй.
|
|
|
|
|
|
Цитата reinterpret_alexey @ Решение в твоем случае - указать явно системную директорию, в которой лежит msimg32.dll: 1) GetSystemDirectory(sysdir) 2) SetDllDirectory(sysdir) или LoadLibrary(PathCombine(sysdir, 'msimg32.dll')) Похоже, это то, что нужно. Но у меня msimg32.dll не загружается явно через LoadLibrary. Т.о. нужно через SetDllDirectory, но где этот код вставлять в MFC приложении (Dialog Based)? Получается, что dll подхватывается раньше. Вставляю в начало метода CMyApp:InitInstance() { ... }, но это уже поздно. |
|
Сообщ.
#45
,
|
|
|
|
Стандартная DLL хранится тут c:\Windows\System32\msimg32.dll и при попытке ее подменить Windows сразу заблокирует это действие.
Подгружай эту DLL из системной папки динамически и вызывай динамически необходимые тебе функции их в этой DLL всего 5, в чем проблема то ??? В лени ??? |