Сейчас на форуме: rtsgreg1989, zds, _MBK_ (+5 невидимых)

 eXeL@B —› Основной форум —› Протектор дружащий с MinGW
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 сентября 2007 12:14 · Поправил: p0n4ik
· Личное сообщение · #1

Пользуюсь MinGW в составе IDE - Dev-C++. Пишу на чистом C. Интересует есть ли защита наподобие VMProtect (или не наподобие), здорово если не навесная, т.к. софт пишется собственноручно, любые модификации для обработки протектором сделать можно. Понятно что такие продукты врятли могут быть бесплатными, но вдруг Да и если небесплатный, было бы здорово.

И вообще кто как защищает свои самописные проекты на C?



Ранг: 50.2 (постоянный)
Активность: 0.010
Статус: Участник

Создано: 10 сентября 2007 14:35
· Личное сообщение · #2

gcc не генерит map-файл?



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 11 сентября 2007 07:17
· Личное сообщение · #3

При создании и компиляции проекта валяются только сам сорец, файл с опциями для проекта, makefile и объектный модуль.



Ранг: 50.2 (постоянный)
Активность: 0.010
Статус: Участник

Создано: 11 сентября 2007 10:58
· Личное сообщение · #4

p0n4ik
www.google.com/search?q=gcc%2Bmap+file
+ vmprotect сверху



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 12 сентября 2007 20:03
· Личное сообщение · #5

Всё понял, спасибо!




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 14 сентября 2007 16:58
· Личное сообщение · #6

2 p0n4ik:
Вставку маркеров еще никто не отменял даже и без наличия MAP файла.
Смотри Examples-ы в дире VMProtect-а.



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 15 сентября 2007 19:46
· Личное сообщение · #7

dermatolog
Пробовал вашу древнюю full-версию (1.1), кажется с wasm.ru. main-функцию защитить удаётся. (Проверял на простейшем примере - переменная содержит ключ, с ключём идёт сравнение того что ввели, и в зависимости от этого выводится результат). Брал адрес функции из map-файла, выбирал максимальную опцию защиты. Переводил десятичное значение константы в шестнадцатеричное и менял местами двухразрядные числа. Искал это значение в незащищённой и защищённой VMProtect'ом версиях. Во втором случае всё шифровалось благополучно.
Потом пробовал тот же вариант программы, только с самописной функцией, куда были перенесены сам ключ, его проверка и установка значения другой переменной некоего значения, в зависимости от которого, при вызове этой функции из main, выводился результат. Опять же по map-файлу указывал VMProtect'у адрес функции. Но в этот раз граница была на 3 (!) еденицы раньше, чем начинается следущая функция (main). В этом случае (в случае защиты самописной функции) защита никакого эффекта не возымела, значение переменной так и осталось в открытом виде.
Опосля взял demo-версию VMProtect 1.55, переключил её в режим эксперта, поигрался как и в случае ранее, но насколько понял, для demo-версии смысла этого делать не было, ибо можно защитить только EntryPoint.
Кстати, насчёт маркеров. А разве будет значительная разница: то что я обработаю VMProtect'ом всю функцию, или с помощью ассемблерных вставок-маркеров укажу конкретные места для защиты?




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 15 сентября 2007 21:50
· Личное сообщение · #8

2 p0n4ik:
Пиши на e-mail, указанному в эбауте VMProtect-a или стучи в асю. Судя по твоим постам ты сам плохо представляешь что и как ты хочешь сделать на самом деле.




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 16 сентября 2007 16:12
· Личное сообщение · #9

p0n4ik пишет:
Интересует есть ли защита наподобие VMProtect (или не наподобие), здорово если не навесная


Можешь приглядеться к www.niceprotect.com
MAP файлы и маркеры также поддерживаются как и в VMProtect.

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 18 сентября 2007 14:51
· Личное сообщение · #10

GPcH
Вполне хорошо конечно, только вот в чём проблемы:

1) Нельзя указать MAP-файл, впринципе это глупость конечно, разные компиляторы разный формат могут генерировать, но тогда должна быть предусмотрена возможность добавления адресов функций вручную Это вам на заметку;

2) niceprotect.h для C++, можно конечно переделать, чтобы его компилятор C кушал, но я сомневаюсь в том, что NiceProtect заметит. Тут не знаю, может я не прав;

3) При включении опции Use anti-debug protection всё время его обнаруживает и срабатывает защита. Либо тут компилятор имеет какое-то значение, либо у меня в системе что-то запущено, хотя софтайсов у меня нет, да и в процессах ничего угрожающего.

Заранее спасибо за ответы.



Ранг: 50.2 (постоянный)
Активность: 0.010
Статус: Участник

Создано: 18 сентября 2007 16:48
· Личное сообщение · #11

p0n4ik
- Delphi and C++ SDK and examples
вас это смутило?



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 18 сентября 2007 18:43
· Личное сообщение · #12

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




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 18 сентября 2007 22:49
· Личное сообщение · #13

p0n4ik пишет:
1) Нельзя указать MAP-файл


MAP файл должен иметь имя EXE файла только с расширением MAP

p0n4ik пишет:
разные компиляторы разный формат могут генерировать


Присылайте мне пример MAP файла MinGW - посмотрю что там нестандартного, сделаю поддержку.

p0n4ik пишет:
должна быть предусмотрена возможность добавления адресов функций вручную


Это бесполезная опция так как после перекомпиляции EXE файла эти адреса изменятся.
Лучше рекомендую использовать маркеры.


p0n4ik пишет:
niceprotect.h для C++, можно конечно переделать


Там универсально для всех версий сделано, достаточно его заинклюдить в cpp файл и все.

p0n4ik пишет:
но я сомневаюсь в том, что NiceProtect заметит


Для протектора главное сигнатура которая в маркере а не его имя.

p0n4ik пишет:
При включении опции Use anti-debug protection всё время его обнаруживает и срабатывает защита.


Присылайте незащищенный EXE файл на мой Email ( admin {@} niceprotect.com ) - буду смотреть

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 19 сентября 2007 18:05
· Личное сообщение · #14

GPcH пишет:
MAP файл должен иметь имя EXE файла только с расширением MAP

Так и делал.

GPcH пишет:
Это бесполезная опция так как после перекомпиляции EXE файла эти адреса изменятся.
Лучше рекомендую использовать маркеры.

Простите ступил.


GPcH пишет:
Там универсально для всех версий сделано, достаточно его заинклюдить в cpp файл и все.

Попозже разберу что там не так, но компилировать отказался.

Файлы как смогу, сразу пришлю.




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 20 сентября 2007 18:11
· Личное сообщение · #15

p0n4ik: Выложи куда-нить в обменник скомпиленный сэмпл, аж интересно стало посмотреть... Кстати -

29.09.07

Version 2.6 is released

- New powerful interface
- MAP markers changed to protect_start, protect_end
please update headers from new SDK
- If Dubug Directory have an errors it would be deleted now
- If Import Directory is not have spaces at end block
it normally processed now
- Added screensavers protection

А теперь вопрос - что курил автор ?

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 20 сентября 2007 21:12
· Личное сообщение · #16

ajax
Что угодно откомпилить и выложить?




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 21 сентября 2007 09:38
· Личное сообщение · #17

p0n4ik: ес-но. почему здесь, а не в личке - вероятно, не мне одному будет интересно.

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 21 сентября 2007 18:54
· Личное сообщение · #18

ajax:
Веселись, правда секций там целых 5 штук

8d57_21.09.2007_CRACKLAB.rU.tgz - sample.exe




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 21 сентября 2007 19:49
· Личное сообщение · #19

p0n4ik пишет:
Веселись, правда секций там целых 5 штук


Обработал NiceProtect'ом (правда без виртуализации кода но с виртуализацией точки входа) - все прекрасно работает.

Жду MAP файл для дальнейшего тестирования.

f987_21.09.2007_CRACKLAB.rU.tgz - sample_protected.exe

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 23 сентября 2007 11:56
· Личное сообщение · #20

GPcH пишет:
Обработал NiceProtect'ом (правда без виртуализации кода но с виртуализацией точки входа) - все прекрасно работает.

Это последней версией? Вроде как побольше кода тырит
unpacked

6a2e_23.09.2007_CRACKLAB.rU.tgz - dump.rar




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 23 сентября 2007 12:40
· Личное сообщение · #21

VMProtectSDK для MinGW:
#ifndef _VMPROTECTSDK_H_
#define _VMPROTECTSDK_H_


#define VMProtectBegin __asm__ (" .byte\t0xEB, 0x10, 0x56, 0x4D, 0x50, 0x72, 0x6F ,0x74, 0x65, 0x63, 0x74,
0x20, 0x62, 0x65, 0x67, 0x69, 0x6E, 0x00");

#define VMProtectEnd __asm__ (" .byte\t0xEB, 0x0E, 0x56, 0x4D, 0x50, 0x72, 0x6F ,0x74, 0x65, 0x63, 0x74,
0x20, 0x65, 0x6E, 0x64, 0x00");

#endif /*_VMPROTECTSDK_H_*/





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 23 сентября 2007 13:38
· Личное сообщение · #22

pavka пишет:
Это последней версией? Вроде как побольше кода тырит
unpacked


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

dermatolog

Тогда для NiceProtect'а SDK примет вид:

#ifndef _NICEPROTECTSDK_H_
#define _NICEPROTECTSDK_H_


#define protect_start __asm__ (" .byte\t0x60; 0xe9; 0x11; 0x00; 0x00; 0x00; 0x24; 0x24; 0x70; 0x72; 0x6F; 0x74; 0x65; 0x63; 0x74; 0x5F; 0x73; 0x74; 0x61; 0x72; 0x74; 0x24; 0x24; 0x61");

#define protect_end __asm__ (" .byte\t0x60; 0xe9; 0x0f; 0x00; 0x00; 0x00; 0x24; 0x24; 0x70; 0x72; 0x6F; 0x74; 0x65; 0x63; 0x74; 0x5F; 0x65; 0x6E; 0x64; 0x24; 0x24; 0x61");

#endif /*_NICEPROTECTSDK_H_*/


7f9c_23.09.2007_CRACKLAB.rU.tgz - MinGW.h

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 23 сентября 2007 18:55
· Личное сообщение · #23

GPcH пишет:
dermatolog
Тогда для NiceProtect'а SDK примет вид:

Ты думаешь ОНО мине надо? )



Ранг: -52.7 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 23 сентября 2007 19:06
· Личное сообщение · #24

p0n4ik А ты сам пробовал потом выломать? Дерматолог хвалит свой протектор инстинктивно.Самолюбие
защита с виртуализацией падала за 5 минут.Но правда для новичков трудновата.
GPcH GPcH пишет:
NiceProtect'а
Это второе рождение VMProtect ?



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 23 сентября 2007 19:16 · Поправил: p0n4ik
· Личное сообщение · #25

dermatolog пишет:
VMProtectSDK для MinGW:

GPcH пишет:
Тогда для NiceProtect'а SDK примет вид:

Спасибо.

flair пишет:
p0n4ik А ты сам пробовал потом выломать?

Покрутим, посмотрим




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 23 сентября 2007 19:22
· Личное сообщение · #26

flair пишет:
Дерматолог хвалит свой протектор инстинктивно.Самолюбие

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



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 23 сентября 2007 19:40 · Поправил: p0n4ik
· Личное сообщение · #27

GPcH пишет:
Тогда для NiceProtect'а SDK примет вид:

#ifndef _NICEPROTECTSDK_H_
#define _NICEPROTECTSDK_H_


#define protect_start __asm__ (" .byte\t0x60; 0xe9; 0x11; 0x00; 0x00; 0x00; 0x24; 0x24; 0x70; 0x72; 0x6F; 0x74; 0x65; 0x63; 0x74; 0x5F; 0x73; 0x74; 0x61; 0x72; 0x74; 0x24; 0x24; 0x61");

#define protect_end __asm__ (" .byte\t0x60; 0xe9; 0x0f; 0x00; 0x00; 0x00; 0x24; 0x24; 0x70; 0x72; 0x6F; 0x74; 0x65; 0x63; 0x74; 0x5F; 0x65; 0x6E; 0x64; 0x24; 0x24; 0x61");

#endif /*_NICEPROTECTSDK_H_*/


Ошибки. Запятая а не точка с запятой, а то не скомпилирует

#ifndef _NICEPROTECTSDK_H_
#define _NICEPROTECTSDK_H_


#define protect_start __asm__ (".byte 0x60,0xe9,0x11,0x00,0x00,0x00,0x6E,0x69,0x63,0x65,0x70,0x72,0x6F,0x74, 0x65,0x63,0x74,0x5F,0x73,0x74,0x61,0x72,0x74,0x61");

#define protect_end __asm__ (".byte 0x60,0xe9,0x0f,0x00,0x00,0x00,0x6E,0x69,0x63,0x65,0x70,0x72,0x6F,0x74, 0x65,0x63,0x74,0x5F,0x65,0x6e,0x64,0x61");

#endif /*_NICEPROTECTSDK_H_*/

Вот так всё в порядке. Попробуйте теперь обработать вашей программой мишуру в аттаче (просто глупость для примера работоспособности), используя Stolen Bytes Protection. Результаты в студию .

dermatolog

Маркеры есть только в версии 1.2 (и выше)?



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 23 сентября 2007 19:51
· Личное сообщение · #28

аттач

e7be_23.09.2007_CRACKLAB.rU.tgz - test.exe




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 23 сентября 2007 20:40
· Личное сообщение · #29

p0n4ik пишет:
Ошибки. Запятая а не точка с запятой, а то не скомпилирует

Патамушта товарисч даже не удосужился скачать MinGW и проверить что он там понаписал )
p0n4ik пишет:
Маркеры есть только в версии 1.2 (и выше)?

Да




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 23 сентября 2007 21:42
· Личное сообщение · #30

p0n4ik пишет:
Ошибки. Запятая а не точка с запятой, а то не скомпилирует


Ошибка в том что вы неверно записали сигнатуры. Сравните что написано у меня:

GPcH пишет:
0x60; 0xe9; 0x11; 0x00; 0x00; 0x00; 0x24; 0x24; 0x70; 0x72; 0x6F; 0x74; 0x65; 0x63; 0x74; 0x5F; 0x73; 0x74; 0x61; 0x72; 0x74; 0x24; 0x24; 0x61


И что у Вас:

p0n4ik пишет:
0x60,0xe9,0x11,0x00,0x00,0x00,0x6E,0x69,0x63,0x65,0x70,0x72,0x6F,0x74, 0x65,0x63,0x74,0x5F,0x73,0x74,0x61,0x72,0x74,0x61


Потому NiceProtect маркер и не видит (в EXE должно быть $$protect_start$$ в начале и $$protect_end$$ в конце чтобы маркер воспринимался).

PS: в версиях 2.5 и 2.6 маркеры разные. SDK нужно брать из версии 2.6

dermatolog пишет:
Патамушта товарисч даже не удосужился скачать MinGW и проверить что он там понаписал )


Потому что товарисчу как ты выражаешься работ и с другими компиляторами хватает. Это ты три года на рынке и уже на всем остальном все отладил как часы (что касается VB Native не без моего участия). Моя же цель пока чтобы продукт стабильно виртуализовал общеизвестные компиляторы (VC++ и Delphi/CppBuilder).

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!



. 1 . 2 . >>
 eXeL@B —› Основной форум —› Протектор дружащий с MinGW
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати