Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: vargus on March 28, 2019, 05:32:30 PM

Title: Защита или другие способы защитить код
Post by: vargus on March 28, 2019, 05:32:30 PM
Добрый время суток уважаемые форумчане, был написан бот для одной из адроид игор, в связи с большой популярностью хотелось бы защитить свой труд.
Может кто нибуть подскажет как это сделать?
Title: Re: Защита или другие способы защитить код
Post by: Космич on March 28, 2019, 05:56:26 PM
Защита от чего или кого? :D
Title: Re: Защита или другие способы защитить код
Post by: ya12 on March 28, 2019, 06:10:15 PM
Переписываешь часть кода в dll (dll пишешь на чем умеешь, пример для делфи есть на форуме).
Запустить сможет любой, но исходник только у тебя.

Если есть много платных подписчиков и скилы позволяют делаешь привязку к железу, поднимаешь сервер, часть расчетов убираешь на сервер. Гребешь деньгу лопатой.
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 28, 2019, 06:26:50 PM
Запустить сможет любой, но исходник только у тебя.

А после того, как любой запустит, тот же любой остановит кликер, откроет редактор и вот тебе исходник. Не доделана еще эта фишка.
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 28, 2019, 10:29:05 PM
поднимаешь сервер, часть расчетов убираешь на сервер

А у меня вопрос возник... И каким образом твоя длл будет связываться с сервером...?
Title: Re: Защита или другие способы защитить код
Post by: dramster on March 29, 2019, 12:54:17 AM
Запустить сможет любой, но исходник только у тебя.

А после того, как любой запустит, тот же любой остановит кликер, откроет редактор и вот тебе исходник. Не доделана еще эта фишка.

Наверно речь шла не об препроцессоре, а про то обсуждение http://crapware.aidf.org/forum/index.php?topic=4060.0 и про компилирование части кода в длл, какиенибудь сложные расчеты и прочее. Ну и подвязку к железу можно намутить.

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


Как пример:
Я кстати купил ДЛЛ у артмани с полным пакетом функций работы с памятью процессов, с их собственным драйвером, для обхода любых защит чтения памяти. Обрадовался, за копейки купил  :D. Написал с помощью этой библиотеки афигенский аимбот, работает безотказно и оч быстро. Дал я этот аимбот своему хорошему товарищу....  ;D так и фиг ему. У него эта библиотека попросту не работает.  В артмани сказали, пусть покупает проверсию, и будет и у него длл. Так вот, как я понял, эта длл сравнивает ключи с их сервера, и если все норм, то все работает. Потому что этот советчик из артмани еще мне "подсказал" - "установи у друга проверсию со своим ключом, и длл у него будет работать, но когда мы припалим что проги будут работать на двух IP одновременно, то заблочим нахер  ;D"


Title: Re: Защита или другие способы защитить код
Post by: Hito on March 29, 2019, 08:41:20 AM
Или можно намутить привязку к ключу записанному на гденибудь на сервере, который будет сверять длл.

Объясните вы мне плиз... Каким образом у вас длл вообще будет в интернете шарить...?
Title: Re: Защита или другие способы защитить код
Post by: ya12 on March 29, 2019, 09:28:55 AM
Первое что нашлось

Как отправить HTTP запрос
http://www.cyberforum.ru/delphi-networks/thread113548.html
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 29, 2019, 09:53:34 AM
Первое что нашлось

Как отправить HTTP запрос
http://www.cyberforum.ru/delphi-networks/thread113548.html

1: Я вообще-то про длл спросил. Длл с инди не работает. На сколько я знаю, длл "решает вопросы" только локально - на компе. А то, что у тебя нашлось первое, это для приложения.
2: GET-запрос сможет отправить и кликер, но по GET он просто вернет текст страницы с адреса, на который будет отправлен запрос. Для того, чтобы сверять логины и пароли и прочую лабуду, нужен POST-запрос.
3: Работа "клиент-сервер", это уже даже и не GET и не POST...
Title: Re: Защита или другие способы защитить код
Post by: Космич on March 29, 2019, 10:31:50 AM
при помощи DLL можно получить информацию о системе для формирования URL адреса где будут надстройки для скрипта и всё такое
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 29, 2019, 10:35:41 AM
при помощи DLL можно получить информацию о системе для формирования URL адреса где будут надстройки для скрипта и всё такое
Ты пункт 2 и 3 прочитал...?
Title: Re: Защита или другие способы защитить код
Post by: Космич on March 29, 2019, 10:38:42 AM
Вот часть кода из одного старого "платного" скрипта для понимания

Code: (clickermann) [Select]
$gethtt=STRCONCAT("http://elfdark.ru/uri/minikarta.php?id=4&us=",$lic,"&x=",$mkx,"&y=",$mky,"&rsx=",$rsx,"&rsy=",$rsy)
WAITMS(2)
$gethtt = httpget($gethtt)
WAITMS(2)

$tohknach=STRPOS($gethtt, ".tr0.")
$tohka=STRPOS($gethtt, ".tr1.")
$tohkb=STRPOS($gethtt, ".tr2.")
$tohkc=STRPOS($gethtt, ".tr3.")
$tohkd=STRPOS($gethtt, ".tr4.")
$tohke=STRPOS($gethtt, ".tr5.")
$tohkf=STRPOS($gethtt, ".tr6.")
$tohkg=STRPOS($gethtt, ".tr7.")
$tohkh=STRPOS($gethtt, ".tr8.")
$tohki=STRPOS($gethtt, ".tr9.")
$tohkk=STRPOS($gethtt, ".tr10.")
$tohkl=STRPOS($gethtt, ".tr11.")
$tohkm=STRPOS($gethtt, ".tr12.")
$tohkn=STRPOS($gethtt, ".tr13.")
$toho=STRPOS($gethtt, ".tr14.")
$tohp=STRPOS($gethtt, ".tr15.")
$tohr=STRPOS($gethtt, ".tr16.")
$tohs=STRPOS($gethtt, ".tr17.")
$toht=STRPOS($gethtt, ".tr18.")
$tohu=STRPOS($gethtt, ".tr19.")
$toha=STRPOS($gethtt, ".tr20.")
$tohb=STRPOS($gethtt, ".tr21.")
$tohc=STRPOS($gethtt, ".tr22.")
$tohd=STRPOS($gethtt, ".tr23.")
$tohe=STRPOS($gethtt, ".tr24.")
$tohf=STRPOS($gethtt, ".tr25.")
$tohg=STRPOS($gethtt, ".tr26.")
$tohh=STRPOS($gethtt, ".tr27.")
$tohi=STRPOS($gethtt, ".tr28.")
$tohk=STRPOS($gethtt, ".tr29.")
$tohl=STRPOS($gethtt, ".tr30.")
$tohm=STRPOS($gethtt, ".tr31.")
$tohn=STRPOS($gethtt, ".tr32.")
$tohaa=STRPOS($gethtt, ".tr33.")
$tohab=STRPOS($gethtt, ".tr34.")
$tohac=STRPOS($gethtt, ".tr35.")
$tohad=STRPOS($gethtt, ".tr36.")
$tohae=STRPOS($gethtt, ".tr37.")
$tohaf=STRPOS($gethtt, ".tr38.")
$tohag=STRPOS($gethtt, ".tr39.")
$tohah=STRPOS($gethtt, ".tr40.")
$tohai=STRPOS($gethtt, ".tr41.")
$tohak=STRPOS($gethtt, ".tr42.")
$tohal=STRPOS($gethtt, ".tr43.")

$karx=strcut2($gethtt,($tohknach+5),($tohka-1))
$kary=strcut2($gethtt,($tohka+5),($tohkb-1))
$karxx=strcut2($gethtt,($tohkb+5),($tohkc-1))
$karyy=strcut2($gethtt,($tohkc+5),($tohkd-1))
$pa=strcut2($gethtt,($tohkd+5),($tohke-1))
$pb=strcut2($gethtt,($tohke+5),($tohkf-1))
$pc=strcut2($gethtt,($tohkf+5),($tohkg-1))
$pd=strcut2($gethtt,($tohkg+5),($tohkh-1))
$kpuax=strcut2($gethtt,($tohkh+5),($tohki-1))
$kpuay=strcut2($gethtt,($tohki+5),($tohkk-1))
$kpudx=strcut2($gethtt,($tohkk+6),($tohkl-1))
$kpudy=strcut2($gethtt,($tohkl+6),($tohkm-1))
$pvpaax=strcut2($gethtt,($tohkm+6),($tohkn-1))
$pvpaay=strcut2($gethtt,($tohkn+6),($toho-1))
$pvpbax=strcut2($gethtt,($toho+6),($tohp-1))
$pvpbay=strcut2($gethtt,($tohp+6),($tohr-1))
$pvpbbx=strcut2($gethtt,($tohr+6),($tohs-1))
$pvpbby=strcut2($gethtt,($tohs+6),($toht-1))
$pvpcax=strcut2($gethtt,($toht+6),($tohu-1))
$pvpcay=strcut2($gethtt,($tohu+6),($toha-1))
$pvpdaax=strcut2($gethtt,($toha+6),($tohb-1))
$pvpdaay=strcut2($gethtt,($tohb+6),($tohc-1))
$pvpdabx=strcut2($gethtt,($tohc+6),($tohd-1))
$pvpdacx=strcut2($gethtt,($tohd+6),($tohe-1))
$pvpdacy=strcut2($gethtt,($tohe+6),($tohf-1))
$pvpdbax=strcut2($gethtt,($tohf+6),($tohg-1))
$pvpdbay=strcut2($gethtt,($tohg+6),($tohh-1))
$pvpdbbx=strcut2($gethtt,($tohh+6),($tohi-1))
$pvpdbby=strcut2($gethtt,($tohi+6),($tohk-1))
$pvpdbcx=strcut2($gethtt,($tohk+6),($tohl-1))
$pvpdbcy=strcut2($gethtt,($tohl+6),($tohm-1))
$pvpdcay=strcut2($gethtt,($tohm+6),($tohn-1))
$pvpdcby=strcut2($gethtt,($tohn+6),($tohaa-1))
$pvpdccx=strcut2($gethtt,($tohaa+6),($tohab-1))
$pvpdccy=strcut2($gethtt,($tohab+6),($tohac-1))
$vpyx=strcut2($gethtt,($tohac+6),($tohad-1))
$vpyy=strcut2($gethtt,($tohad+6),($tohae-1))
$vpyyx=strcut2($gethtt,($tohae+6),($tohaf-1))
$vpyyy=strcut2($gethtt,($tohaf+6),($tohag-1))
$gpyx=strcut2($gethtt,($tohag+6),($tohah-1))
$gpyy=strcut2($gethtt,($tohah+6),($tohai-1))
$gpyyx=strcut2($gethtt,($tohai+6),($tohak-1))
$gpyyy=strcut2($gethtt,($tohak+6),($tohal-1))

UNDEFINE($tohknach)
UNDEFINE($tohka)
UNDEFINE($tohkb)
UNDEFINE($tohkc)
UNDEFINE($tohkd)
UNDEFINE($tohke)
UNDEFINE($tohkf)
UNDEFINE($tohkg)
UNDEFINE($tohkh)
UNDEFINE($tohki)
UNDEFINE($tohkm)
UNDEFINE($tohkn)
UNDEFINE($toho)
UNDEFINE($tohp)
UNDEFINE($tohr)
UNDEFINE($tohs)
UNDEFINE($toht)
UNDEFINE($tohu)
UNDEFINE($toha)
UNDEFINE($tohb)
UNDEFINE($tohc)
UNDEFINE($tohd)
UNDEFINE($tohe)
UNDEFINE($tohf)
UNDEFINE($tohg)
UNDEFINE($tohh)
UNDEFINE($tohi)
UNDEFINE($tohm)
UNDEFINE($tohn)
UNDEFINE($tohaa)
UNDEFINE($tohab)
UNDEFINE($tohac)
UNDEFINE($tohad)
UNDEFINE($tohae)
UNDEFINE($tohaf)
UNDEFINE($tohag)
UNDEFINE($tohah)
UNDEFINE($tohai)
UNDEFINE($tohak)
UNDEFINE($tohal)

$pvpaax=INT($pvpaax)
$pvpaay=INT($pvpaay)
$pvpbax=INT($pvpbax)
$pvpbay=INT($pvpbay)
$pvpbbx=INT($pvpbbx)
$pvpbby=INT($pvpbby)
$pvpcax=INT($pvpcax)
$pvpcay=INT($pvpcay)
$pvpdaax=INT($pvpdaax)
$pvpdaay=INT($pvpdaay)
$pvpdabx=INT($pvpdabx)
$pvpdacx=INT($pvpdacx)
$pvpdacy=INT($pvpdacy)
$pvpdbax=INT($pvpdbax)
$pvpdbay=INT($pvpdbay)
$pvpdbay=INT($pvpdbay)
$pvpdbbx=INT($pvpdbbx)
$pvpdbby=INT($pvpdbby)
$pvpdbcx=INT($pvpdbcx)
$pvpdbcy=INT($pvpdbcy)
$pvpdcay=INT($pvpdcay)
$pvpdcby=INT($pvpdcby)
$pvpdccx=INT($pvpdccx)
$pvpdccy=INT($pvpdccy)

$karx=INT($karx)
$kary=INT($kary)
$karxx=INT($karxx)
$karyy=INT($karyy)
$pa=INT($pa)
$pb=INT($pb)
$pc=INT($pc)
$pd=INT($pd)
$kpuax=INT($kpuax)
$kpuay=INT($kpuay)
$kpudx=INT($kpudx)
$kpudy=INT($kpudy)

$vpyx=INT($vpyx)
$vpyy=INT($vpyy)
$vpyyx=INT($vpyyx)
$vpyyy=INT($vpyyy)
$gpyx=INT($gpyx)
$gpyy=INT($gpyy)
$gpyyx=INT($gpyyx)
$gpyyy=INT($gpyyy)

$pxa=$pa+30
$pxb=$pb+30
$pxc=$pc+30
$pxd=$pd+30

$ppa=$pa+15
$ppb=$pb+15
$ppc=$pc+15
$ppd=$pd+15

$vrem=$_time_t
nachalo:

$versiond=STRCONCAT("http://elfdark.ru/uri/vv.php?us=",$lic,"&id=5")
$versiond=httpget($versiond)

$versi=strcut($versiond, 1, 2 )

IF($versi=ok)

IF($versiond!$version)
WAITMS(2)
$gethtt=STRCONCAT("http://elfdark.ru/uri/uri.php?us=",$lic,"&t=0&rsx=",$xmax,"&rsy=",$ymax,"&k=",$kartan,"&sbor=",$sbor,"&procent=",$procent)
$gethtt = httpget($gethtt)
WAITMS(5)
STRWRITELN("cms.cms",$gethtt)
WAITMS(2)
LOAD("cms.cms")
WAITMS(150)
END_IF

END_IF
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 29, 2019, 10:50:05 AM
Вот часть кода из одного старого "платного" скрипта для понимания

Code: (clickermann) [Select]
$gethtt=STRCONCAT("http://elfdark.ru/uri/minikarta.php?id=4&us=",$lic,"&x=",$mkx,"&y=",$mky,"&rsx=",$rsx,"&rsy=",$rsy)
WAITMS(2)
$gethtt = httpget($gethtt)
WAITMS(2)

$tohknach=STRPOS($gethtt, ".tr0.")
$tohka=STRPOS($gethtt, ".tr1.")
$tohkb=STRPOS($gethtt, ".tr2.")
$tohkc=STRPOS($gethtt, ".tr3.")
$tohkd=STRPOS($gethtt, ".tr4.")
$tohke=STRPOS($gethtt, ".tr5.")
$tohkf=STRPOS($gethtt, ".tr6.")
$tohkg=STRPOS($gethtt, ".tr7.")
$tohkh=STRPOS($gethtt, ".tr8.")
$tohki=STRPOS($gethtt, ".tr9.")
$tohkk=STRPOS($gethtt, ".tr10.")
$tohkl=STRPOS($gethtt, ".tr11.")
$tohkm=STRPOS($gethtt, ".tr12.")
$tohkn=STRPOS($gethtt, ".tr13.")
$toho=STRPOS($gethtt, ".tr14.")
$tohp=STRPOS($gethtt, ".tr15.")
$tohr=STRPOS($gethtt, ".tr16.")
$tohs=STRPOS($gethtt, ".tr17.")
$toht=STRPOS($gethtt, ".tr18.")
$tohu=STRPOS($gethtt, ".tr19.")
$toha=STRPOS($gethtt, ".tr20.")
$tohb=STRPOS($gethtt, ".tr21.")
$tohc=STRPOS($gethtt, ".tr22.")
$tohd=STRPOS($gethtt, ".tr23.")
$tohe=STRPOS($gethtt, ".tr24.")
$tohf=STRPOS($gethtt, ".tr25.")
$tohg=STRPOS($gethtt, ".tr26.")
$tohh=STRPOS($gethtt, ".tr27.")
$tohi=STRPOS($gethtt, ".tr28.")
$tohk=STRPOS($gethtt, ".tr29.")
$tohl=STRPOS($gethtt, ".tr30.")
$tohm=STRPOS($gethtt, ".tr31.")
$tohn=STRPOS($gethtt, ".tr32.")
$tohaa=STRPOS($gethtt, ".tr33.")
$tohab=STRPOS($gethtt, ".tr34.")
$tohac=STRPOS($gethtt, ".tr35.")
$tohad=STRPOS($gethtt, ".tr36.")
$tohae=STRPOS($gethtt, ".tr37.")
$tohaf=STRPOS($gethtt, ".tr38.")
$tohag=STRPOS($gethtt, ".tr39.")
$tohah=STRPOS($gethtt, ".tr40.")
$tohai=STRPOS($gethtt, ".tr41.")
$tohak=STRPOS($gethtt, ".tr42.")
$tohal=STRPOS($gethtt, ".tr43.")

$karx=strcut2($gethtt,($tohknach+5),($tohka-1))
$kary=strcut2($gethtt,($tohka+5),($tohkb-1))
$karxx=strcut2($gethtt,($tohkb+5),($tohkc-1))
$karyy=strcut2($gethtt,($tohkc+5),($tohkd-1))
$pa=strcut2($gethtt,($tohkd+5),($tohke-1))
$pb=strcut2($gethtt,($tohke+5),($tohkf-1))
$pc=strcut2($gethtt,($tohkf+5),($tohkg-1))
$pd=strcut2($gethtt,($tohkg+5),($tohkh-1))
$kpuax=strcut2($gethtt,($tohkh+5),($tohki-1))
$kpuay=strcut2($gethtt,($tohki+5),($tohkk-1))
$kpudx=strcut2($gethtt,($tohkk+6),($tohkl-1))
$kpudy=strcut2($gethtt,($tohkl+6),($tohkm-1))
$pvpaax=strcut2($gethtt,($tohkm+6),($tohkn-1))
$pvpaay=strcut2($gethtt,($tohkn+6),($toho-1))
$pvpbax=strcut2($gethtt,($toho+6),($tohp-1))
$pvpbay=strcut2($gethtt,($tohp+6),($tohr-1))
$pvpbbx=strcut2($gethtt,($tohr+6),($tohs-1))
$pvpbby=strcut2($gethtt,($tohs+6),($toht-1))
$pvpcax=strcut2($gethtt,($toht+6),($tohu-1))
$pvpcay=strcut2($gethtt,($tohu+6),($toha-1))
$pvpdaax=strcut2($gethtt,($toha+6),($tohb-1))
$pvpdaay=strcut2($gethtt,($tohb+6),($tohc-1))
$pvpdabx=strcut2($gethtt,($tohc+6),($tohd-1))
$pvpdacx=strcut2($gethtt,($tohd+6),($tohe-1))
$pvpdacy=strcut2($gethtt,($tohe+6),($tohf-1))
$pvpdbax=strcut2($gethtt,($tohf+6),($tohg-1))
$pvpdbay=strcut2($gethtt,($tohg+6),($tohh-1))
$pvpdbbx=strcut2($gethtt,($tohh+6),($tohi-1))
$pvpdbby=strcut2($gethtt,($tohi+6),($tohk-1))
$pvpdbcx=strcut2($gethtt,($tohk+6),($tohl-1))
$pvpdbcy=strcut2($gethtt,($tohl+6),($tohm-1))
$pvpdcay=strcut2($gethtt,($tohm+6),($tohn-1))
$pvpdcby=strcut2($gethtt,($tohn+6),($tohaa-1))
$pvpdccx=strcut2($gethtt,($tohaa+6),($tohab-1))
$pvpdccy=strcut2($gethtt,($tohab+6),($tohac-1))
$vpyx=strcut2($gethtt,($tohac+6),($tohad-1))
$vpyy=strcut2($gethtt,($tohad+6),($tohae-1))
$vpyyx=strcut2($gethtt,($tohae+6),($tohaf-1))
$vpyyy=strcut2($gethtt,($tohaf+6),($tohag-1))
$gpyx=strcut2($gethtt,($tohag+6),($tohah-1))
$gpyy=strcut2($gethtt,($tohah+6),($tohai-1))
$gpyyx=strcut2($gethtt,($tohai+6),($tohak-1))
$gpyyy=strcut2($gethtt,($tohak+6),($tohal-1))

UNDEFINE($tohknach)
UNDEFINE($tohka)
UNDEFINE($tohkb)
UNDEFINE($tohkc)
UNDEFINE($tohkd)
UNDEFINE($tohke)
UNDEFINE($tohkf)
UNDEFINE($tohkg)
UNDEFINE($tohkh)
UNDEFINE($tohki)
UNDEFINE($tohkm)
UNDEFINE($tohkn)
UNDEFINE($toho)
UNDEFINE($tohp)
UNDEFINE($tohr)
UNDEFINE($tohs)
UNDEFINE($toht)
UNDEFINE($tohu)
UNDEFINE($toha)
UNDEFINE($tohb)
UNDEFINE($tohc)
UNDEFINE($tohd)
UNDEFINE($tohe)
UNDEFINE($tohf)
UNDEFINE($tohg)
UNDEFINE($tohh)
UNDEFINE($tohi)
UNDEFINE($tohm)
UNDEFINE($tohn)
UNDEFINE($tohaa)
UNDEFINE($tohab)
UNDEFINE($tohac)
UNDEFINE($tohad)
UNDEFINE($tohae)
UNDEFINE($tohaf)
UNDEFINE($tohag)
UNDEFINE($tohah)
UNDEFINE($tohai)
UNDEFINE($tohak)
UNDEFINE($tohal)

$pvpaax=INT($pvpaax)
$pvpaay=INT($pvpaay)
$pvpbax=INT($pvpbax)
$pvpbay=INT($pvpbay)
$pvpbbx=INT($pvpbbx)
$pvpbby=INT($pvpbby)
$pvpcax=INT($pvpcax)
$pvpcay=INT($pvpcay)
$pvpdaax=INT($pvpdaax)
$pvpdaay=INT($pvpdaay)
$pvpdabx=INT($pvpdabx)
$pvpdacx=INT($pvpdacx)
$pvpdacy=INT($pvpdacy)
$pvpdbax=INT($pvpdbax)
$pvpdbay=INT($pvpdbay)
$pvpdbay=INT($pvpdbay)
$pvpdbbx=INT($pvpdbbx)
$pvpdbby=INT($pvpdbby)
$pvpdbcx=INT($pvpdbcx)
$pvpdbcy=INT($pvpdbcy)
$pvpdcay=INT($pvpdcay)
$pvpdcby=INT($pvpdcby)
$pvpdccx=INT($pvpdccx)
$pvpdccy=INT($pvpdccy)

$karx=INT($karx)
$kary=INT($kary)
$karxx=INT($karxx)
$karyy=INT($karyy)
$pa=INT($pa)
$pb=INT($pb)
$pc=INT($pc)
$pd=INT($pd)
$kpuax=INT($kpuax)
$kpuay=INT($kpuay)
$kpudx=INT($kpudx)
$kpudy=INT($kpudy)

$vpyx=INT($vpyx)
$vpyy=INT($vpyy)
$vpyyx=INT($vpyyx)
$vpyyy=INT($vpyyy)
$gpyx=INT($gpyx)
$gpyy=INT($gpyy)
$gpyyx=INT($gpyyx)
$gpyyy=INT($gpyyy)

$pxa=$pa+30
$pxb=$pb+30
$pxc=$pc+30
$pxd=$pd+30

$ppa=$pa+15
$ppb=$pb+15
$ppc=$pc+15
$ppd=$pd+15

$vrem=$_time_t
nachalo:

$versiond=STRCONCAT("http://elfdark.ru/uri/vv.php?us=",$lic,"&id=5")
$versiond=httpget($versiond)

$versi=strcut($versiond, 1, 2 )

IF($versi=ok)

IF($versiond!$version)
WAITMS(2)
$gethtt=STRCONCAT("http://elfdark.ru/uri/uri.php?us=",$lic,"&t=0&rsx=",$xmax,"&rsy=",$ymax,"&k=",$kartan,"&sbor=",$sbor,"&procent=",$procent)
$gethtt = httpget($gethtt)
WAITMS(5)
STRWRITELN("cms.cms",$gethtt)
WAITMS(2)
LOAD("cms.cms")
WAITMS(150)
END_IF

END_IF

То есть - для каждого скрипта своя страница в интернете? ))) Оригинально )) Что мешает мне - получить все данные, которые длл вставляет в скрипт, для подстановки в GET-запрос? Что мешает мне - прошерстить код и понять, при каких условиях он будет работать и переписать его так, чтобы вообще удалить из него проверку на эти условия...?
Title: Re: Защита или другие способы защитить код
Post by: Космич on March 29, 2019, 11:04:34 AM
смысл в том, что бы скрыть как эти данные получаются лол
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 29, 2019, 11:11:26 AM
смысл в том, что бы скрыть как эти данные получаются лол
Нахера мне вообще эти данные...?

Может очень примитивно, но вот, что я хочу сказать:

Code: (clickermann) [Select]
// Тут ты мутишь свои прибамбасы все
// с отправкой гет-запросов и получения данных

// А далее идет проверка валидности
IF($vse_tvoi_poluchennie_dannie = $valid)
  // Тело скрипта
END_IF

Что мешает мне - удалить этот IF?
Title: Re: Защита или другие способы защитить код
Post by: Космич on March 29, 2019, 12:06:18 PM
Нахера мне вообще эти данные...?

ору, я не знаю как еще объяснить
В том примере видно, что данные с которыми работает скрипт без ключа получить не получится. В этом и есть весь смысл. Как и с чем это совмещать - твоё личное дело.
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 29, 2019, 12:16:20 PM
Нахера мне вообще эти данные...?

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

Ладно... Давай так... ПРЕДПОЛОЖИМ, что твоя длл выдает данные, без которых скрипт работать не будет. У меня есть игра, в которой я хотел бы дать скрипт одному челу. Предположим, что этот чел оплатил скрипт, или получил его на льготной основе - не важно. Суть в том, что у него этот скрипт работает. Думаю, что ты не сомневаешься в том, что я смогу получить те данные, которые выходят из твоей длл. Так вот что мне мешает - поймать эти данные и в дальнейшем обходиться без твоей длл?
Title: Re: Защита или другие способы защитить код
Post by: Космич on March 29, 2019, 12:24:41 PM
Думаю, что ты не сомневаешься в том, что я смогу получить те данные, которые выходят из твоей длл. Так вот что мне мешает - поймать эти данные и в дальнейшем обходиться без твоей длл?

может быть в DLL будут происходить каике то вычисления с кучей левых параметров и ты не сможешь понять что к чему)
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 29, 2019, 01:08:34 PM
Думаю, что ты не сомневаешься в том, что я смогу получить те данные, которые выходят из твоей длл. Так вот что мне мешает - поймать эти данные и в дальнейшем обходиться без твоей длл?

может быть в DLL будут происходить каике то вычисления с кучей левых параметров и ты не сможешь понять что к чему)
Мне не нужно понимать - ЧТО творится в длл. Мне достаточно поймать ВЫХОДНОЙ параметр.
Title: Re: Защита или другие способы защитить код
Post by: Космич on March 29, 2019, 01:18:10 PM
Тогда моя мифическая dll будет возвращать динамические данные в виде координат и прочего :D. ИМХО. Уже извратом попахивает. Если всё так сложно, то пиши на плюсах или других компилируемых языках с поддержкой более крупных сообществ
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 29, 2019, 01:31:23 PM
ИМХО. Уже извратом попахивает.

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

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

Да я просто подожду, пока Johnny допилит preprocessor  ;D
Title: Re: Защита или другие способы защитить код
Post by: dramster 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
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 30, 2019, 08:35:45 AM
Hito скажет - "так я этот ключ всем по раздаю, и у всех будет работать". А я в свою очередь посмотрю в вебвизоре с каких ip и в какое время идет запрос, и если там одновременно будет куча пользователей, я забаню  всех  ;D

1: Нахера людям вообще делать эти запросы, если у них будет ключ...?
2: Это как ты их забанишь, если ключ у них есть и им не уперлись запросы на твою страницу...?
Title: Re: Защита или другие способы защитить код
Post by: dramster on March 30, 2019, 09:43:03 AM
Опять двацатьпять  :D. Ты писал что длл не свяжется с моим сервером, я связал. В длл никаких ключей нет, в длл идет сверка того ключа что ты ввел с тем что у меня на сервере. Если я его удалю на сервере, то длл полностью перестанет работать.

Вот ты все утверждаешь, что ты считаешь нужные данные из длл и избавишся от нее. Но, просто всунуть в библиотеку какието статичные параметры, это же както по детски. Я уже 100 раз говорил еще в той старой теме, в длл можно всунуть много чего. Расчеты, которые будут завтсеть от входных параметров в call. Если в длл будет простейшее математическое действие, обычному юзеру придеься долго голову ломать что там считается, а если входной параметр массив?... Еще, простейше, в длл сунем условия, циклы, свитчи,... То что не требует углубленного знания языка, и пишется в длл почти копипастом.
Вот даже ты используешь какието длл, писал же пару раз. Так вот, ты их можешь защитить ключом, привязкой к железу, к айпи возможно и продать скрипт вместе с длл за триллиард фунтовстерлингов, и будешь уверен, что твое творение не распространиться по всему свету по цене в писят копеек :D.
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 30, 2019, 10:10:22 AM
Опять двацатьпять  :D. Ты писал что длл не свяжется с моим сервером, я связал. В длл никаких ключей нет, в длл идет сверка того ключа что ты ввел с тем что у меня на сервере. Если я его удалю на сервере, то длл полностью перестанет работать.

Прости, но дальше даже дочитывать не стал )) Не твоя длл связывается с твоим сервером, а кликер (сама длл с твоим сервером связаться не может). И уже скрипт передает ключ (полученный на твоем сервере) в длл. Все, что ты можешь менять, ты можешь менять только на своем сервере. Длл же, которая будет у пользователя, будет не изменна и всегда будет отвечать только на один и тот же ключ. Если бы длл могла бы связываться с твоим сервером напрямую, то там был бы другой разговор, но длл этого не может. Я поймал твой ключ ОДИН РАЗ и все! Мне больше НЕ НУЖЕН твой сервер. Так понятно - что я хочу сказать?
Title: Re: Защита или другие способы защитить код
Post by: dramster on March 30, 2019, 10:24:56 AM
Оооооо...... Ну я же дал пример длл, с ключом, вазми проверь, эта длл работает. Вечером я сделаю так, что эта длл перестанет работать. По моему хотению. Ок? А ты попытаешся взломать ее... Внимательнее почитай то что я писал там, и код кликермана глянь. Кликер там один раз вызывает длл, и все, ничего более он не далает....
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 30, 2019, 10:50:27 AM
Блин, я даже заморачиваться над всем этим не хочу... Может быть в другой раз посмотрю...
Title: Re: Защита или другие способы защитить код
Post by: dramster 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.

Вызываем эту длл, и получаем:
(https://i.imgur.com/XLa8tUJ.png)

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




А вот код той длл , что я давал выше для теста, со сверкой ключа, который я могу изменить или удалить:
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.

Title: Re: Защита или другие способы защитить код
Post by: Hito on March 30, 2019, 10:06:01 PM
Я когда-то пытался из длл отправить запрос в интернет, но на одном форуме мне ответили, что в delphi для этого нужен компонент инди. Что в полноценной программе этот компонент кидается на форму, а у длл и формы никакой нет и что длл вообще может работать только локально...
Title: Re: Защита или другие способы защитить код
Post by: dramster on March 30, 2019, 10:07:32 PM
Я когда-то пытался из длл отправить запрос в интернет, но на одном форуме мне ответили, что в delphi для этого нужен компонент инди. Что в полноценной программе этот компонент кидается на форму, а у длл и формы никакой нет и что длл вообще может работать только локально...

Так обломи там всех на том форуме  ;D.
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 30, 2019, 10:11:43 PM
Так обломи там всех на том форуме  ;D.

Я изначально тут у вас ДВА РАЗА спросил о том, как вы из длл собираетесь с интернетом работать, а вы, вместо того, чтобы ответить на вопрос, бодаться начали...  ;D
Title: Re: Защита или другие способы защитить код
Post by: dramster on March 30, 2019, 10:22:13 PM
  Кстати, когда препроцессор будет работать так, как мы думаем как он должен работать, без внесения кода в редактор, тогда очень полезная штука получиться с этими "ключами". Тут уже кто как пожелает, можно и подписку на время подвязать. Но это для тех кто комерцией больше занимается.
  Для меня главное, чтоб мой код не разошелся по всему игровому миру, и я не стал на ровне со всеми с моим  же  ботом. Мне бы дать к примеру парочке соклановцев свои привилегии, и в нужный момент заблочить выполнение моих скриптов у них, и чтоб они не раздали своим корешам мои работы.
Title: Re: Защита или другие способы защитить код
Post by: Hito on March 31, 2019, 08:41:12 AM
Для меня главное, чтоб мой код не разошелся по всему игровому миру, и я не стал на ровне со всеми с моим  же  ботом. Мне бы дать к примеру парочке соклановцев свои привилегии, и в нужный момент заблочить выполнение моих скриптов у них, и чтоб они не раздали своим корешам мои работы.

То же самое.