mumut Опубликовано 31 января, 2019 Поделиться Опубликовано 31 января, 2019 Я нашел инструкцию которая добавляет опыт при убийстве.Потом я нашел адрес который отвечает за максимальный опыт до следующего уровня.Проблема в том что максимальный опыт он 4 bytes а текущий опыт он типа float.Как из 4 bytes перевести во float при этом не меняя само значение. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 января, 2019 Поделиться Опубликовано 31 января, 2019 4 минуты назад, mumut сказал: Как из 4 bytes перевести во float при этом не меняя само значение. Зависит от твоей инструкции, можно и так fild[Max_Exp_Level] fadd[Exp] fstp[Exp] Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 января, 2019 Поделиться Опубликовано 31 января, 2019 40 минут назад, mumut сказал: .Как из 4 bytes перевести во float при этом не меняя само значение. кинь АА-скрипт из своей инструкции. Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 31 января, 2019 Автор Поделиться Опубликовано 31 января, 2019 1 минуту назад, Garik66 сказал: кинь АА-скрипт из своей инструкции. а что такое "АА-скрипт" Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 января, 2019 Поделиться Опубликовано 31 января, 2019 Только что, mumut сказал: а что такое "АА-скрипт" Ладно, тогда просто кинь СЕ-ный скрипт с аобсканом из своей инструкции. Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 31 января, 2019 Автор Поделиться Опубликовано 31 января, 2019 АА это автоасемблер ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 января, 2019 Поделиться Опубликовано 31 января, 2019 8 минут назад, mumut сказал: а что такое "АА-скрипт" 5 минут назад, mumut сказал: АА это автоасемблер ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 января, 2019 Поделиться Опубликовано 31 января, 2019 17 минут назад, mumut сказал: АА так что - кинешь скрипт? Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 31 января, 2019 Автор Поделиться Опубликовано 31 января, 2019 подожди 5 минут Что то типо этого Спойлер { Game : Borderlands2.exe Version: Date : 2019-01-31 Author : ????? This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(INJECT,Borderlands2.exe,F3 0F 10 45 10 83 C4 0C 8B) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: push eax mov eax,[ebp+16623E58] mov [ebp+10],eax code: movss xmm0,[ebp+10] jmp return INJECT: jmp newmem return: registersymbol(INJECT) [DISABLE] //code from here till the end of the code will be used to disable the cheat INJECT: db F3 0F 10 45 10 unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Borderlands2.exe"+ADD77B "Borderlands2.exe"+ADD75F: 74 22 - je Borderlands2.exe+ADD783 "Borderlands2.exe"+ADD761: 8B 55 0C - mov edx,[ebp+0C] "Borderlands2.exe"+ADD764: F3 0F 5C C1 - subss xmm0,xmm1 "Borderlands2.exe"+ADD768: 0F 57 C9 - xorps xmm1,xmm1 "Borderlands2.exe"+ADD76B: F3 0F 10 C8 - movss xmm1,xmm0 "Borderlands2.exe"+ADD76F: F3 0F 2C C9 - cvttss2si ecx,xmm1 "Borderlands2.exe"+ADD773: 51 - push ecx "Borderlands2.exe"+ADD774: 52 - push edx "Borderlands2.exe"+ADD775: 56 - push esi "Borderlands2.exe"+ADD776: E8 95 1B 3B 00 - call Borderlands2.exe+E8F310 // ---------- INJECTING HERE ---------- "Borderlands2.exe"+ADD77B: F3 0F 10 45 10 - movss xmm0,[ebp+10] // ---------- DONE INJECTING ---------- "Borderlands2.exe"+ADD780: 83 C4 0C - add esp,0C "Borderlands2.exe"+ADD783: 8B CF - mov ecx,edi "Borderlands2.exe"+ADD785: F3 0F 11 47 6C - movss [edi+6C],xmm0 "Borderlands2.exe"+ADD78A: E8 01 A3 C5 FF - call Borderlands2.exe+737A90 "Borderlands2.exe"+ADD78F: 5F - pop edi "Borderlands2.exe"+ADD790: 5E - pop esi "Borderlands2.exe"+ADD791: 8B E5 - mov esp,ebp "Borderlands2.exe"+ADD793: 5D - pop ebp "Borderlands2.exe"+ADD794: C2 0C 00 - ret 000C "Borderlands2.exe"+ADD797: CC - int 3 } забыл написать "pop eax" Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 января, 2019 Поделиться Опубликовано 31 января, 2019 6 минут назад, mumut сказал: Что то типо этого Это что? Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 31 января, 2019 Автор Поделиться Опубликовано 31 января, 2019 (изменено) 1. http://prntscr.com/meuuav 2. http://prntscr.com/meuuz7 Изменено 31 января, 2019 пользователем mumut Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 31 января, 2019 Поделиться Опубликовано 31 января, 2019 1. я убил монстра. но чёй-то не то с твоей инструкцией. Скорее всего ты что-то не то нашел. 2. На этой инструкции проскакивает несколько значений 3. откуда такое смещение ebp+16623E58 и как ты его сумел получить? 4. твой скрипт неправильный. На выходных посмотрю, как устроен опыт в этой игре. Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 31 января, 2019 Автор Поделиться Опубликовано 31 января, 2019 2 минуты назад, Garik66 сказал: 3. откуда такое смещение ebp+16623E58 и как ты его сумел получить? 1. https://prnt.sc/meva0y 2. https://prnt.sc/mevb8n Я узнал адрес ebp.И просто адрес максимальный левел до следующего уровня уменьшал с адресом ebp и так я получал это смещение. Ссылка на комментарий Поделиться на другие сайты Поделиться
Sanic Опубликовано 1 февраля, 2019 Поделиться Опубликовано 1 февраля, 2019 (изменено) В 31.01.2019 в 19:50, mumut сказал: 1. https://prnt.sc/meva0y 2. https://prnt.sc/mevb8n Я узнал адрес ebp.И просто адрес максимальный левел до следующего уровня уменьшал с адресом ebp и так я получал это смещение. Есть инструкции, которые постоянно/после каждого убийства читают с адреса, в котором лежит количество опыта для следующего уровня? Изменено 1 февраля, 2019 пользователем Sanic Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 февраля, 2019 Поделиться Опубликовано 2 февраля, 2019 В 31.01.2019 в 20:50, mumut сказал: Я узнал адрес скрипт "Lavel UP" Спойлер { Game : Borderlands2.exe Version: Date : 2019-02-02 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(Exp,Borderlands2.exe,F3 0F 10 4F 6C 0F 5B) // should be unique alloc(newmem,$1000) label(code) label(return) label(Lavel_UP) registersymbol(Lavel_UP) registersymbol(Exp) newmem: cmp [Lavel_UP],1 jne code mov [Lavel_UP],0 cvtdq2ps xmm0,xmm0 movss [edi+6C],xmm0 code: movss xmm1,[edi+6C] jmp return Lavel_UP: dd 0 Exp: jmp newmem return: [DISABLE] Exp: db F3 0F 10 4F 6C unregistersymbol(Lavel_UP) unregistersymbol(Exp) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Borderlands2.exe"+9CEC87 "Borderlands2.exe"+9CEC5F: 0F 84 E9 00 00 00 - je Borderlands2.exe+9CED4E "Borderlands2.exe"+9CEC65: 8B 86 94 01 00 00 - mov eax,[esi+00000194] "Borderlands2.exe"+9CEC6B: 53 - push ebx "Borderlands2.exe"+9CEC6C: 50 - push eax "Borderlands2.exe"+9CEC6D: E8 BE 87 6A FF - call Borderlands2.exe+77430 "Borderlands2.exe"+9CEC72: 8B D8 - mov ebx,eax "Borderlands2.exe"+9CEC74: 83 C4 04 - add esp,04 "Borderlands2.exe"+9CEC77: 85 DB - test ebx,ebx "Borderlands2.exe"+9CEC79: 0F 84 CE 00 00 00 - je Borderlands2.exe+9CED4D "Borderlands2.exe"+9CEC7F: 66 0F 6E 83 5C 02 00 00 - movd xmm0,[ebx+0000025C] // ---------- INJECTING HERE ---------- "Borderlands2.exe"+9CEC87: F3 0F 10 4F 6C - movss xmm1,[edi+6C] // ---------- DONE INJECTING ---------- "Borderlands2.exe"+9CEC8C: 0F 5B C0 - cvtdq2ps xmm0,xmm0 "Borderlands2.exe"+9CEC8F: 0F 2F C8 - comiss xmm1,xmm0 "Borderlands2.exe"+9CEC92: C7 45 F8 00 00 00 00 - mov [ebp-08],00000000 "Borderlands2.exe"+9CEC99: 0F 82 9D 00 00 00 - jb Borderlands2.exe+9CED3C "Borderlands2.exe"+9CEC9F: 90 - nop "Borderlands2.exe"+9CECA0: 83 BB 5C 02 00 00 00 - cmp dword ptr [ebx+0000025C],00 "Borderlands2.exe"+9CECA7: 7E 70 - jle Borderlands2.exe+9CED19 "Borderlands2.exe"+9CECA9: 8B CE - mov ecx,esi "Borderlands2.exe"+9CECAB: E8 F0 19 49 00 - call Borderlands2.exe+E606A0 "Borderlands2.exe"+9CECB0: 39 83 58 02 00 00 - cmp [ebx+00000258],eax } видео: Табличка: Borderlands2.CT 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 4 февраля, 2019 Автор Поделиться Опубликовано 4 февраля, 2019 (изменено) Ситуация такова сижу пишу скрипт на "Новый уровень при каждом убийстве" и когда все сделал включил скрипт и тут у меня вылетело.С горем по полам я все же сделал так что бы у меня не вылетало но у меня образовалась вторая проблема.У меня просто не прибавляется левел. Потом я выяснил что в место адреса с максимальным опытом до следующего уровня и текущего у меня лежали другие адреса.Пожалуйста укажите где я накосячил. Вот код: Спойлер { Game : Borderlands2.exe Version: Date : 2019-02-04 Author : mumut This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(New_level_with_every_kill,Borderlands2.exe,F3 0F 11 00 5D C2 08 00 CC CC 55) // should be unique aobscanmodule(Address,Borderlands2.exe,F3 0F 10 4F 6C 0F 5B) alloc(newmem,$1000) label(newmem2) label(code) label(code2) label(return) label(return2) label(LeveL) label(MaX_LeveL) registersymbol(New_level_with_every_kill) registersymbol(Address) newmem: //================================ cmp [eax+70],(float)1 jne code cmp [eax+D0],AB4992D5 jne code cmp [eax+210],AB4992D5 jne code cmp [eax+350],AB4992D5 jne code //идет проверка враг ли это cmp [eax+490],AB4992D5 jne code cmp [eax+5C8],AB4992D5 jne code cmp [eax+710],AB4992D5 jne code //================================ cmp [eax],(float)0 //у врага 0 хп ? jne code //Если нет то прыгаем в код //================================ movss xmm0,[MaX_LeveL+25C] //Если да то в xmm0 ложится значение максимального левела cvtdq2ps xmm0,xmm0 //Превращает из 4 bytes в float movss [LeveL+6C],xmm0 //И ложится в значение текущего опыта code: movss [eax],xmm0 pop ebp jmp return newmem2: mov [MaX_LeveL],ebx //В ebx находится начало структуры с максимальным левелом mov [LeveL],edi //В edi находится начало структуры с текущим левелом code2: movss xmm1,[edi+6C] jmp return2 LeveL: dd 0 MaX_LeveL: dd 0 New_level_with_every_kill: jmp newmem return: Address: jmp newmem2 return2: [DISABLE] //code from here till the end of the code will be used to disable the cheat New_level_with_every_kill: db F3 0F 11 00 5D Address: db F3 0F 10 4F 6C unregistersymbol(New_level_with_every_kill) unregistersymbol(Address) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Borderlands2.exe"+245476 "Borderlands2.exe"+24545E: CC - int 3 "Borderlands2.exe"+24545F: CC - int 3 "Borderlands2.exe"+245460: 55 - push ebp "Borderlands2.exe"+245461: 8B EC - mov ebp,esp "Borderlands2.exe"+245463: 8B 4D 08 - mov ecx,[ebp+08] "Borderlands2.exe"+245466: 8B 41 18 - mov eax,[ecx+18] "Borderlands2.exe"+245469: F3 0F 10 00 - movss xmm0,[eax] "Borderlands2.exe"+24546D: 83 C0 04 - add eax,04 "Borderlands2.exe"+245470: 89 41 18 - mov [ecx+18],eax "Borderlands2.exe"+245473: 8B 45 0C - mov eax,[ebp+0C] // ---------- INJECTING HERE ---------- "Borderlands2.exe"+245476: F3 0F 11 00 - movss [eax],xmm0 "Borderlands2.exe"+24547A: 5D - pop ebp // ---------- DONE INJECTING ---------- "Borderlands2.exe"+24547B: C2 08 00 - ret 0008 "Borderlands2.exe"+24547E: CC - int 3 "Borderlands2.exe"+24547F: CC - int 3 "Borderlands2.exe"+245480: 55 - push ebp "Borderlands2.exe"+245481: 8B EC - mov ebp,esp "Borderlands2.exe"+245483: 8B 45 08 - mov eax,[ebp+08] "Borderlands2.exe"+245486: 8B 50 18 - mov edx,[eax+18] "Borderlands2.exe"+245489: 56 - push esi "Borderlands2.exe"+24548A: 8B F1 - mov esi,ecx "Borderlands2.exe"+24548C: 8A 0A - mov cl,[edx] } { // ORIGINAL CODE - INJECTION POINT: "Borderlands2.exe"+9CEC87 "Borderlands2.exe"+9CEC5F: 0F 84 E9 00 00 00 - je Borderlands2.exe+9CED4E "Borderlands2.exe"+9CEC65: 8B 86 94 01 00 00 - mov eax,[esi+00000194] "Borderlands2.exe"+9CEC6B: 53 - push ebx "Borderlands2.exe"+9CEC6C: 50 - push eax "Borderlands2.exe"+9CEC6D: E8 BE 87 6A FF - call Borderlands2.exe+77430 "Borderlands2.exe"+9CEC72: 8B D8 - mov ebx,eax "Borderlands2.exe"+9CEC74: 83 C4 04 - add esp,04 "Borderlands2.exe"+9CEC77: 85 DB - test ebx,ebx "Borderlands2.exe"+9CEC79: 0F 84 CE 00 00 00 - je Borderlands2.exe+9CED4D "Borderlands2.exe"+9CEC7F: 66 0F 6E 83 5C 02 00 00 - movd xmm0,[ebx+0000025C] Это инструкция работает только с адресо максимального левела // ---------- INJECTING HERE ---------- "Borderlands2.exe"+9CEC87: F3 0F 10 4F 6C - movss xmm1,[edi+6C] Это инструкция работает только с адресо текущиго левела // ---------- DONE INJECTING ---------- "Borderlands2.exe"+9CEC8C: 0F 5B C0 - cvtdq2ps xmm0,xmm0 "Borderlands2.exe"+9CEC8F: 0F 2F C8 - comiss xmm1,xmm0 "Borderlands2.exe"+9CEC92: C7 45 F8 00 00 00 00 - mov [ebp-08],00000000 "Borderlands2.exe"+9CEC99: 0F 82 9D 00 00 00 - jb Borderlands2.exe+9CED3C "Borderlands2.exe"+9CEC9F: 90 - nop "Borderlands2.exe"+9CECA0: 83 BB 5C 02 00 00 00 - cmp dword ptr [ebx+0000025C],00 "Borderlands2.exe"+9CECA7: 7E 70 - jle Borderlands2.exe+9CED19 "Borderlands2.exe"+9CECA9: 8B CE - mov ecx,esi "Borderlands2.exe"+9CECAB: E8 F0 19 49 00 - call Borderlands2.exe+E606A0 "Borderlands2.exe"+9CECB0: 39 83 58 02 00 00 - cmp [ebx+00000258],eax } Изменено 4 февраля, 2019 пользователем mumut Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 4 февраля, 2019 Поделиться Опубликовано 4 февраля, 2019 2 часа назад, mumut сказал: Пожалуйста укажите где я накосячил. А чем не устроил мой скрипт? Смогу посмотреть только в среду. (если кто-нибудь раньше не поможет.) Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 4 февраля, 2019 Автор Поделиться Опубликовано 4 февраля, 2019 3 минуты назад, Garik66 сказал: А чем не устроил мой скрипт? Твой скрипт работает при нажатии.А же хочу сделать при убийстве. Ссылка на комментарий Поделиться на другие сайты Поделиться
imaginary Опубликовано 4 февраля, 2019 Поделиться Опубликовано 4 февраля, 2019 Вот скрипт и видео, 2 инструкции, при убийстве врага записывается значение очков для уровня *забавно получилось - игра показывает кучу опыта при победе над врагом, будто так и должно быть) Действует только если за врага дают опыт, после достижения определённого уровня за слабых врагов больше не дают, за сильных дают. Скрипт: Спойлер [ENABLE] aobscanmodule(Finder,Borderlands2.exe,66 0F 6E 83 5C 02 00 00 F3 0F 10 4F) alloc(newmem,$100) label(code) label(return) label(needCount) registersymbol(needCount) newmem: fild dword [ebx+0000025C] fstp dword [needCount] code: movd xmm0,[ebx+0000025C] jmp return needCount: db 0 Finder: jmp newmem nop nop nop return: registersymbol(Finder) aobscanmodule(LevelUp,Borderlands2.exe,F3 0F 11 47 6C E8) alloc(newmem2,$100) label(code2) label(return2) newmem2: movss [edi+6C],xmm0 fld dword [needCount] fstp dword [edi+6C] code2: jmp return2 LevelUp: jmp newmem2 return2: registersymbol(LevelUp) [DISABLE] Finder: db 66 0F 6E 83 5C 02 00 00 unregistersymbol(needCount) unregistersymbol(Finder) dealloc(newmem) LevelUp: db F3 0F 11 47 6C unregistersymbol(LevelUp) dealloc(newmem2) Видео: Спойлер 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 4 февраля, 2019 Поделиться Опубликовано 4 февраля, 2019 7 часов назад, mumut сказал: Твой скрипт работает при нажатии.А же хочу сделать при убийстве. Чтобы убить, нужно больше нажатий сделать. А тут сразу, независимо - Халява. Ссылка на комментарий Поделиться на другие сайты Поделиться
mumut Опубликовано 5 февраля, 2019 Автор Поделиться Опубликовано 5 февраля, 2019 16 часов назад, inaginary сказал: Действует только если за врага дают опыт, после достижения определённого уровня за слабых врагов больше не дают, за сильных дают. У меня тоже есть скрипт "Новый уровень при получении опыта". Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 5 февраля, 2019 Поделиться Опубликовано 5 февраля, 2019 23 часа назад, inaginary сказал: Действует только если за врага дают опыт, после достижения определённого уровня за слабых врагов больше не дают, за сильных дают. Тыды выход, либо юзать мой скрипт. который не зависит от врага. Либо привязывать флаг на мой скрипт, к скрипту на жизни врагов. (ну думаю ты понял, что нужно сделать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения