CLEO поток - что он из себя представляет?

Статус
В этой теме нельзя размещать новые ответы.

Odoris

Новичок
Автор темы
41
32
Здравствуйте форумчани. Кому не впадлу поясните за шмот, что из себя представляет клео скрипт и в каком виде он хранится в памяти игры, в планах для удобства написать дампер клео потока чтобы руками не ебатся в СЕ. Сопутствующий вопрос - как узнать конец потока или его размер? Качество выходного кода не особо интересует, интересна сама идея написания подобных дамперов на плюсах. Что-бы было понятнее то дополню - хочу написать какое то говно подобие Custom-Dumper Debuger by SR_Team хотя бы простенький.
 

Odoris

Новичок
Автор темы
41
32
Хорошо, спасибо. Смотри теперь ситуацию - я начинаю дампить поток SCM-скрипта с памяти игры по его base ip - где будет находится его конец?
 

Odoris

Новичок
Автор темы
41
32
Давно работал. Не помню уже.
Эх, ну всё равно спасибо за помощь! Может что сам придумаю, всё таки у потока есть своя структура, пороюсь в ней.
А то в чит енджин рыл-рыл асм код но конца так и не понял как найти :D По сути дампер же делать должен ту же задачу)
 

Odoris

Новичок
Автор темы
41
32
Вот тебе дампер на Клео
CLEO:
{$CLEO}
03A4: name_thread '~~~~~~~'
var
0@: int
1@: int
2@: int
3@: int
4@: int
5@: int
6@: int
end  

:Scanner_A                                                    
0@ = 0xA8B42C //Return 0xA8B42C 0xA8B428
29@ = 0
30@ = 0
if 8AE4: directory_exists "CLEO\Scanner"
then 0AE5: create_directory "CLEO\Scanner"
end


:Sc_0 
wait 0
1@ = 0@
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
if 0@ <> 0
jf @Sc_1
jump @c_0

:Sc_1
wait 0
0@ = 1@
1@ += 4
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
if 1@ <> 0
jf @Sc_0
jump @c_1


:c_0
0A8E: 2@ = 0@ + 8 // int
0A8E: 3@ = 0@ + 16 // int
0A8E: 4@ = 0@ + 20 // int
0A8D: 3@ = read_memory 3@ size 4 virtual_protect 1
0A8D: 4@ = read_memory 4@ size 4 virtual_protect 1
0AC8: 5@ = allocate_memory_size 64
if 3@ == 0
then
0AD3: 5@ = format "CLEO\Scanner\A%s_%d.cs" 2@ 30@
0AA7: call_function 0x8232D8 num_params 2 pop 2 "wb" 5@ 6@
0AA7: call_function 0x823674 num_params 4 pop 4 6@ 10000 1 4@ 7@
0AA7: call_function 0x82318B num_params 1 pop 1 6@ 7@
else
0AD3: 5@ = format "CLEO\Scanner\A%s_%d.cs" 2@ 30@
0AA7: call_function 0x8232D8 num_params 2 pop 2 "wb" 5@ 6@
0AA7: call_function 0x823674 num_params 4 pop 4 6@ 10000 1 3@ 7@
0AA7: call_function 0x82318B num_params 1 pop 1 6@ 7@
end
0AC9: free_allocated_memory 5@
30@++
jump @Sc_0

:c_1
0A8E: 2@ = 1@ + 8 // int
0A8E: 3@ = 1@ + 16 // int
0A8E: 4@ = 1@ + 20 // int
0A8D: 3@ = read_memory 3@ size 4 virtual_protect 1
0A8D: 4@ = read_memory 4@ size 4 virtual_protect 1
0AC8: 5@ = allocate_memory_size 64
if 3@ == 0
then
0AD3: 5@ = format "CLEO\Scanner\A%s_%d.cs" 2@ 30@
0AA7: call_function 0x8232D8 num_params 2 pop 2 "wb" 5@ 6@
0AA7: call_function 0x823674 num_params 4 pop 4 6@ 10000 1 4@ 7@
0AA7: call_function 0x82318B num_params 1 pop 1 6@ 7@
else
0AD3: 5@ = format "CLEO\Scanner\A%s_%d.cs" 2@ 30@
0AA7: call_function 0x8232D8 num_params 2 pop 2 "wb" 5@ 6@
0AA7: call_function 0x823674 num_params 4 pop 4 6@ 10000 1 3@ 7@
0AA7: call_function 0x82318B num_params 1 pop 1 6@ 7@
end
0AC9: free_allocated_memory 5@
30@++
jump @Sc_1
Спасибо попробую на плюсиги переписать.
 
  • Нравится
Реакции: p1cador

kraft1k

Вынь х*й из головы и все получится © hnnssy
Друг
1,480
1,168
Вот тебе дампер на Клео
CLEO:
{$CLEO}
03A4: name_thread '~~~~~~~'
var
0@: int
1@: int
2@: int
3@: int
4@: int
5@: int
6@: int
end  

:Scanner_A                                                    
0@ = 0xA8B42C //Return 0xA8B42C 0xA8B428
29@ = 0
30@ = 0
if 8AE4: directory_exists "CLEO\Scanner"
then 0AE5: create_directory "CLEO\Scanner"
end


:Sc_0 
wait 0
1@ = 0@
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
if 0@ <> 0
jf @Sc_1
jump @c_0

:Sc_1
wait 0
0@ = 1@
1@ += 4
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
if 1@ <> 0
jf @Sc_0
jump @c_1


:c_0
0A8E: 2@ = 0@ + 8 // int
0A8E: 3@ = 0@ + 16 // int
0A8E: 4@ = 0@ + 20 // int
0A8D: 3@ = read_memory 3@ size 4 virtual_protect 1
0A8D: 4@ = read_memory 4@ size 4 virtual_protect 1
0AC8: 5@ = allocate_memory_size 64
if 3@ == 0
then
0AD3: 5@ = format "CLEO\Scanner\A%s_%d.cs" 2@ 30@
0AA7: call_function 0x8232D8 num_params 2 pop 2 "wb" 5@ 6@
0AA7: call_function 0x823674 num_params 4 pop 4 6@ 10000 1 4@ 7@
0AA7: call_function 0x82318B num_params 1 pop 1 6@ 7@
else
0AD3: 5@ = format "CLEO\Scanner\A%s_%d.cs" 2@ 30@
0AA7: call_function 0x8232D8 num_params 2 pop 2 "wb" 5@ 6@
0AA7: call_function 0x823674 num_params 4 pop 4 6@ 10000 1 3@ 7@
0AA7: call_function 0x82318B num_params 1 pop 1 6@ 7@
end
0AC9: free_allocated_memory 5@
30@++
jump @Sc_0

:c_1
0A8E: 2@ = 1@ + 8 // int
0A8E: 3@ = 1@ + 16 // int
0A8E: 4@ = 1@ + 20 // int
0A8D: 3@ = read_memory 3@ size 4 virtual_protect 1
0A8D: 4@ = read_memory 4@ size 4 virtual_protect 1
0AC8: 5@ = allocate_memory_size 64
if 3@ == 0
then
0AD3: 5@ = format "CLEO\Scanner\A%s_%d.cs" 2@ 30@
0AA7: call_function 0x8232D8 num_params 2 pop 2 "wb" 5@ 6@
0AA7: call_function 0x823674 num_params 4 pop 4 6@ 10000 1 4@ 7@
0AA7: call_function 0x82318B num_params 1 pop 1 6@ 7@
else
0AD3: 5@ = format "CLEO\Scanner\A%s_%d.cs" 2@ 30@
0AA7: call_function 0x8232D8 num_params 2 pop 2 "wb" 5@ 6@
0AA7: call_function 0x823674 num_params 4 pop 4 6@ 10000 1 3@ 7@
0AA7: call_function 0x82318B num_params 1 pop 1 6@ 7@
end
0AC9: free_allocated_memory 5@
30@++
jump @Sc_1
Пха, он не все сдампит. Даже могу скинуть скрипт на тест.
 

Odoris

Новичок
Автор темы
41
32
Пха, он не все сдампит. Даже могу скинуть скрипт на тест.
Да я уже убедился и не достатков овердохуя - я так и не понял нахер он разбивает один скрипт на кучу кусков а не собирает его код во едино, да и мусор мог бы за собой убрать, да-да я охуел хочу готовый xD Ну примером для изучения работы SCM потоков послужит отлично.
 

Odoris

Новичок
Автор темы
41
32
2018 на дворе, зачем тебе это

Безымянный.png
Странно это слышать от агента клео безопасности :)
 
Статус
В этой теме нельзя размещать новые ответы.