Author Topic: Защита или другие способы защитить код  (Read 6758 times)

0 Members and 1 Guest are viewing this topic.

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: Защита или другие способы защитить код
« Reply #15 on: March 29, 2019, 12:06:18 PM »
Нахера мне вообще эти данные...?

ору, я не знаю как еще объяснить
В том примере видно, что данные с которыми работает скрипт без ключа получить не получится. В этом и есть весь смысл. Как и с чем это совмещать - твоё личное дело.
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Защита или другие способы защитить код
« Reply #16 on: March 29, 2019, 12:16:20 PM »
Нахера мне вообще эти данные...?

ору, я не знаю как еще объяснить
В том примере видно, что данные с которыми работает скрипт без ключа получить не получится. В этом и есть весь смысл. Как и с чем это совмещать - твоё личное дело.

Ладно... Давай так... ПРЕДПОЛОЖИМ, что твоя длл выдает данные, без которых скрипт работать не будет. У меня есть игра, в которой я хотел бы дать скрипт одному челу. Предположим, что этот чел оплатил скрипт, или получил его на льготной основе - не важно. Суть в том, что у него этот скрипт работает. Думаю, что ты не сомневаешься в том, что я смогу получить те данные, которые выходят из твоей длл. Так вот что мне мешает - поймать эти данные и в дальнейшем обходиться без твоей длл?
Я не ду... Потому и не бу...

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: Защита или другие способы защитить код
« Reply #17 on: March 29, 2019, 12:24:41 PM »
Думаю, что ты не сомневаешься в том, что я смогу получить те данные, которые выходят из твоей длл. Так вот что мне мешает - поймать эти данные и в дальнейшем обходиться без твоей длл?

может быть в DLL будут происходить каике то вычисления с кучей левых параметров и ты не сможешь понять что к чему)
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Защита или другие способы защитить код
« Reply #18 on: March 29, 2019, 01:08:34 PM »
Думаю, что ты не сомневаешься в том, что я смогу получить те данные, которые выходят из твоей длл. Так вот что мне мешает - поймать эти данные и в дальнейшем обходиться без твоей длл?

может быть в DLL будут происходить каике то вычисления с кучей левых параметров и ты не сможешь понять что к чему)
Мне не нужно понимать - ЧТО творится в длл. Мне достаточно поймать ВЫХОДНОЙ параметр.
Я не ду... Потому и не бу...

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: Защита или другие способы защитить код
« Reply #19 on: March 29, 2019, 01:18:10 PM »
Тогда моя мифическая dll будет возвращать динамические данные в виде координат и прочего :D. ИМХО. Уже извратом попахивает. Если всё так сложно, то пиши на плюсах или других компилируемых языках с поддержкой более крупных сообществ
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Защита или другие способы защитить код
« Reply #20 on: March 29, 2019, 01:31:23 PM »
ИМХО. Уже извратом попахивает.

Вот именно...

Если всё так сложно, то пиши на плюсах или других компилируемых языках с поддержкой более крупных сообществ

Да я просто подожду, пока Johnny допилит preprocessor  ;D
Я не ду... Потому и не бу...

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Защита или другие способы защитить код
« Reply #21 on: March 29, 2019, 11:57:08 PM »
Или можно намутить привязку к ключу записанному на гденибудь на сервере, который будет сверять длл.

Объясните вы мне плиз... Каким образом у вас длл вообще будет в интернете шарить...?

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


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

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

test.dll 32бит , ключ доступа 12345 (в данный момент рабочий, по запросу интересующихся, я его сменю)

Code: (clickermann) [Select]
call("test.dll",12345) //это верный ключ
print($_return1)  //ответ 1 если верный, ответ 0 если нет
// плюс окно с сообщением будет
halt

Hito скажет - "так я этот ключ всем по раздаю, и у всех будет работать". А я в свою очередь посмотрю в вебвизоре с каких ip и в какое время идет запрос, и если там одновременно будет куча пользователей, я забаню  всех  ;D




Бляха, че эти длл так много весят в делфи 10?  >:( . Там пару строк всего. С вложением не вышло, вот ссылка с ядиска https://yadi.sk/d/ZR2rjoRUaMuqPg
« Last Edit: March 30, 2019, 12:03:41 AM by dramster »

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Защита или другие способы защитить код
« Reply #22 on: March 30, 2019, 08:35:45 AM »
Hito скажет - "так я этот ключ всем по раздаю, и у всех будет работать". А я в свою очередь посмотрю в вебвизоре с каких ip и в какое время идет запрос, и если там одновременно будет куча пользователей, я забаню  всех  ;D

1: Нахера людям вообще делать эти запросы, если у них будет ключ...?
2: Это как ты их забанишь, если ключ у них есть и им не уперлись запросы на твою страницу...?
Я не ду... Потому и не бу...

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Защита или другие способы защитить код
« Reply #23 on: March 30, 2019, 09:43:03 AM »
Опять двацатьпять  :D. Ты писал что длл не свяжется с моим сервером, я связал. В длл никаких ключей нет, в длл идет сверка того ключа что ты ввел с тем что у меня на сервере. Если я его удалю на сервере, то длл полностью перестанет работать.

Вот ты все утверждаешь, что ты считаешь нужные данные из длл и избавишся от нее. Но, просто всунуть в библиотеку какието статичные параметры, это же както по детски. Я уже 100 раз говорил еще в той старой теме, в длл можно всунуть много чего. Расчеты, которые будут завтсеть от входных параметров в call. Если в длл будет простейшее математическое действие, обычному юзеру придеься долго голову ломать что там считается, а если входной параметр массив?... Еще, простейше, в длл сунем условия, циклы, свитчи,... То что не требует углубленного знания языка, и пишется в длл почти копипастом.
Вот даже ты используешь какието длл, писал же пару раз. Так вот, ты их можешь защитить ключом, привязкой к железу, к айпи возможно и продать скрипт вместе с длл за триллиард фунтовстерлингов, и будешь уверен, что твое творение не распространиться по всему свету по цене в писят копеек :D.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Защита или другие способы защитить код
« Reply #24 on: March 30, 2019, 10:10:22 AM »
Опять двацатьпять  :D. Ты писал что длл не свяжется с моим сервером, я связал. В длл никаких ключей нет, в длл идет сверка того ключа что ты ввел с тем что у меня на сервере. Если я его удалю на сервере, то длл полностью перестанет работать.

Прости, но дальше даже дочитывать не стал )) Не твоя длл связывается с твоим сервером, а кликер (сама длл с твоим сервером связаться не может). И уже скрипт передает ключ (полученный на твоем сервере) в длл. Все, что ты можешь менять, ты можешь менять только на своем сервере. Длл же, которая будет у пользователя, будет не изменна и всегда будет отвечать только на один и тот же ключ. Если бы длл могла бы связываться с твоим сервером напрямую, то там был бы другой разговор, но длл этого не может. Я поймал твой ключ ОДИН РАЗ и все! Мне больше НЕ НУЖЕН твой сервер. Так понятно - что я хочу сказать?
Я не ду... Потому и не бу...

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Защита или другие способы защитить код
« Reply #25 on: March 30, 2019, 10:24:56 AM »
Оооооо...... Ну я же дал пример длл, с ключом, вазми проверь, эта длл работает. Вечером я сделаю так, что эта длл перестанет работать. По моему хотению. Ок? А ты попытаешся взломать ее... Внимательнее почитай то что я писал там, и код кликермана глянь. Кликер там один раз вызывает длл, и все, ничего более он не далает....

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Защита или другие способы защитить код
« Reply #26 on: March 30, 2019, 10:50:27 AM »
Блин, я даже заморачиваться над всем этим не хочу... Может быть в другой раз посмотрю...
Я не ду... Потому и не бу...

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Защита или другие способы защитить код
« Reply #27 on: March 30, 2019, 09:55:32 PM »
.....
А у меня вопрос возник... И каким образом твоя длл будет связываться с сервером...?

......
Объясните вы мне плиз... Каким образом у вас длл вообще будет в интернете шарить...?

....

1: Я вообще-то про длл спросил. Длл с инди не работает. На сколько я знаю, длл "решает вопросы" только локально - на компе. А то, что у тебя нашлось первое, это для приложения.
....

И даже после того как я показал рабочий пример:
Прости, но дальше даже дочитывать не стал )) Не твоя длл связывается с твоим сервером, а кликер (сама длл с твоим сервером связаться не может). И уже скрипт передает ключ (полученный на твоем сервере) в длл. Все, что ты можешь менять, ты можешь менять только на своем сервере. Длл же, которая будет у пользователя, будет не изменна и всегда будет отвечать только на один и тот же ключ. Если бы длл могла бы связываться с твоим сервером напрямую, то там был бы другой разговор, но длл этого не может. Я поймал твой ключ ОДИН РАЗ и все! Мне больше НЕ НУЖЕН твой сервер. Так понятно - что я хочу сказать?



А вот мой ответ, неужели в том что я писал не понятно, что гет запрос делает именно длл:-\
....

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

test.dll 32бит , ключ доступа 12345 (в данный момент рабочий, по запросу интересующихся, я его сменю)

Code: (clickermann) [Select]
call("test.dll",12345) //это верный ключ
print($_return1)  //ответ 1 если верный, ответ 0 если нет
// плюс окно с сообщением будет
halt

Hito скажет - "так я этот ключ всем по раздаю, и у всех будет работать". А я в свою очередь посмотрю в вебвизоре с каких ip и в какое время идет запрос, и если там одновременно будет куча пользователей, я забаню  всех  ;D
....



К той длл я сменил ключ, теперь он 54321, и никакой другой. Старый уже работать не будет. Но как я понял всем похер, и никто не запускал длл, да и не важно, просто хотел добавить интриги  :D, чтоб заинтересованные хоть немного пошевелились.... Походу заинтересованных нет.

Код для делфи 10 - Get запрос, работает точно также как и в кликермане, без ssl:
Code: (clickermann) [Select]
library cmann_plugin;

uses
  Vcl.Dialogs, IdHTTP, SysUtils;
//------------------------------------------------------------------------------
function execute( _mas: pInteger; _size: Integer): Integer; export; stdcall;
type
  pIntArr = array[0..0] of Integer;
var
  get_str : String;
  IdHTTP1 : TIdHTTP;

begin
 //прям как из справки км :) - "код вернет последную опубликованную версию Clickermann (можете проверить в браузере)"
 IdHTTP1:=TIdHTTP.Create(nil);
 get_str := IdHTTP1.Get('http://crapware.aidf.org/version/clickermann.php');

 ShowMessage(get_str);// смотрим в диалоговом окне результат
 result := 0;

end;
//------------------------------------------------------------------------------
// список экспорта
exports execute;
begin
  // тело пусто
end.

Вызываем эту длл, и получаем:


Я не уверен в правильности написания кода, так как никогда не работал в делфи с гетпост и прочими фишками. Но он работает.




А вот код той длл , что я давал выше для теста, со сверкой ключа, который я могу изменить или удалить:
Code: (clickermann) [Select]
library cmann_plugin;

uses
  Vcl.Dialogs, IdHTTP, SysUtils;
//------------------------------------------------------------------------------

function execute( _mas: pInteger; _size: Integer): Integer; export; stdcall;
type
  pIntArr = array[0..0] of Integer;
var
  str_key : String;
  IdHTTP1 : TIdHTTP;
  str_par : integer;

begin
 str_par := pIntArr(_mas^)[0];

 IdHTTP1:=TIdHTTP.Create(nil);
 str_key := IdHTTP1.Get('http://truckkpp.ru/keys'); //просто создал страницу на хостинге и вписал туда ключ (в данный момент он 54321, можете проверить в браузере)

 If str_key = IntToStr(str_par)  Then
  begin
    ShowMessage('Ключ верный, функции этой длл выполнятся');
    //тут пишем все то, что должна сделать длл библиотека
    result := 1;

  end
  else
    begin
    //иначе, фигульки вам
    ShowMessage('Ключ не верный, функции этой длл не выполнятся');
    result := 0;
  end;
end;
//------------------------------------------------------------------------------

// список экспорта
exports execute;

begin
  // тело пусто
end.


Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Защита или другие способы защитить код
« Reply #28 on: March 30, 2019, 10:06:01 PM »
Я когда-то пытался из длл отправить запрос в интернет, но на одном форуме мне ответили, что в delphi для этого нужен компонент инди. Что в полноценной программе этот компонент кидается на форму, а у длл и формы никакой нет и что длл вообще может работать только локально...
Я не ду... Потому и не бу...

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Защита или другие способы защитить код
« Reply #29 on: March 30, 2019, 10:07:32 PM »
Я когда-то пытался из длл отправить запрос в интернет, но на одном форуме мне ответили, что в delphi для этого нужен компонент инди. Что в полноценной программе этот компонент кидается на форму, а у длл и формы никакой нет и что длл вообще может работать только локально...

Так обломи там всех на том форуме  ;D.