Вверх ↑
Этот топик читают: Гость
Ответов: 321
Рейтинг: 10
#16: 2018-12-29 23:39:46 ЛС | профиль | цитата
Tad писал(а):
А мне пришлось установить HTTPClient

Хороший компонент
Можете теперь делать бота для игры World of Warcraft, если делать нечего, имя сервера в post указано
Хорошо кстати монетизируется.

По поводу теста скорости и хар-ки компьютера - спасибо.
Просто как компьютер своей мечты приобрел, делаю все на нем как месяц, и после обновлений своих приложений люди пишут, что некорректно ведет себя бот. То-то, то-сё, не успевает у людей выполнять, либо я что-то касячу в программе. Но суть в том, что люди со слабым железом в частности пишут. Так-что сижу теперь делаю настройку всех таймингов, чтобы люди могли под себя настраивать.

Теперь это все добро еще шифровать сейчас буду, не знаю, толи от чужих рук, толи спортивный интерес, благо Netspirit помог немного разобраться как шифровать данные в запросах.
Теперь интересно сколько потребуется времени программе для дешифрования 9670 строк
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#17: 2018-12-29 23:48:05 ЛС | профиль | цитата
Master4eG писал(а):
я не могу сделать выборку строк по фразе, типа where obj=бла бла
бла бла в кавычки
where obj="бла бла"
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16884
Рейтинг: 1239
#18: 2018-12-30 13:05:08 ЛС | профиль | цитата
И время более точно
Быстрая схема

Add(MainForm,14842589,462,245)
{
@Color=15592941
Left=20
Top=105
Width=782
Height=290
Caption="SQLite_with_SQLiteDataSource"
BorderStyle=1
Position=1
link(onCreate,10857796:doOpen,[])
}
Add(DS_SQLite,10857796,504,259)
{
@Color=15592941
Name="db"
link(onOpen,12881291:doExec,[])
}
Add(DSC_Query,11075216,679,224)
{
@Color=15592941
SQL="SELECT color,mid AS "MapId",loc AS "Локация",obj AS "Объект",x ,y ,z FROM "db"; -- WHERE obj="Горный серебряный шалфей";"
DSManager="db"
link(onQuery,15928964:doAddRow,[])
link(onColumns,7336881:doEvent1,[(719,237)(719,244)])
}
Add(MST_DB,15928964,763,224)
{
@Color=15592941
MSTControl="mtst"
Point(doClearAll)
}
Add(DSC_Exec,12881291,546,259)
{
@Hint=#19:Создание таблицы БД|
@Color=15592941
SQL="PRAGMA page_size=8192;\r\nPRAGMA synchronous=0;\r\nCREATE TABLE IF NOT EXISTS db (\r\n color int NULL,\r\n id TEXT NULL,\r\n mid int(3) NULL,\r\n loc TEXT NULL,\r\n obj TEXT NULL,\r\n x TEXT NULL,\r\n y TEXT NULL,\r\n z TEXT NULL);"
DSManager="db"
link(onExec,13766098:doExec,[])
AddHint(-106,47,129,13,@Hint)
}
Add(HTTPClient,6804313,371,133)
{
@Color=15592941
URL="ff.zzz.com.ua/load2.php"
Method=1
FileName="aaaaaaa.txt"
EncType=1
PostData="k=1000\r\nrealm=WoW Circle x1 PvE Virgin "
Point(PostData)
link(onFinish,3200969:doEnum,[(408,146)(408,153)])
}
Add(Str_Enum,3200969,413,147)
{
@Color=15592941
Delimiter="_"
From=0
link(onEnum,13426578:doWork,[])
link(onEndEnum,9402840:doData,[(451,160)(451,188)])
}
Add(DSC_Exec,9164852,588,189)
{
@Color=15592941
DSManager="db"
link(onExec,14968106:doEvent1,[])
link(SQL,15589579:Text,[])
}
Add(Hub,14968106,644,189)
{
@Color=15592941
OutCount=3
link(onEvent1,15160768:doQuery,[])
link(onEvent2,11075216:doQuery,[(674,202)(674,230)])
link(onEvent3,13741915:doColAction,[(668,209)(668,265)])
}
Add(MTStrTbl,3870454,763,259)
{
@Color=15592941
Width=766
Height=218
Align=2
Font=[Courier New,8,0,0,204]
Name="mtst"
Layout="vert_1"
HeightScale=100
NColorRow=0
FlatScroll=1
ColDelimiter="_"
ColumnClick=1
ColorItems=0
Redaction=0
Grid=0
}
Add(Hub,3721012,350,126)
{
@Color=15592941
link(onEvent1,13219569:doData,[])
link(onEvent2,6804313:doLoadString,[])
}
Add(DoData,13219569,504,126)
{
@Color=15592941
Data=String(BEGIN TRANSACTION;)
link(onEventData,2915680:doWork1,[(571,132)])
}
Add(DoData,9402840,504,182)
{
@Color=15592941
Data=String(COMMIT;)
link(onEventData,16773688:doEvent1,[])
}
Add(HubEx,2915680,567,147)
{
link(onEvent,15589579:doAdd,[])
}
Add(MST_ColAction,13741915,679,259)
{
@Color=15592941
Action=9
MaxColWidth=200
Index=-1
MSTControl="mtst"
Point(doMaxColWidth)
}
Add(DSC_Query,15160768,679,189)
{
@Color=15592941
SQL="SELECT "Добавлено строк: "||count() FROM "db";"
DSManager="db"
link(onQuery,10980088:doText,[])
}
Add(Label,10980088,763,189)
{
@Color=15592941
Left=105
Top=226
Width=180
Font=[Courier New,10,1,0,204]
Caption=""
AutoSize=1
}
Add(Button,11711076,308,126)
{
@Color=15592941
Left=5
Top=224
link(onClick,3721012:doEvent1,[])
}
Add(DSC_Exec,13766098,588,259)
{
@Color=15592941
SQL="VACUUM;"
DSManager="db"
}
Add(StrList,15589579,588,147)
{
@Color=15592941
}
Add(Hub,16773688,546,182)
{
@Color=15592941
link(onEvent1,2915680:doWork3,[(571,188)])
link(onEvent2,9164852:doExec,[])
}
Add(InlineCode,13426578,462,147)
{
@Color=15592941
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
Code=#15:unit HiAsmUnit;|17:// Tad 29.12.2018|9:interface|0:|40:uses windows,kol,Share,Debug, hiCharset;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|15:// Event Points|19: onRes : THI_Event;|0:|15:// Work Points |47: Procedure doWork(var _Data:TData; Index:word);|0:|5: end;|0:|14:implementation|0:|38:// ----------Work Procedures----------|30:Procedure THiAsmClass.doWork;|13:var s:String;|14: i:integer;|5:BEGIN|9: s := '';|22: s := toString(_Data);|21: if s>'""' then begin|40: s := CodePage1ToCodePage2(s, 65001, 0);|16: i := length(s);|20: s := copy(s,2,i-2);|29: replace(s, ''',''' , '","');|60: _hi_onEvent(onRes, 'INSERT INTO "db" values ("'+s+'");' ); |5: end;|4:END;|0:|4:end.|
link(onRes,2915680:doWork2,[])
}
Add(Hub,7336881,735,238)
{
@Color=15592941
link(onEvent1,15928964:doClearAll,[])
link(onEvent2,15928964:doAddCols,[(756,251)(756,237)])
}


Редактировалось 2 раз(а), последний 2018-12-30 20:50:08
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 4612
Рейтинг: 746
#19: 2018-12-30 17:30:05 ЛС | профиль | цитата
Master4eG писал(а):
интересно сколько потребуется времени программе для дешифрования 9670 строк
Ну, мои компоненты шифрования работают со скоростью от 17 до 118 Мб/с (в зависимости от алгоритма) на Core 2 Quad Q9550.
карма: 26

0
Ответов: 16884
Рейтинг: 1239
#20: 2018-12-31 13:53:17 ЛС | профиль | цитата
Master4eG писал(а):
Теперь интересно сколько потребуется времени программе для дешифрования 9670 строк
А зачем шифровать ?
Add(MainForm,14842589,154,119)
{
@Color=15592941
Left=20
Top=105
Width=755
Height=358
Caption="SQLite_with_SQLiteDataSource"
BorderStyle=1
Position=1
Point(onClose)
link(onCreate,10857796:doOpen,[])
link(onClose,10857796:doClose,[])
}
Add(DS_SQLite,10857796,196,133)
{
@Color=15592941
Name="db"
link(onOpen,12881291:doExec,[])
}
Add(DSC_Exec,12881291,238,133)
{
@Hint=#19:Создание таблицы БД|
@Color=15592941
SQL="PRAGMA page_size=8192;\r\nPRAGMA synchronous=0;\r\nCREATE TABLE IF NOT EXISTS db (\r\n color INTEGER,\r\n id TEXT,\r\n mid INTEGER,\r\n loc TEXT,\r\n obj TEXT,\r\n x REAL,\r\n y REAL,\r\n z REAL);"
DSManager="db"
link(onExec,13766098:doExec,[])
AddHint(-106,47,129,13,@Hint)
}
Add(HTTPClient,6804313,364,140)
{
@Color=15592941
URL="ff.zzz.com.ua/load2.php"
Method=1
FileName="aaaaaaa.txt"
EncType=1
PostData="k=1000\r\nrealm=WoW Circle x1 PvE Virgin "
Point(PostData)
link(onFinish,3200969:doEnum,[])
}
Add(Str_Enum,3200969,406,147)
{
@Color=15592941
Delimiter="_"
From=0
link(onEnum,13426578:doWork,[])
link(onEndEnum,7313486:doEvent1,[])
}
Add(DSC_Exec,9164852,532,182)
{
@Color=15592941
DSManager="db"
link(onExec,14968106:doEvent1,[])
link(SQL,15589579:Text,[])
}
Add(Hub,14968106,574,182)
{
@Color=15592941
OutCount=3
link(onEvent1,15589579:doClear,[(599,188)(599,127)(520,127)(520,153)])
link(onEvent2,2716119:doWork1,[])
}
Add(MTStrTbl,3870454,602,140)
{
@Color=15592941
Top=34
Width=749
Height=296
Align=5
Font=[Courier New,8,0,0,204]
Name="mtst"
Layout="vert_1"
HeightScale=100
Columns=#8:MapId_50|17: Локация_180|16: Объект_180|10: X_100|10: Y_100|10: Z_100|0:|
NColorRow=0
FlatScroll=1
ColDelimiter="_"
ColumnClick=1
ColorItems=0
Grid=0
}
Add(Hub,3721012,322,133)
{
@Color=15592941
link(onEvent1,13426578:doStart,[(417,139)(417,146)])
link(onEvent2,6804313:doLoadString,[])
}
Add(DSC_Exec,13766098,280,133)
{
@Color=15592941
SQL="VACUUM;"
DSManager="db"
link(onExec,3721012:doEvent1,[])
}
Add(StrList,15589579,532,140)
{
@Color=15592941
}
Add(InlineCode,13426578,476,140)
{
@Color=15592941
WorkPoints=#7:doStart|6:doWork|5:doEnd|
EventPoints=#5:onRes|
Code=#15:unit HiAsmUnit;|17:// Tad 29.12.2018|9:interface|0:|40:uses windows,kol,Share,Debug, hiCharset;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|15:// Event Points|19: onRes : THI_Event;|0:|15:// Work Points |51: Procedure doStart(var _Data:TData; Index:word);|47: Procedure doWork(var _Data:TData; Index:word);|49: Procedure doEnd(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|38:// ----------Work Procedures----------|31:Procedure THiAsmClass.doStart;|5:begin|44: _hi_onEvent(onRes, 'BEGIN TRANSACTION;');|4:end;|30:Procedure THiAsmClass.doWork;|13:var s:String;|14: i:integer;|5:BEGIN|9: s := '';|22: s := toString(_Data);|21: if s>'""' then begin|40: s := CodePage1ToCodePage2(s, 65001, 0);|16: i := length(s);|20: s := copy(s,2,i-2);|29: replace(s, ''',''' , '","');|60: _hi_onEvent(onRes, 'INSERT INTO "db" values ("'+s+'");' ); |5: end;|4:END;|29:Procedure THiAsmClass.doEnd;|5:begin|32: _hi_onEvent(onRes,'COMMIT;');|4:end;|4:end.|
link(onRes,15589579:doAdd,[])
}
Add(Hub,7313486,448,154)
{
link(onEvent1,13426578:doEnd,[])
link(onEvent2,9164852:doExec,[(470,167)(470,188)])
}
Add(ChildPanel,2716119,602,189)
{
}
BEGIN_SDK
Add(EditMulti,16505193,21,21)
{
WorkCount=1
Width=601
Height=319
link(doWork1,2331916:doEvent1,[(35,27)(35,48)])
}
Add(Panel,13615632,35,126)
{
Width=749
Height=34
Align=2
}
Add(ComboBox,13558662,140,49)
{
Left=5
Top=10
Width=50
Height=21
ReadOnly=0
DropDownCount=30
Point(EditText)
link(onClick,4194360:doEvent1,[(184,62)(184,83)(107,83)(107,104)])
}
Add(DSC_Query,15373583,91,49)
{
@Color=15592941
SQL="SELECT DISTINCT mid from "db" ORDER BY mid;"
DSManager="parent.db"
link(onQuery,13558662:doAdd,[])
link(onColumns,13558662:doClear,[])
}
Add(DSC_Query,6627132,203,98)
{
@Color=15592941
DSManager="parent.db"
link(onQuery,15980418:doAdd,[])
link(onColumns,15980418:doClear,[])
}
Add(FormatStr,4355605,154,98)
{
Mask="SELECT DISTINCT loc from "db" WHERE mid=%1 ORDER BY loc;"
link(onFString,6627132:doQuery,[])
link(Str1,6299232:Var2,[])
}
Add(InfoTip,7096437,441,49)
{
Info=#13: mid INTEGER,|10: loc TEXT,|10: obj TEXT,|8: x REAL,|8: y REAL,|9: z REAL);|
HAlign=0
Width=99
Height=95
Margin=5
}
Add(ComboBox,15980418,266,98)
{
Left=60
Top=10
Width=175
Height=21
ReadOnly=0
DropDownCount=30
Point(EditText)
link(onClick,14052151:doEvent1,[(314,111)(314,134)(234,134)(234,153)])
}
Add(DSC_Query,7578283,322,147)
{
@Color=15592941
DSManager="parent.db"
link(onQuery,1741598:doAdd,[])
link(onColumns,1741598:doClear,[])
}
Add(FormatStr,5823624,273,147)
{
Mask="SELECT DISTINCT obj from "db" WHERE mid=%1 AND loc="%2" ORDER BY obj;"
link(onFString,7578283:doQuery,[])
link(Str1,10956180:Var2,[])
link(Str2,14757739:Var2,[])
}
Add(ComboBox,1741598,385,147)
{
Left=240
Top=10
Width=175
Height=21
ReadOnly=0
DropDownCount=30
Point(EditText)
link(onClick,8272221:doWork1,[(429,160)(429,183)(347,183)])
}
Add(GetDataEx,6299232,154,84)
{
link(Data,13558662:EditText,[])
}
Add(Hub,4194360,119,98)
{
InCount=2
link(onEvent1,4355605:doString,[])
link(onEvent2,14052151:doEvent2,[(141,111)(141,160)])
}
Add(Hub,14052151,245,147)
{
InCount=2
link(onEvent1,5823624:doString,[])
link(onEvent2,8272221:doWork2,[(270,160)(270,209)])
}
Add(Hub,2331916,56,42)
{
OutCount=3
link(onEvent1,15160768:doQuery,[])
link(onEvent2,15373583:doQuery,[])
link(onEvent3,4194360:doEvent2,[(85,62)(85,111)])
}
Add(FormatStr,13546276,364,203)
{
DataCount=3
Mask="SELECT color,mid,loc,obj,x ,y ,z FROM "db" \r\nWHERE (mid=%2) AND (loc="%1") AND (obj="%3");"
link(onFString,12725973:doEvent1,[])
link(Str1,14757739:Var3,[(370,138)])
link(Str2,10956180:Var3,[(377,89)])
link(Str3,1741598:EditText,[(384,191)(405,191)])
}
Add(DSC_Query,11460489,497,203)
{
@Color=15592941
DSManager="parent.db"
link(onQuery,13018456:doAddRow,[(562,209)(562,202)])
link(onColumns,13018456:doClear,[])
}
Add(MST_DB,13018456,574,196)
{
@Color=15592941
MSTControl="parent.mtst"
Point(doClear)
}
Add(MST_ColAction,16341381,441,210)
{
@Color=15592941
Action=9
MaxColWidth=200
Index=-1
MSTControl="parent.mtst"
Point(doMaxColWidth)
}
Add(GetDataEx,14757739,280,133)
{
link(Data,15980418:EditText,[])
}
Add(GetDataEx,10956180,273,84)
{
Angle=3
link(Data,6299232:Var3,[])
}
Add(Hub,12725973,399,203)
{
OutCount=3
link(onEvent1,11460489:doQuery,[])
link(onEvent3,6053887:doText,[(425,223)(425,251)])
}
Add(HubEx,8272221,343,203)
{
link(onEvent,13546276:doString,[])
}
Add(DSC_Query,15160768,203,42)
{
@Color=15592941
SQL="SELECT "Записей в базе: "||count() FROM "db";"
DSManager="parent.db"
link(onQuery,10980088:doText,[])
}
Add(Label,10980088,273,42)
{
@Color=15592941
Left=420
Top=14
Width=180
Font=[Courier New,10,1,0,204]
Caption=""
AutoSize=1
}
Add(Label,6053887,574,245)
{
Left=690
Top=10
Width=43
Height=20
Font=[MS Sans Serif,10,1,255,1]
link(Text,13018456:Count,[])
}
END_SDK


Редактировалось 2 раз(а), последний 2018-12-31 17:23:18
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 321
Рейтинг: 10
#21: 2019-01-01 13:07:08 ЛС | профиль | цитата
Tad писал(а):
А зачем шифровать ?

Это база лишь одного сервера (эти 9к+ строк). Всего объектов выходит около 100к, то есть для каждого игрового сервера свои данные.
Видели в POST там название сервера, под который требуется загрузить данные, т.к. на каждом сервере координаты могут быть различны.
И все эти объекты у каждого пользователя добавляются на веб-сервер автоматически ботом, в общую базу (при условии, что такого объекта еще нет). Получается что-то типа общей сети.
Объекты бот читает из памяти процесса игры, постоянно анализируя тысячи различных obj вокруг себя (деревья, персонажи, здания, сооружения, руду, траву и т.д.) и важные данные отправляет на сервер для добавления в общую базу.
И с каждым днем база все больше растет, пока не будут добавлены абсолютно все объекты, которые есть у игроков на их игровых серверах.
Вручную создать такую базу просто нереально.
ПО платное. Изначально не думал о защите, т.к. объектов было мало, но приложение пользуется спросом.
И один пользователь еще в сентябре побеспокоился и поинтересовался, мол, какие шансы, что все эти объекты кто-то взломает и украдет.
Потом в ноябре пользователь обратился с таким же вопросом То есть неприятно будет увидеть аналогичный продукт в паблике (общ.доступным).
Выйдет, что люди зря купили софт, а я зря около года "разрабатывал" (кубики в HiAsm соединял), поддерживал, обновлял все это дело.
В итоге на игровых серверах начнется хаус и вакханалия, будет дефицит игровых ресурсов, в общем итоге дампинг цен на ресурсы для обычных игроков.
Мог бы ответить в двух словах, но может вам интересно будет почитать.
_____________________________________
Просто сейчас делаю приложения под андройд на unity3d, для удаленного управления ботом.
Делается сайт с личным кабинетом. Так же ботом можно будет управлять через команды во Вконтакте через диалог.
Будет система авторизации пользователей (в приложении по login+pass+hwid) и думаю шифрование не помешает, особенно с динамическим ключом для каждой сессии.
Хотя понимаю, что, если захотят сломать, то сломают через всякие ollyDbg. Но с другой стороны ломать нечего, т.к. данные на сервере.
Можно перехватить пакеты, но если будет ключ динамический, то, старые сохраненные пакеты в новую сессию запихать не получится, может и не сломают, короче это для профилактики


А вот вы сделали код на делфи, который, добавляет строку вначале, потом замена, потом обрезка по бокам строки, и строка в конце списка строк.
Может лучше сделать, чтобы сервер отправлял не в таком варианте ('а','b','c') ,а в таком (а','b','c) и это добавлять в formatStr, чтобы там кавычки уже были, тем самым не нужно будет обрезать лишний раз ничего и уменьшаем вес пакета на...ммм.. 1 символ 1 бит вроде, то есть 2 символа * 9670 строк = 19340бит(2417байт).

Редактировалось 3 раз(а), последний 2019-01-01 13:19:22
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#22: 2019-01-01 13:50:11 ЛС | профиль | цитата
Сегодня уже 9900 строк.
Master4eG писал(а):
Может лучше сделать, чтобы сервер отправлял не в таком варианте ('а','b','c') ,а в таком (а','b','c)
Это тебе решать.
Насчёт шифрования
Master4eG сам же писал(а):
Но с другой стороны ломать нечего
А желающие ломать есть ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
22
Сообщение
...
Прикрепленные файлы
(файлы не залиты)