You are not logged in.
Pages: 1
Дизайн бы получше, и отличная база выйдет.
Хотелось бы увидеть подсветку контант, а то иногда сливается с опкодами
{ START NEW THREAD WITHOUT INTERRUPTING MAIN THREAD 0AB1: call_scm_func @RUN_CLEO_MOD 1 AT LINE @CLEO by Deji } :RUN_CLEO_MOD 0A9F: 32@ = current_thread_pointer 000A: 32@ += 0x10 0A8D: 32@ = read_memory 32@ size 4 virtual_protect 0 0062: 32@ -= 0@ 0AA7: call_function 0x464C20 num_params 1 pop 1 32@ 33@ 005A: 32@ += 0@ 000A: 33@ += 0x10 0A8C: write_memory 33@ size 4 value 32@ virtual_protect 0 000A: 33@ += 0x2C for 32@ = 0 to 30 0A8C: write_memory 33@ size 4 value 1@(32@,30i) virtual_protect 0 000A: 33@ += 4 end 0AB2: ret 0
Example by opcode
{$CLEO .cs} 0000: 0662: NOP "#########################" 0662: NOP "___Made by Opcode.eXe___" { BASIC THREAD } 0662: NOP "Www.Youtube.Com/OpcodeXe" 0662: NOP "#########################" 0AB1: call_scm_func @RUN_CLEO_MOD 1 AT LINE @CLEO WHILE TRUE wait 0 if 0AB0: 49 // X then 0AD1: show_formatted_text_highpriority "CLEO THREAD_1 IS RUNNING! %d" time 1 33@ end END :CLEO 0000: WHILE TRUE wait 0 if 0AB0: 50 // X then 0AD1: show_formatted_text_highpriority "CLEO THREAD_2 IS RUNNING! %d" time 1 33@ end END :RUN_CLEO 0A9F: 32@ = current_thread_pointer 000A: 32@ += 0x10 0A8D: 32@ = read_memory 32@ size 4 virtual_protect 0 0062: 32@ -= 0@ 0AA7: call_function 0x464C20 num_params 1 pop 1 32@ 33@ 005A: 32@ += 0@ 000A: 33@ += 0x10 0A8C: write_memory 33@ size 4 value 32@ virtual_protect 0 000A: 33@ += 0x2C for 32@ = 0 to 30 0A8C: write_memory 33@ size 4 value 1@(32@,30i) virtual_protect 0 000A: 33@ += 4 end 0AB2: ret 0
Поставить погоду такую
//0AB1: @DRAW_LINE 9 POS 10.0 10.0 _TO_ 200.0 310.0 RGBA 255 0 0 255 THICKNESS 1.0 :DRAW_LINE 0087: 11@ = 2@ // (float) 0087: 12@ = 3@ // (float) 0509: 10@ = distance_between_XY 0@ 1@ and_XY 2@ 3@ 10@ -= 37.0 {REMOVE STRANGE OFFSET AT END} 0063: 2@ -= 0@ // (float) 0063: 3@ -= 1@ // (float) 0604: get_Z_angle_for_point 2@ 3@ store_to 9@ 9@ += 84.0 005B: 0@ += 11@ 0@ /= 2.0 {MITTE} // get center pos 005B: 1@ += 12@ 1@ /= 2.0 03F0: enable_text_draw 1 074B: draw_texture 666 position 0@ 1@ scale 10@ 8@ angle 9@ color 4@ 5@ 6@ 7@ 0AB2: 0
Как получить все содержимое файла в переменную?
У меня вмещает только 30 аргументов. Если аргументов больше 30, то:
Access violation at address 004C59FC in module 'sanny.exe'. Write of address 0056FB4D.
Видел скрипт, который подставлял значения в hex.
Вот например:
hex "Example" 20 "%d" 00 end
Вот сам скрипт
{$CLEO .cs} 0000: 0AA2: 31@ = load_library "kernel32.dll" // IF and SET 0AA4: 30@ = get_proc_address "GetModuleHandleA" library 31@ // IF and SET 0AA7: call_function 30@ num_params 1 pop 0 "samp.dll" 0@ 0A8E: 2@ = 0@ + 0x212AC4 0A8D: 1@ = read_memory 2@ size 4 virtual_protect 1 //0AB1: call_scm_func @CDXUTDialog__AddSlider 10 struct 1@ samp_base 0@ id 0x80 x 32 y 320 width 512 height 16 min 0 max 100000 value 100 0AC6: 10@ = label @labelTEXTFormat offset 0AC6: 3@ = label @callback offset 0A8E: 2@ = 3@ + 12 0A8C: write_memory 2@ size 4 value 10@ virtual_protect 1 0A8E: 2@ = 0@ + 0x212A24 //_cSampChatInfo 0A8D: 10@ = read_memory 2@ size 4 virtual_protect 1 //_cSampChatInfo 0A8E: 2@ = 3@ + 18 0A8C: write_memory 2@ size 4 value 10@ virtual_protect 1 0A8E: 10@ = 0@ + 0x79680 //_cSampChatInfo 0A8E: 2@ = 3@ + 24 0A8C: write_memory 2@ size 4 value 10@ virtual_protect 1 0AC6: 3@ = label @jmp offset 0A8E: 2@ = 3@ + 1 0A8E: 10@ = 0@ + 0xAD7D0 //_cSampChatInfo 0A8C: write_memory 2@ size 4 value 10@ virtual_protect 1 0AC6: 3@ = label @callback offset 0A8E: 2@ = 0@ + 0x94940 // int __stdcall CDXUTDialog__SetCallback(int pCallback, int pUserContext) 0AA6: call_method 2@ struct 1@ num_params 2 pop 0 params 0 3@ 0A93: end_custom_thread :callback hex {00} 60 //PUSHA {10} 8B4424 18 //MOV EAX, [ESP+18] {14} 50 //PUSH EAX {14} 8B4424 18 //MOV EAX, [ESP+18] {18} 50 //PUSH EAX {18} B8 11111111 //MOV EAX, 11111111h format {18} 50 //PUSH EAX {1C} B8 11111111 //MOV EAX, 11111111h cSampChatInfo {1C} 50 //PUSH EAX {20} B8 11111111 //MOV EAX, 11111111h func addDebugMessage {20} FFD0 //CALL EAX {20} 83C4 10 //ADD ESP, 10h {10} 61 //POPA end :jmp hex {10} B8 11111111 //MOV EAX, 11111111h AD7D0 CallbackDialogChat {10} FFE0 //JMP EAX end :labelTEXTFormat hex "ControlID:" 20 "0x%.8x" 20202020 "Event:" 20 "0x%.4x" 00 end //example //0AB1: call_scm_func @CDXUTDialog__AddSlider 10 struct 1@ samp_base 0@ id 0x44 x 240 y 32 width 400 height 16 min 0 max 100 value 50 :CDXUTDialog__AddSlider //A0D30 CDXUTDialog__AddSlider(int ID, int x, int y, int width, int height, int min, int max, int value, char isDefault, int ppCreated) 0A8E: 20@ = 1@ + 0xA0D30 0AA6: call_method 20@ struct 0@ parmas 10 pop 0 ppCreated 0 isDefault 0 value 9@ max 8@ min 7@ height 6@ width 5@ y 4@ x 3@ id 2@ 0AB2: ret 0
Можно ли это сделать без ассемблерных вставок и как это сделать?
То есть необходимо подставить цифры в теле hex под %d
Аудиострим работает в сампе. Доказательство тому скрипт pein_chubasu
Не плохо было бы сделать подсветку констант, а то они сливаются с текстом опкода.
Сделайте, пожалуйста, чтобы исходники скриптов можно было сохранять в отдельную папку, а то папка cleo засоряется.
{$CLEO} wait 0 0000: //Инициализация if 0AA2: 0@ = load_library "User32.dll" // IF and SET jf @error_load_user32 if 0AA4: 1@ = get_proc_address "keybd_event" library 0@ // IF and SET jf @error_proc_keybd_event //Главный цикл :key wait 1000 0AA5: call 1@ num_params 4 pop 0 0 0 0 0x57 0AA5: call 1@ num_params 4 pop 0 0 0x02 0 0x57 jump @key //Блок обработки ошибок :error_proc_keybd_event 0AA3: free_library 0@ :error_load_user32 0A93: end_custom_thread
by MogAika
Можете убрать в следующей версии комментарии, которые берутся в { }, потому что они даже в стринге берутся в комментарий. Например: 1@ = "{FFFFF}text"
Pages: 1