Druid Опубликовано 25 мая, 2019 Поделиться Опубликовано 25 мая, 2019 Здравствуйте! Прошу помощи, при написании скрипта! Скрипт не корректен, т.к крашит игру. Я понимаю за счет условного перехода: je RAGE2.exe+740DE3. Помогите как правильно написать скрипт при таких ситуациях. Заранее Всем спасибо!!! Спойлер [ENABLE] aobscanmodule(Look_items,RAGE2.exe,8B 40 20 C3 33 C0 C3 CC CC CC CC CC CC CC CC CC CC 4C) alloc(newmem,$1000,"RAGE2.exe"+740DDF) label(code) label(return) label(id_items) registersymbol(Look_items) registersymbol(code) registersymbol(id_items) id_items: dd 0 newmem: cmp [rax+1C],86A6BE6A jne code mov [id_items],rax code: readmem(Look_items,6) jmp return Look_items: jmp newmem nop return: [DISABLE] Look_items: readmem(code,6) unregistersymbol(Look_items) unregistersymbol(code) unregistersymbol(id_items) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "RAGE2.exe"+740DDF "RAGE2.exe"+740DC4: 48 8B 09 - mov rcx,[rcx] "RAGE2.exe"+740DC7: 80 79 19 00 - cmp byte ptr [rcx+19],00 "RAGE2.exe"+740DCB: 74 E9 - je RAGE2.exe+740DB6 "RAGE2.exe"+740DCD: 49 3B C0 - cmp rax,r8 "RAGE2.exe"+740DD0: 74 05 - je RAGE2.exe+740DD7 "RAGE2.exe"+740DD2: 3B 50 1C - cmp edx,[rax+1C] "RAGE2.exe"+740DD5: 73 03 - jae RAGE2.exe+740DDA "RAGE2.exe"+740DD7: 49 8B C0 - mov rax,r8 "RAGE2.exe"+740DDA: 49 3B C0 - cmp rax,r8 "RAGE2.exe"+740DDD: 74 04 - je RAGE2.exe+740DE3 // ---------- INJECTING HERE ---------- "RAGE2.exe"+740DDF: 8B 40 20 - mov eax,[rax+20] "RAGE2.exe"+740DE2: C3 - ret "RAGE2.exe"+740DE3: 33 C0 - xor eax,eax // ---------- DONE INJECTING ---------- "RAGE2.exe"+740DE5: C3 - ret "RAGE2.exe"+740DE6: CC - int 3 "RAGE2.exe"+740DE7: CC - int 3 "RAGE2.exe"+740DE8: CC - int 3 "RAGE2.exe"+740DE9: CC - int 3 "RAGE2.exe"+740DEA: CC - int 3 "RAGE2.exe"+740DEB: CC - int 3 "RAGE2.exe"+740DEC: CC - int 3 "RAGE2.exe"+740DED: CC - int 3 "RAGE2.exe"+740DEE: CC - int 3 } Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 26 мая, 2019 Поделиться Опубликовано 26 мая, 2019 Вот на этот параметр вешай. Это тот, что выше идет... - mov rax,rcx - mov rcx,[rcx] Как то так.... Сравнение там только накати с r8 с прыгом на возврат.(Хотя это сам уж посмотришь) игра есть, там сам уж посмотришь как лучше. - mov rax,rcx - mov [id_items],rax - mov rcx,[rcx] Ps: Вот так в общем такие дела делаются... Спойлер [ENABLE] aobscanmodule(__THooke____,RAGE2.exe,4C 8B 81 B8 01 00 00 49 8B * 49 8B 48 08 * * * * * * * * * * * 48 8B 49 10 * * 48 8B C1 48 8B 09) alloc(Hack_mem,$1000,__THooke____) label(__loadaddrHook__) label(__THooke____Back) label(___Ex.Hook) Hack_mem: mov rax,rcx cmp rax,r8 je ___Ex.Hook mov [__loadaddrHook__],rax ___Ex.Hook: mov rcx,[rcx] jmp __THooke____Back __loadaddrHook__: dd 0 __THooke____+1F: jmp Hack_mem db 90 __THooke____Back: registersymbol(__THooke____) registersymbol(__loadaddrHook__) [DISABLE] __THooke____+1F: db 48 8B C1 48 8B 09 unregistersymbol(__THooke____) unregistersymbol(__loadaddrHook__) dealloc(Hack_mem) { // ORIGINAL CODE - INJECTION POINT: "RAGE2.exe"+73A2CF "RAGE2.exe"+73A2AF: CC - int 3 "RAGE2.exe"+73A2B0: 4C 8B 81 B8 01 00 00 - mov r8,[rcx+000001B8] "RAGE2.exe"+73A2B7: 49 8B C0 - mov rax,r8 "RAGE2.exe"+73A2BA: 49 8B 48 08 - mov rcx,[r8+08] "RAGE2.exe"+73A2BE: 80 79 19 00 - cmp byte ptr [rcx+19],00 "RAGE2.exe"+73A2C2: 75 21 - jne RAGE2.exe+73A2E5 "RAGE2.exe"+73A2C4: 39 51 1C - cmp [rcx+1C],edx "RAGE2.exe"+73A2C7: 73 06 - jae RAGE2.exe+73A2CF "RAGE2.exe"+73A2C9: 48 8B 49 10 - mov rcx,[rcx+10] "RAGE2.exe"+73A2CD: EB 06 - jmp RAGE2.exe+73A2D5 // ---------- INJECTING HERE ---------- "RAGE2.exe"+73A2CF: 48 8B C1 - mov rax,rcx "RAGE2.exe"+73A2D2: 48 8B 09 - mov rcx,[rcx] // ---------- DONE INJECTING ---------- "RAGE2.exe"+73A2D5: 80 79 19 00 - cmp byte ptr [rcx+19],00 "RAGE2.exe"+73A2D9: 74 E9 - je RAGE2.exe+73A2C4 "RAGE2.exe"+73A2DB: 49 3B C0 - cmp rax,r8 "RAGE2.exe"+73A2DE: 74 05 - je RAGE2.exe+73A2E5 "RAGE2.exe"+73A2E0: 3B 50 1C - cmp edx,[rax+1C] "RAGE2.exe"+73A2E3: 73 03 - jae RAGE2.exe+73A2E8 "RAGE2.exe"+73A2E5: 49 8B C0 - mov rax,r8 "RAGE2.exe"+73A2E8: 49 3B C0 - cmp rax,r8 "RAGE2.exe"+73A2EB: 74 04 - je RAGE2.exe+73A2F1 "RAGE2.exe"+73A2ED: 8B 40 20 - mov eax,[rax+20] } Ну или на худой конец прям уж... На Jmp после условия его вешай... Но выше лучше будет. Спойлер [ENABLE] aobscanmodule(__THook____,RAGE2.exe,74 04 8B 40 20 C3 33 C0 C3 CC CC CC CC CC CC CC CC CC CC CC CC 48 89) alloc(__Hack_mem,$1000,__THook____) label(__THook____Back) label(__loadaddrHooke___) __Hack_mem: cmp rax,r8 je __THook____+06 mov [__loadaddrHooke___],rax mov eax,[rax+20] jmp __THook____Back __loadaddrHooke___: dd 0 __THook____: jmp __Hack_mem __THook____Back: registersymbol(__THook____) registersymbol(__loadaddrHooke___) [DISABLE] __THook____: db 74 04 8B 40 20 unregistersymbol(__THook____) unregistersymbol(__loadaddrHooke___) dealloc(__Hack_mem) { // ORIGINAL CODE - INJECTION POINT: "RAGE2.exe"+73A2EB "RAGE2.exe"+73A2CF: E9 2C 5D 8A FF - jmp 7FF6141C0000 "RAGE2.exe"+73A2D4: 90 - nop "RAGE2.exe"+73A2D5: 80 79 19 00 - cmp byte ptr [rcx+19],00 "RAGE2.exe"+73A2D9: 74 E9 - je RAGE2.exe+73A2C4 "RAGE2.exe"+73A2DB: 49 3B C0 - cmp rax,r8 "RAGE2.exe"+73A2DE: 74 05 - je RAGE2.exe+73A2E5 "RAGE2.exe"+73A2E0: 3B 50 1C - cmp edx,[rax+1C] "RAGE2.exe"+73A2E3: 73 03 - jae RAGE2.exe+73A2E8 "RAGE2.exe"+73A2E5: 49 8B C0 - mov rax,r8 "RAGE2.exe"+73A2E8: 49 3B C0 - cmp rax,r8 // ---------- INJECTING HERE ---------- "RAGE2.exe"+73A2EB: 74 04 - je RAGE2.exe+73A2F1 "RAGE2.exe"+73A2ED: 8B 40 20 - mov eax,[rax+20] // ---------- DONE INJECTING ---------- "RAGE2.exe"+73A2F0: C3 - ret "RAGE2.exe"+73A2F1: 33 C0 - xor eax,eax "RAGE2.exe"+73A2F3: C3 - ret "RAGE2.exe"+73A2F4: CC - int 3 "RAGE2.exe"+73A2F5: CC - int 3 "RAGE2.exe"+73A2F6: CC - int 3 "RAGE2.exe"+73A2F7: CC - int 3 "RAGE2.exe"+73A2F8: CC - int 3 "RAGE2.exe"+73A2F9: CC - int 3 "RAGE2.exe"+73A2FA: CC - int 3 } Ссылка на комментарий Поделиться на другие сайты Поделиться
Druid Опубликовано 26 мая, 2019 Автор Поделиться Опубликовано 26 мая, 2019 Спасибо, огромное, буду побывать! Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения