CHBS Опубликовано 19 ноября, 2017 Поделиться Опубликовано 19 ноября, 2017 Доброго времени суток форумчане, написал вот такой скрипт (логи присутствуют) Скрытый текст [ENABLE] aobscanmodule(INJECT, speed2.exe,D9 5E F0 D9 84 24 4C 02 00 00) alloc(newmem,$1000) alloc(pos, 12) label(position_flag) registersymbol(position_flag) label(store) registersymbol(store) label(restore) registersymbol(restore) label(code) label(return) store: push eax mov eax, [pos+0] mov [esi-0c], eax mov eax, [pos+8] mov [esi-08], eax mov eax, [pos+4] mov [esi-04], eax pop eax restore: push eax mov eax, [esi-0c] mov [pos+0], eax mov eax, [esi-08] mov [pos+8], eax mov eax, [esi-04] mov [pos+4], eax pop eax newmem: fstp dword ptr [esi-10] cmp byte ptr [position_flag], 0 je store jmp restore jmp store code: fld dword ptr [esp+0000024C] jmp return position_flag: db 0 jmp newmem INJECT: jmp newmem nop nop nop nop nop return: registersymbol(INJECT) [DISABLE] INJECT: db D9 5E F0 D9 84 24 4C 02 00 00 unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "speed2.exe"+1AA1ED "speed2.exe"+1AA1CC: 7C 54 - jl speed2.exe+1AA222 "speed2.exe"+1AA1CE: B8 03 00 00 00 - mov eax,00000003 "speed2.exe"+1AA1D3: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA1DA: 83 C0 04 - add eax,04 "speed2.exe"+1AA1DD: D8 0F - fmul dword ptr [edi] "speed2.exe"+1AA1DF: 83 C1 04 - add ecx,04 "speed2.exe"+1AA1E2: 83 C6 10 - add esi,10 "speed2.exe"+1AA1E5: 83 C7 10 - add edi,10 "speed2.exe"+1AA1E8: 3B C5 - cmp eax,ebp "speed2.exe"+1AA1EA: D8 46 F0 - fadd dword ptr [esi-10] // ---------- INJECTING HERE ---------- "speed2.exe"+1AA1ED: D9 5E F0 - fstp dword ptr [esi-10] "speed2.exe"+1AA1F0: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] // ---------- DONE INJECTING ---------- "speed2.exe"+1AA1F7: D8 4F F4 - fmul dword ptr [edi-0C] "speed2.exe"+1AA1FA: D8 46 F4 - fadd dword ptr [esi-0C] "speed2.exe"+1AA1FD: D9 5E F4 - fstp dword ptr [esi-0C] "speed2.exe"+1AA200: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA207: D8 4F F8 - fmul dword ptr [edi-08] "speed2.exe"+1AA20A: D8 46 F8 - fadd dword ptr [esi-08] "speed2.exe"+1AA20D: D9 5E F8 - fstp dword ptr [esi-08] "speed2.exe"+1AA210: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA217: D8 4F FC - fmul dword ptr [edi-04] "speed2.exe"+1AA21A: D8 46 FC - fadd dword ptr [esi-04] } Цель скрипта, сохранение, восстановление позиции машины по флагу, если смотреть на видеоурок под спойлером Скрытый текст То во первых почему то крОшится игра, а во вторых не выделяется память под position_flag, т.е я не могу вывести адрес в список адресов что бы там задать ему флаг. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 19 ноября, 2017 Поделиться Опубликовано 19 ноября, 2017 1. На будущее имя метки ( INJECT ) не должно повторяться. 2. Убери прыжок position_flag: db 0 jmp newmem 3. В блоке [DISABLE] так же пропиши все зарегистрированные метки. ( unregistersymbol(XXX) ) 4.У тебя код ни когда не вернется в оригинальную часть. 5. Примерно так. 1 сохранить 2 восстановить. ( Что у тебя такое pos и что там лежит? ). И да по коду ничего не ясно. Store по факту ты записываешь в [esi-0c] значение из [pos+0]. А в Restore ты ты записываешь [esi-0c] в [pos+0]. Скрытый текст [ENABLE] aobscanmodule(INJECT, speed2.exe,D9 5E F0 D9 84 24 4C 02 00 00) alloc(newmem,$1000) alloc(pos, 12) label(code) label(return) //-- label(store) label(restore) label(position_flag) registersymbol(position_flag) newmem: fstp dword ptr [esi-10] cmp byte ptr [position_flag], 1 je store cmp byte ptr [position_flag], 2 je restore jmp code store: push eax mov eax, [pos+0] mov [esi-0c], eax mov eax, [pos+8] mov [esi-08], eax mov eax, [pos+4] mov [esi-04], eax pop eax jmp code restore: cmp [esi-0c],(float)0 je code push eax mov eax, [esi-0c] mov [pos+0], eax mov eax, [esi-08] mov [pos+8], eax mov eax, [esi-04] mov [pos+4], eax pop eax code: fld dword ptr [esp+0000024C] jmp return position_flag: db 0 INJECT: jmp newmem nop nop nop nop nop return: registersymbol(INJECT) [DISABLE] INJECT: db D9 5E F0 D9 84 24 4C 02 00 00 unregistersymbol(INJECT) unregistersymbol(position_flag) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "speed2.exe"+1AA1ED "speed2.exe"+1AA1CC: 7C 54 - jl speed2.exe+1AA222 "speed2.exe"+1AA1CE: B8 03 00 00 00 - mov eax,00000003 "speed2.exe"+1AA1D3: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA1DA: 83 C0 04 - add eax,04 "speed2.exe"+1AA1DD: D8 0F - fmul dword ptr [edi] "speed2.exe"+1AA1DF: 83 C1 04 - add ecx,04 "speed2.exe"+1AA1E2: 83 C6 10 - add esi,10 "speed2.exe"+1AA1E5: 83 C7 10 - add edi,10 "speed2.exe"+1AA1E8: 3B C5 - cmp eax,ebp "speed2.exe"+1AA1EA: D8 46 F0 - fadd dword ptr [esi-10] // ---------- INJECTING HERE ---------- "speed2.exe"+1AA1ED: D9 5E F0 - fstp dword ptr [esi-10] "speed2.exe"+1AA1F0: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] // ---------- DONE INJECTING ---------- "speed2.exe"+1AA1F7: D8 4F F4 - fmul dword ptr [edi-0C] "speed2.exe"+1AA1FA: D8 46 F4 - fadd dword ptr [esi-0C] "speed2.exe"+1AA1FD: D9 5E F4 - fstp dword ptr [esi-0C] "speed2.exe"+1AA200: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA207: D8 4F F8 - fmul dword ptr [edi-08] "speed2.exe"+1AA20A: D8 46 F8 - fadd dword ptr [esi-08] "speed2.exe"+1AA20D: D9 5E F8 - fstp dword ptr [esi-08] "speed2.exe"+1AA210: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA217: D8 4F FC - fmul dword ptr [edi-04] "speed2.exe"+1AA21A: D8 46 FC - fadd dword ptr [esi-04] } 6. Ты пишешь в EAX а свободен он иль нет? Делай через fld fstp fld dword ptr [esi-0c] // К примеру тут твоя координата текущая fstp dword ptr [MyPX] // Запишется в MyPX // Поменяв буковки местами получим обратное из MyPX запишем в esi-0c. 7. Инструкция работает не только с тобой. ( Но это не точно ). Ссылка на комментарий Поделиться на другие сайты Поделиться
CHBS Опубликовано 19 ноября, 2017 Автор Поделиться Опубликовано 19 ноября, 2017 (изменено) 57 минут назад, ReWanet сказал: ( INJECT ) не должно повторяться. О_о а где оно повторяется то? 57 минут назад, ReWanet сказал: Убери прыжок убрал, кстати почему? как вообще происходит выполнение кода, ведь нет нигде указания что нужно зайти в метку pflag, и выполнить db 0 57 минут назад, ReWanet сказал: В блоке [DISABLE] Прописал 57 минут назад, ReWanet сказал: У тебя код ни когда не вернется в оригинальную часть. Вот да, я в это и впоролся, и приходится пока ручками восстанавливать инструкцию, не понимаю почему после выполнения своих действий, он не восстанавливает по нажатию мои собственные инструкции 57 минут назад, ReWanet сказал: по факту ты записываешь Имена меток попутал restore -> store, store -> restore 57 минут назад, ReWanet сказал: EAX а свободен он иль нет Посмотрел в бряке регистры, был занят, сделал через fld, fstp, хоть понял как это теперь работает 57 минут назад, ReWanet сказал: Инструкция работает не только с тобой. Инструкция пересчитывает на самом деле много адресов Привожу ниже текущий код. Скрытый текст [ENABLE] aobscanmodule(INJECT, speed2.exe, D9 5E F0 D9 84 24 4C 02 00 00) alloc(newmem, $1000) alloc(pos, 12) label(pflag) label(store) label(restore) label(code) label(return) registersymbol(pflag) registersymbol(store) registersymbol(restore) store: fld dword ptr [esi-0c] fstp dword ptr [pos+0] fld dword ptr [esi-08] fstp dword ptr [pos+8] fld dword ptr [esi-04] fstp dword ptr [pos+4] restore: fld dword ptr [pos+0] fstp dword ptr [esi-0c] fld dword ptr [pos+8] fstp dword ptr [esi-08] fld dword ptr [pos+4] fstp dword ptr [esi-04] newmem: fstp dword ptr [esi-10] cmp byte ptr [pflag], 0 je store jne restore code: fld dword ptr [esp+0000024C] jmp return pflag: db 3 INJECT: jmp newmem nop nop nop nop nop return: registersymbol(INJECT) [DISABLE] INJECT: db D9 5E F0 D9 84 24 4C 02 00 00 unregistersymbol(store) unregistersymbol(restore) unregistersymbol(pflag) unregistersymbol(INJECT) dealloc(pos) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "speed2.exe"+1AA1ED "speed2.exe"+1AA1CC: 7C 54 - jl speed2.exe+1AA222 "speed2.exe"+1AA1CE: B8 03 00 00 00 - mov eax,00000003 "speed2.exe"+1AA1D3: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA1DA: 83 C0 04 - add eax,04 "speed2.exe"+1AA1DD: D8 0F - fmul dword ptr [edi] "speed2.exe"+1AA1DF: 83 C1 04 - add ecx,04 "speed2.exe"+1AA1E2: 83 C6 10 - add esi,10 "speed2.exe"+1AA1E5: 83 C7 10 - add edi,10 "speed2.exe"+1AA1E8: 3B C5 - cmp eax,ebp "speed2.exe"+1AA1EA: D8 46 F0 - fadd dword ptr [esi-10] // ---------- INJECTING HERE ---------- "speed2.exe"+1AA1ED: D9 5E F0 - fstp dword ptr [esi-10] "speed2.exe"+1AA1F0: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] // ---------- DONE INJECTING ---------- "speed2.exe"+1AA1F7: D8 4F F4 - fmul dword ptr [edi-0C] "speed2.exe"+1AA1FA: D8 46 F4 - fadd dword ptr [esi-0C] "speed2.exe"+1AA1FD: D9 5E F4 - fstp dword ptr [esi-0C] "speed2.exe"+1AA200: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA207: D8 4F F8 - fmul dword ptr [edi-08] "speed2.exe"+1AA20A: D8 46 F8 - fadd dword ptr [esi-08] "speed2.exe"+1AA20D: D9 5E F8 - fstp dword ptr [esi-08] "speed2.exe"+1AA210: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA217: D8 4F FC - fmul dword ptr [edi-04] "speed2.exe"+1AA21A: D8 46 FC - fadd dword ptr [esi-04] } Изменено 19 ноября, 2017 пользователем CHBS Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 19 ноября, 2017 Поделиться Опубликовано 19 ноября, 2017 4 минуты назад, CHBS сказал: а где оно повторяется то? Смотри на все предложение. Приписка на будущее говорит о чем-то но о чем я не знаю.. 4 минуты назад, CHBS сказал: Инструкция пересчитывает на самом деле много адресов Вылеты как раз из-за этого скорее. Тебе нужно фильтровать или искать инструкцию которая будет работать только с тобой. Ссылка на комментарий Поделиться на другие сайты Поделиться
CHBS Опубликовано 19 ноября, 2017 Автор Поделиться Опубликовано 19 ноября, 2017 1 минуту назад, ReWanet сказал: Приписка на будущее Когда я писал, ее не было просто, сообщение отредактировано ведь 1 минуту назад, ReWanet сказал: Вылеты как раз из-за этого скорее. Вылета как такового вроде бы и нет, я не могу это проверить, потому что скрипт работает явно не стабильно, дело в том что когда я включаю скрипт, на нем вешается крестик, но в моем случае крестика нету, и я получается не могу обратно восстановить инструкцию, и немогу понять почему крест не вешается и инструкция не восстанавливается Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 20 ноября, 2017 Поделиться Опубликовано 20 ноября, 2017 15 минут назад, CHBS сказал: Когда я писал, ее не было просто Была ) Отредактировано из-за по причине добавления 7 пункта. Я тебе пример скрипта скидывал по нему и сделай. Не активируется по причине: 1. Метки Store Restore выше newmem ( 100% не ручаюсь влияет это иль нет но вроде да ) 2. Опять же у тебя код ни когда не вернется в оригинальную инструкцию.. Скрытый текст store: // перешли сюда fld dword ptr [esi-0c] // выполнили что-то тут fstp dword ptr [pos+0] fld dword ptr [esi-08] fstp dword ptr [pos+8] fld dword ptr [esi-04] fstp dword ptr [pos+4] // конец и.. идем дальш ибо ни какого перехода нету restore: // сразу же восстанавливаем значения fld dword ptr [pos+0] fstp dword ptr [esi-0c] fld dword ptr [pos+8] fstp dword ptr [esi-08] fld dword ptr [pos+4] fstp dword ptr [esi-04] // конец и... идем дальше ибо ни какого перехода нету // возвращаемся в метку newmem т.е. более в орЭгами не вернемся. newmem: fstp dword ptr [esi-10] // Это для чего тут cmp byte ptr [pflag], 0 // Смотри мы получаем следующий аругемент если pflag = 0 то идем в store т.к. флаг ниже записан как 3 то он не равен 0 и мы je store // идем дальше по коду. jne restore // Что сверяет - ??? идем дальше code: fld dword ptr [esp+0000024C] // выходим в орЭгами jmp return // возвращамся в код -- запишем в pflag 0 и перейдем к метке store pflag: db 3 Ну и регистрация меток store и restore ( registersymbol ) не нужна. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
CHBS Опубликовано 20 ноября, 2017 Автор Поделиться Опубликовано 20 ноября, 2017 @ReWanet, спасибо большое, проблема решена, нужно было сместить restore, store вниз, непонятно почему так Код Скрытый текст [ENABLE] aobscanmodule(INJECT, speed2.exe, D9 5E F0 D9 84 24 4C 02 00 00) alloc(newmem, $1000) alloc(pos, 12) label(pflag) label(store) label(restore) label(code) label(return) registersymbol(pflag) store: fld dword ptr [esi-0c] fstp dword ptr [pos+0] fld dword ptr [esi-08] fstp dword ptr [pos+8] fld dword ptr [esi-04] fstp dword ptr [pos+4] restore: fld dword ptr [pos+0] fstp dword ptr [esi-0c] fld dword ptr [pos+8] fstp dword ptr [esi-08] fld dword ptr [pos+4] fstp dword ptr [esi-04] newmem: fstp dword ptr [esi-10] cmp byte ptr [pflag], 0 je store jne restore code: fld dword ptr [esp+0000024C] jmp return pflag: db 3 INJECT: jmp newmem nop nop nop nop nop return: registersymbol(INJECT) [DISABLE] INJECT: db D9 5E F0 D9 84 24 4C 02 00 00 unregistersymbol(store) unregistersymbol(restore) unregistersymbol(pflag) unregistersymbol(INJECT) dealloc(pos) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "speed2.exe"+1AA1ED "speed2.exe"+1AA1CC: 7C 54 - jl speed2.exe+1AA222 "speed2.exe"+1AA1CE: B8 03 00 00 00 - mov eax,00000003 "speed2.exe"+1AA1D3: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA1DA: 83 C0 04 - add eax,04 "speed2.exe"+1AA1DD: D8 0F - fmul dword ptr [edi] "speed2.exe"+1AA1DF: 83 C1 04 - add ecx,04 "speed2.exe"+1AA1E2: 83 C6 10 - add esi,10 "speed2.exe"+1AA1E5: 83 C7 10 - add edi,10 "speed2.exe"+1AA1E8: 3B C5 - cmp eax,ebp "speed2.exe"+1AA1EA: D8 46 F0 - fadd dword ptr [esi-10] // ---------- INJECTING HERE ---------- "speed2.exe"+1AA1ED: D9 5E F0 - fstp dword ptr [esi-10] "speed2.exe"+1AA1F0: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] // ---------- DONE INJECTING ---------- "speed2.exe"+1AA1F7: D8 4F F4 - fmul dword ptr [edi-0C] "speed2.exe"+1AA1FA: D8 46 F4 - fadd dword ptr [esi-0C] "speed2.exe"+1AA1FD: D9 5E F4 - fstp dword ptr [esi-0C] "speed2.exe"+1AA200: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA207: D8 4F F8 - fmul dword ptr [edi-08] "speed2.exe"+1AA20A: D8 46 F8 - fadd dword ptr [esi-08] "speed2.exe"+1AA20D: D9 5E F8 - fstp dword ptr [esi-08] "speed2.exe"+1AA210: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA217: D8 4F FC - fmul dword ptr [edi-04] "speed2.exe"+1AA21A: D8 46 FC - fadd dword ptr [esi-04] } Ссылка на комментарий Поделиться на другие сайты Поделиться
CHBS Опубликовано 20 ноября, 2017 Автор Поделиться Опубликовано 20 ноября, 2017 Не могу редактировать. Вообщем проблема странная, будто pos обнуляется, т.е первые раз я сохраняю позицию, выполняя метку store: далее я проезжаю сколько то метров, выполняю метку restore: меня телепортирует, а если проехать например пару сотен метров, то pos вовсе будет держать в себе значения рандомного флоата, например моя настоящая позиция x = 3000, y = -2000, z = 200 в posX = 1.3141431413E+4, posY = 2.13123123123E+4, posZ = 0.31413413413 Не могу понять почему так происходит, вроде pos не должен записываться пока я не выполню метку store, все выполняется по клавишам Скрытый текст [ENABLE] aobscanmodule(INJECT, speed2.exe, D9 5E F0 D9 84 24 4C 02 00 00) alloc(newmem, $1000) alloc(pos, 12) label(pflag) label(store) label(restore) label(code) label(return) registersymbol(pflag) newmem: cmp byte ptr [pflag], 0 je store cmp byte ptr [pflag], 1 je restore code: fstp dword ptr [esi-10] fld dword ptr [esp+0000024C] jmp return pflag: db 3 store: fld dword ptr [esi-0C] fstp dword ptr [pos+0] fld dword ptr [esi-08] fstp dword ptr [pos+8] fld dword ptr [esi-04] fstp dword ptr [pos+4] mov byte ptr [pflag], 3 jmp code restore: fld dword ptr [pos+0] fstp dword ptr [esi-0c] fld dword ptr [pos+8] fstp dword ptr [esi-08] fld dword ptr [pos+4] fstp dword ptr [esi-04] mov byte ptr [pflag], 3 jmp code INJECT: jmp newmem nop nop nop nop nop return: registersymbol(INJECT) [DISABLE] INJECT: db D9 5E F0 D9 84 24 4C 02 00 00 unregistersymbol(store) unregistersymbol(restore) unregistersymbol(pflag) unregistersymbol(INJECT) dealloc(pos) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "speed2.exe"+1AA1ED "speed2.exe"+1AA1CC: 7C 54 - jl speed2.exe+1AA222 "speed2.exe"+1AA1CE: B8 03 00 00 00 - mov eax,00000003 "speed2.exe"+1AA1D3: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA1DA: 83 C0 04 - add eax,04 "speed2.exe"+1AA1DD: D8 0F - fmul dword ptr [edi] "speed2.exe"+1AA1DF: 83 C1 04 - add ecx,04 "speed2.exe"+1AA1E2: 83 C6 10 - add esi,10 "speed2.exe"+1AA1E5: 83 C7 10 - add edi,10 "speed2.exe"+1AA1E8: 3B C5 - cmp eax,ebp "speed2.exe"+1AA1EA: D8 46 F0 - fadd dword ptr [esi-10] // ---------- INJECTING HERE ---------- "speed2.exe"+1AA1ED: D9 5E F0 - fstp dword ptr [esi-10] "speed2.exe"+1AA1F0: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] // ---------- DONE INJECTING ---------- "speed2.exe"+1AA1F7: D8 4F F4 - fmul dword ptr [edi-0C] "speed2.exe"+1AA1FA: D8 46 F4 - fadd dword ptr [esi-0C] "speed2.exe"+1AA1FD: D9 5E F4 - fstp dword ptr [esi-0C] "speed2.exe"+1AA200: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA207: D8 4F F8 - fmul dword ptr [edi-08] "speed2.exe"+1AA20A: D8 46 F8 - fadd dword ptr [esi-08] "speed2.exe"+1AA20D: D9 5E F8 - fstp dword ptr [esi-08] "speed2.exe"+1AA210: D9 84 24 4C 02 00 00 - fld dword ptr [esp+0000024C] "speed2.exe"+1AA217: D8 4F FC - fmul dword ptr [edi-04] "speed2.exe"+1AA21A: D8 46 FC - fadd dword ptr [esi-04] } Ссылка на комментарий Поделиться на другие сайты Поделиться
CHBS Опубликовано 20 ноября, 2017 Автор Поделиться Опубликовано 20 ноября, 2017 (изменено) Рабочий Скрытый текст [ENABLE] aobscanmodule(INJECT,SPEED2.EXE,D9 40 28 83 C0 30) // should be unique alloc(newmem,$1000) globalalloc(pflag, 1) globalalloc(pos, 18) label(code) label(return) label(pflag) registersymbol(pflag) label(pos) registersymbol(pos) label(store) registersymbol(store) label(restore) registersymbol(restore) newmem: cmp byte ptr [pflag], 1 je store cmp byte ptr [pflag], 2 je restore code: fld dword ptr [eax+28] add eax,30 jmp return store: fld dword ptr [eax+20] fstp dword ptr [pos+0] fld dword ptr [eax+24] fstp dword ptr [pos+04] fld dword ptr [eax+28] fstp dword ptr [pos+08] fld dword ptr [eax+30] fstp dword ptr [pos+10] fld dword ptr [eax+34] fstp dword ptr [pos+14] fld dword ptr [eax+38] fstp dword ptr [pos+18] mov dword ptr [pflag], 3 jmp code restore: fld dword ptr [pos+0] fstp dword ptr [eax+20] fld dword ptr [pos+04] fstp dword ptr [eax+24] fld dword ptr [pos+08] fstp dword ptr [eax+28] fld dword ptr [pos+10] fstp dword ptr [eax+30] fld dword ptr [pos+14] fstp dword ptr [eax+34] fld dword ptr [pos+18] fstp dword ptr [eax+38] mov dword ptr [pflag], 3 jmp code pflag: dd 3 pos: db 00000000 00000000 00000000 INJECT: jmp newmem nop return: registersymbol(INJECT) [DISABLE] INJECT: db D9 40 28 83 C0 30 unregistersymbol(pflag) unregistersymbol(pos) unregistersymbol(store) unregistersymbol(restore) unregistersymbol(INJECT) dealloc(pflag) dealloc(pos) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "SPEED2.EXE"+1A8489 "SPEED2.EXE"+1A8462: 8D 4C 24 28 - lea ecx,[esp+28] "SPEED2.EXE"+1A8466: 51 - push ecx "SPEED2.EXE"+1A8467: E8 B4 45 E9 FF - call SPEED2.EXE+3CA20 "SPEED2.EXE"+1A846C: D9 44 24 2C - fld dword ptr [esp+2C] "SPEED2.EXE"+1A8470: 8B 86 A4 00 00 00 - mov eax,[esi+000000A4] "SPEED2.EXE"+1A8476: D8 40 20 - fadd dword ptr [eax+20] "SPEED2.EXE"+1A8479: 8B 8E A0 00 00 00 - mov ecx,[esi+000000A0] "SPEED2.EXE"+1A847F: D9 40 24 - fld dword ptr [eax+24] "SPEED2.EXE"+1A8482: 83 C4 0C - add esp,0C "SPEED2.EXE"+1A8485: D8 44 24 24 - fadd dword ptr [esp+24] // ---------- INJECTING HERE ---------- "SPEED2.EXE"+1A8489: D9 40 28 - fld dword ptr [eax+28] "SPEED2.EXE"+1A848C: 83 C0 30 - add eax,30 // ---------- DONE INJECTING ---------- "SPEED2.EXE"+1A848F: D8 44 24 28 - fadd dword ptr [esp+28] "SPEED2.EXE"+1A8493: 50 - push eax "SPEED2.EXE"+1A8494: 8D 44 24 24 - lea eax,[esp+24] "SPEED2.EXE"+1A8498: D9 5C 24 3C - fstp dword ptr [esp+3C] "SPEED2.EXE"+1A849C: 8B 54 24 3C - mov edx,[esp+3C] "SPEED2.EXE"+1A84A0: D9 C9 - fxch st(1) "SPEED2.EXE"+1A84A2: 50 - push eax "SPEED2.EXE"+1A84A3: D9 5C 24 28 - fstp dword ptr [esp+28] "SPEED2.EXE"+1A84A7: 89 54 24 30 - mov [esp+30],edx "SPEED2.EXE"+1A84AB: 8D 91 14 01 00 00 - lea edx,[ecx+00000114] } Не рабочий Скрытый текст [ENABLE] aobscanmodule(INJECT,SPEED2.EXE,D9 40 28 83 C0 30) // should be unique alloc(newmem,$1000) globalalloc(pos, 18) alloc(pflag, 1) registersymbol(pflag) registersymbol(pos) registersymbol(store) registersymbol(restore) label(pflag) label(pos) label(store) label(restore) label(code) label(return) newmem: cmp byte ptr [pflag], 1 je store cmp byte ptr [pflag], 2 je restore code: fld dword ptr [eax+28] add eax,30 jmp return store: fld dword ptr [eax+20] fstp dword ptr [pos+0] fld dword ptr [eax+24] fstp dword ptr [pos+04] fld dword ptr [eax+28] fstp dword ptr [pos+08] fld dword ptr [eax+30] fstp dword ptr [pos+10] fld dword ptr [eax+34] fstp dword ptr [pos+14] fld dword ptr [eax+38] fstp dword ptr [pos+18] mov dword ptr [pflag], 3 jmp code restore: fld dword ptr [pos+0] fstp dword ptr [eax+20] fld dword ptr [pos+04] fstp dword ptr [eax+24] fld dword ptr [pos+08] fstp dword ptr [eax+28] fld dword ptr [pos+10] fstp dword ptr [eax+30] fld dword ptr [pos+14] fstp dword ptr [eax+34] fld dword ptr [pos+18] fstp dword ptr [eax+38] mov dword ptr [pflag], 3 jmp code pflag: dd 3 pos: db 00000000 00000000 00000000 INJECT: jmp newmem nop return: registersymbol(INJECT) [DISABLE] INJECT: db D9 40 28 83 C0 30 unregistersymbol(pflag) unregistersymbol(pos) unregistersymbol(store) unregistersymbol(restore) unregistersymbol(INJECT) dealloc(pflag) dealloc(pos) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "SPEED2.EXE"+1A8489 "SPEED2.EXE"+1A8462: 8D 4C 24 28 - lea ecx,[esp+28] "SPEED2.EXE"+1A8466: 51 - push ecx "SPEED2.EXE"+1A8467: E8 B4 45 E9 FF - call SPEED2.EXE+3CA20 "SPEED2.EXE"+1A846C: D9 44 24 2C - fld dword ptr [esp+2C] "SPEED2.EXE"+1A8470: 8B 86 A4 00 00 00 - mov eax,[esi+000000A4] "SPEED2.EXE"+1A8476: D8 40 20 - fadd dword ptr [eax+20] "SPEED2.EXE"+1A8479: 8B 8E A0 00 00 00 - mov ecx,[esi+000000A0] "SPEED2.EXE"+1A847F: D9 40 24 - fld dword ptr [eax+24] "SPEED2.EXE"+1A8482: 83 C4 0C - add esp,0C "SPEED2.EXE"+1A8485: D8 44 24 24 - fadd dword ptr [esp+24] // ---------- INJECTING HERE ---------- "SPEED2.EXE"+1A8489: D9 40 28 - fld dword ptr [eax+28] "SPEED2.EXE"+1A848C: 83 C0 30 - add eax,30 // ---------- DONE INJECTING ---------- "SPEED2.EXE"+1A848F: D8 44 24 28 - fadd dword ptr [esp+28] "SPEED2.EXE"+1A8493: 50 - push eax "SPEED2.EXE"+1A8494: 8D 44 24 24 - lea eax,[esp+24] "SPEED2.EXE"+1A8498: D9 5C 24 3C - fstp dword ptr [esp+3C] "SPEED2.EXE"+1A849C: 8B 54 24 3C - mov edx,[esp+3C] "SPEED2.EXE"+1A84A0: D9 C9 - fxch st(1) "SPEED2.EXE"+1A84A2: 50 - push eax "SPEED2.EXE"+1A84A3: D9 5C 24 28 - fstp dword ptr [esp+28] "SPEED2.EXE"+1A84A7: 89 54 24 30 - mov [esp+30],edx "SPEED2.EXE"+1A84AB: 8D 91 14 01 00 00 - lea edx,[ecx+00000114] } Изменено 20 ноября, 2017 пользователем CHBS Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 20 ноября, 2017 Поделиться Опубликовано 20 ноября, 2017 1. Тебе не нужен globalalloc и dealloc на pflag используй registersymbol и unregistersymbol 2. Зачем ( я устал это писать ) ты пишешь un \ registersymbol для store и restore? 3. Разницу между alloc и globalalloc можно найти тут globalAlloc alloc Ссылка на комментарий Поделиться на другие сайты Поделиться
CHBS Опубликовано 20 ноября, 2017 Автор Поделиться Опубликовано 20 ноября, 2017 (изменено) @ReWanetТак должно быть? Скрытый текст [ENABLE] aobscanmodule(INJECT,SPEED2.EXE,D9 40 28 83 C0 30) // should be unique alloc(newmem,$1000) globalalloc(pos, 18) alloc(pflag, 1) registersymbol(pflag) registersymbol(pos) label(pflag) label(pos) label(store) label(restore) label(code) label(return) newmem: cmp byte ptr [pflag], 1 je store cmp byte ptr [pflag], 2 je restore code: fld dword ptr [eax+28] add eax,30 jmp return store: fld dword ptr [eax+20] fstp dword ptr [pos+0] fld dword ptr [eax+24] fstp dword ptr [pos+04] fld dword ptr [eax+28] fstp dword ptr [pos+08] fld dword ptr [eax+30] fstp dword ptr [pos+10] fld dword ptr [eax+34] fstp dword ptr [pos+14] fld dword ptr [eax+38] fstp dword ptr [pos+18] mov dword ptr [pflag], 3 jmp code restore: fld dword ptr [pos+0] fstp dword ptr [eax+20] fld dword ptr [pos+04] fstp dword ptr [eax+24] fld dword ptr [pos+08] fstp dword ptr [eax+28] fld dword ptr [pos+10] fstp dword ptr [eax+30] fld dword ptr [pos+14] fstp dword ptr [eax+34] fld dword ptr [pos+18] fstp dword ptr [eax+38] mov dword ptr [pflag], 3 jmp code pflag: dd 3 pos: db 00000000 00000000 00000000 INJECT: jmp newmem nop return: registersymbol(INJECT) [DISABLE] INJECT: db D9 40 28 83 C0 30 unregistersymbol(pflag) unregistersymbol(pos) unregistersymbol(INJECT) dealloc(pos) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "SPEED2.EXE"+1A8489 "SPEED2.EXE"+1A8462: 8D 4C 24 28 - lea ecx,[esp+28] "SPEED2.EXE"+1A8466: 51 - push ecx "SPEED2.EXE"+1A8467: E8 B4 45 E9 FF - call SPEED2.EXE+3CA20 "SPEED2.EXE"+1A846C: D9 44 24 2C - fld dword ptr [esp+2C] "SPEED2.EXE"+1A8470: 8B 86 A4 00 00 00 - mov eax,[esi+000000A4] "SPEED2.EXE"+1A8476: D8 40 20 - fadd dword ptr [eax+20] "SPEED2.EXE"+1A8479: 8B 8E A0 00 00 00 - mov ecx,[esi+000000A0] "SPEED2.EXE"+1A847F: D9 40 24 - fld dword ptr [eax+24] "SPEED2.EXE"+1A8482: 83 C4 0C - add esp,0C "SPEED2.EXE"+1A8485: D8 44 24 24 - fadd dword ptr [esp+24] // ---------- INJECTING HERE ---------- "SPEED2.EXE"+1A8489: D9 40 28 - fld dword ptr [eax+28] "SPEED2.EXE"+1A848C: 83 C0 30 - add eax,30 // ---------- DONE INJECTING ---------- "SPEED2.EXE"+1A848F: D8 44 24 28 - fadd dword ptr [esp+28] "SPEED2.EXE"+1A8493: 50 - push eax "SPEED2.EXE"+1A8494: 8D 44 24 24 - lea eax,[esp+24] "SPEED2.EXE"+1A8498: D9 5C 24 3C - fstp dword ptr [esp+3C] "SPEED2.EXE"+1A849C: 8B 54 24 3C - mov edx,[esp+3C] "SPEED2.EXE"+1A84A0: D9 C9 - fxch st(1) "SPEED2.EXE"+1A84A2: 50 - push eax "SPEED2.EXE"+1A84A3: D9 5C 24 28 - fstp dword ptr [esp+28] "SPEED2.EXE"+1A84A7: 89 54 24 30 - mov [esp+30],edx "SPEED2.EXE"+1A84AB: 8D 91 14 01 00 00 - lea edx,[ecx+00000114] } Изменено 20 ноября, 2017 пользователем CHBS Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 20 ноября, 2017 Поделиться Опубликовано 20 ноября, 2017 46 минут назад, CHBS сказал: Так должно быть? Вот так: Скрытый текст [ENABLE] aobscanmodule(INJECT,SPEED2.EXE,D9 40 28 83 C0 30) // should be unique alloc(newmem,$1000) label(code) label(return) //-----// label(pflag) label(pos) label(store) label(restore) registersymbol(pflag) registersymbol(pos) globalalloc(pos,24) newmem: cmp byte ptr [pflag], 1 je store cmp byte ptr [pflag], 2 je restore jmp code store: fld dword ptr [eax+20] fstp dword ptr [pos] fld dword ptr [eax+24] fstp dword ptr [pos+04] fld dword ptr [eax+28] fstp dword ptr [pos+08] fld dword ptr [eax+30] fstp dword ptr [pos+0C] fld dword ptr [eax+34] fstp dword ptr [pos+10] fld dword ptr [eax+38] fstp dword ptr [pos+14] mov dword ptr [pflag], 3 jmp code restore: cmp [pos],(float)0 // Не знаю где у тебя какая координата но подобное нужно чтоб не улететь в 0 координаты je @f fld dword ptr [pos] fstp dword ptr [eax+20] fld dword ptr [pos+04] fstp dword ptr [eax+24] fld dword ptr [pos+08] fstp dword ptr [eax+28] fld dword ptr [pos+0С] fstp dword ptr [eax+30] fld dword ptr [pos+10] fstp dword ptr [eax+34] fld dword ptr [pos+14] fstp dword ptr [eax+38] mov dword ptr [pflag], 3 jmp code @: mov dword ptr [pflag], 3 code: fld dword ptr [eax+28] add eax,30 jmp return pflag: dd 3 pos: db 00000000 00000000 00000000 00000000 00000000 00000000 INJECT: jmp newmem nop return: registersymbol(INJECT) [DISABLE] INJECT: db D9 40 28 83 C0 30 unregistersymbol(INJECT) unregistersymbol(pflag) unregistersymbol(pos) dealloc(newmem) dealloc(pos) { // ORIGINAL CODE - INJECTION POINT: "SPEED2.EXE"+1A8489 "SPEED2.EXE"+1A8462: 8D 4C 24 28 - lea ecx,[esp+28] "SPEED2.EXE"+1A8466: 51 - push ecx "SPEED2.EXE"+1A8467: E8 B4 45 E9 FF - call SPEED2.EXE+3CA20 "SPEED2.EXE"+1A846C: D9 44 24 2C - fld dword ptr [esp+2C] "SPEED2.EXE"+1A8470: 8B 86 A4 00 00 00 - mov eax,[esi+000000A4] "SPEED2.EXE"+1A8476: D8 40 20 - fadd dword ptr [eax+20] "SPEED2.EXE"+1A8479: 8B 8E A0 00 00 00 - mov ecx,[esi+000000A0] "SPEED2.EXE"+1A847F: D9 40 24 - fld dword ptr [eax+24] "SPEED2.EXE"+1A8482: 83 C4 0C - add esp,0C "SPEED2.EXE"+1A8485: D8 44 24 24 - fadd dword ptr [esp+24] // ---------- INJECTING HERE ---------- "SPEED2.EXE"+1A8489: D9 40 28 - fld dword ptr [eax+28] "SPEED2.EXE"+1A848C: 83 C0 30 - add eax,30 // ---------- DONE INJECTING ---------- "SPEED2.EXE"+1A848F: D8 44 24 28 - fadd dword ptr [esp+28] "SPEED2.EXE"+1A8493: 50 - push eax "SPEED2.EXE"+1A8494: 8D 44 24 24 - lea eax,[esp+24] "SPEED2.EXE"+1A8498: D9 5C 24 3C - fstp dword ptr [esp+3C] "SPEED2.EXE"+1A849C: 8B 54 24 3C - mov edx,[esp+3C] "SPEED2.EXE"+1A84A0: D9 C9 - fxch st(1) "SPEED2.EXE"+1A84A2: 50 - push eax "SPEED2.EXE"+1A84A3: D9 5C 24 28 - fstp dword ptr [esp+28] "SPEED2.EXE"+1A84A7: 89 54 24 30 - mov [esp+30],edx "SPEED2.EXE"+1A84AB: 8D 91 14 01 00 00 - lea edx,[ecx+00000114] } 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 20 ноября, 2017 Поделиться Опубликовано 20 ноября, 2017 4 часа назад, CHBS сказал: Рабочий @CHBS, у тебя 6-мерное пространство? Куда ты машины деваешь при телепорте? Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 20 ноября, 2017 Поделиться Опубликовано 20 ноября, 2017 4 минуты назад, Garik66 сказал: Куда ты машины деваешь при телепорте? В реальность телепортирует ) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 20 ноября, 2017 Поделиться Опубликовано 20 ноября, 2017 1 минуту назад, ReWanet сказал: В реальность телепортирует ) Блин точно - не подумал. Да кстати одну машину его видел около Метро Октябрьское поле - Пронеслась с ревом и исчезла, Наверное обратный телепорт был задействован. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 21 ноября, 2017 Поделиться Опубликовано 21 ноября, 2017 10 часов назад, Garik66 сказал: Пронеслась с ревом и исчезла, Наверное обратный телепорт был задействован. Нет, она специальной штангой зацепилась за провод в момент удара молнии и стартанула назад в будущее ))) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 21 ноября, 2017 Поделиться Опубликовано 21 ноября, 2017 33 минуты назад, Xipho сказал: удара молнии Не было спецэффектов (ни молний, ни огненных следов не было - я бы узнал сразу) - просто исчезла. Так что - всё-таки телепорт. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 21 ноября, 2017 Поделиться Опубликовано 21 ноября, 2017 6 часов назад, Garik66 сказал: просто исчезла. Так что - всё-таки телепорт Хм. Значит, все таки, новая версия машины времени ) Без эффектная ) Ссылка на комментарий Поделиться на другие сайты Поделиться
CHBS Опубликовано 21 ноября, 2017 Автор Поделиться Опубликовано 21 ноября, 2017 (изменено) Ну юмористы xDDD 19 часов назад, Garik66 сказал: у тебя 6-мерное пространство Что-то типо того, я же в координаты должен засунуть еще и углы поворота машины, а потом восстановить как было)) Вопросов по телепорту не осталось, спасибо @ReWanet за оказанную помощь. объяснил что и как и к чему)) Изменено 21 ноября, 2017 пользователем CHBS Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 21 ноября, 2017 Поделиться Опубликовано 21 ноября, 2017 1 час назад, CHBS сказал: Вопросов по телепорту не осталось Не осталось. @CHBS, @Xipho, но мысль @ReWanet о телепорте в реальность очень понравилась. Симпсоны вспомнились, когда Гомер к нам попадает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 21 ноября, 2017 Поделиться Опубликовано 21 ноября, 2017 1 час назад, CHBS сказал: Вопросов по телепорту не осталось По телепорту у меня тоже есть несколько видео, вот посмотри (особенно про телепорт на много точек): Dark Souls Prepare to Die Edition Script Teleport 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения