CLEO 0000 wait 1150 18328 размер скрипта 1337 байта для стабильной раб

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{$CLEO}
0000:
wait 1150
5@ = 18328 //размер скрипта 1337 + 3 байта, для стабильной работы
31@ = Render.CreateFont("Tahoma", 12, 13) //Создаем шрифт, для рисования прогресса
alloc 30@ = 32 //Выделяем память для записи прогресса
for 1@ = 0 to 5@ step 4 //19201 - размер скрипта на диске в байтах. В этом цикле мы перебираем все байты
wait 0 //цикл большой, по этому херачим задержку
0AC6: 0@ = label @Buffer offset //Буфер с HEX кодом не криптованого скрипта
005A: 0@ += 1@ //Получаем указатель на нужный нам байт
0A8D: 2@ = read_memory 0@ size 4 virtual_protect 1 //Получаем этот байт.
0ad3: 30@ = "%d/19201" 1@ //Записываем прогресс
Render.DrawText(31@, 30@, 20, 280, 0xFFFFFFFF) //Рисуем прогресс на экране
0A8F: 3@ = 0xFFFFFFFF - 2@ //Инвертируем байт
0A8C: write_memory 0@ size 4 value 3@ virtual_protect 1 //Записываем в буфер новое значение
end //Далее запишем в файл инвертированые данные
0AC6: 0@ = label @Buffer offset //Еще раз прочтем указатель на буфер, что бы он встал на начало, а не на последний байт
0AA7: call_function 0x8232D8 num_params 2 pop 2 "wb" "Invertion.bin" 3@ //Создаем/пересоздаем файл Invertion.bin в папке с игрой
0AA7: call_function 0x823674 num_params 4 pop 4 3@ 5@ 1 0@ 4@ //Записываем в файл 3@ (Invertion.bin) размером 5@ байт инфу с указателя 0@
0AA7: call_function 0x82318B num_params 1 pop 1 3@ 4@ //Сохраняем изменения в файле 3@ и закрываем его
0a93: EndCustomThread
:Buffer
hex
//HEX код скрипта
00 00 00 00 //не убирать! Это для того что бы не крашнуло
end // hex