Submarina Опубликовано 22 февраля, 2016 Автор Поделиться Опубликовано 22 февраля, 2016 (изменено) короче скрипт работает толь без обскана,ID инженеров cmp [rbx+2C],000002C0 не работает с обскано. работает он просто замораживает значения и всё, вот скрипт. Скрытый текст [ENABLE] alloc(newmem,2048,"XCom2.exe"+B832FD) label(returnhere) label(originalcode) label(exit) newmem: cmp [rbx+2C],000002C0 jne originalcode mov ecx,edx originalcode: mov [rbx+08],ecx cmp ecx,edx jmp returnhere "XCom2.exe"+B832FD: jmp newmem returnhere: [DISABLE] dealloc(newmem) "XCom2.exe"+B832FD: mov [rbx+08],ecx cmp ecx,edx Изменено 22 февраля, 2016 пользователем Baracuda Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 Только что, Baracuda сказал: короче скрипт работает толь без обскана работает он просто замораживает значения и всё Ну ни просто замораживает, разве он не сделал тебе при включении больше инженеров? Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 22 февраля, 2016 Автор Поделиться Опубликовано 22 февраля, 2016 нет вот именно не прибавил мене инженеров, а а просто заморозил то количество которое у меня было, я на чел прибавлять а оно не прибавляется. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 3 минуты назад, Baracuda сказал: ID инженеров cmp [rbx+2C],000002C0 Наверное потому что [rbx+2C] не равно 000002C0 (так как ты сравниваешь 8 байтное значение с четырёхбайтным). Но если записать так: cmp dword ptr [rbx+2C],000002C0 , то будет работать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 22 февраля, 2016 Автор Поделиться Опубликовано 22 февраля, 2016 (изменено) нет просто замораживает ЗНАЕШЬ ПОЧЕМУ НЕ ПРИБАВЛЯЕТ ИНЖЕНЕРОВ А ПРОСТО ЗАМОРАЖИВАЕТ ИХ, ПОТОМУ ЧТО ИГРУ ДЕЛАЛИ ПРИДУРКИ ПОЛНЫЕ, ВОТ ЭТО ИСТИННАЯ ПРАВДА. Изменено 22 февраля, 2016 пользователем Baracuda Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 1 минуту назад, Baracuda сказал: нет вот именно не прибавил мене инженеров, а а просто заморозил то количество которое у меня было, я на чел прибавлять а оно не прибавляется. Опять ошибаешься, смотри свой скриншот у тебя на скриншоте в ecx было 1E6, а в edx 245. Выключи скрипт. потрать куда-нибудь инженеров, чтобы уменьшились, а потом опять включи скрипт и увидишь, что количество инженеров увеличилось. Ссылка на комментарий Поделиться на другие сайты Поделиться
gmz Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 эээ никому не кажется странным х32 хук в х64 коде? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 1 минуту назад, gmz сказал: эээ никому не кажется странным х32 хук в х64 коде? я же Baracuda уже написал: 6 минут назад, Garik66 сказал: Наверное потому что [rbx+2C] не равно 000002C0 (так как ты сравниваешь 8 байтное значение с четырёхбайтным). Но если записать так: cmp dword ptr [rbx+2C],000002C0 , то будет работать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 22 февраля, 2016 Автор Поделиться Опубликовано 22 февраля, 2016 (изменено) я всё сделал как ты сказал, плюс я закрыл игру и СЕ, потом открыл по новой, толку ноль. СКРИПТ РАБОТАЕТ НА ЗАМОРОЗКУ И ВСЁ, НЕ КАКИХ ИНЖЕНЕРОВ ОН НЕ ПРИБАВЛЯЕТ. Изменено 22 февраля, 2016 пользователем Baracuda Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 22 февраля, 2016 Автор Поделиться Опубликовано 22 февраля, 2016 (изменено) ВОТ САМ СКРИПТ, ОН ТОЛЬКО РАБОТАЕТ НА ЗАМОРОЗКУ И ВСЁ, НЕ КАКИХ ИНЖЕНЕРОВ ОН НЕ ПРИБАВЛЯЕТ. Скрытый текст [ENABLE] alloc(newmem,2048,"XCom2.exe"+B832FD) label(returnhere) label(originalcode) newmem: cmp dword ptr [rbx+2C],000002C0 jne originalcode mov ecx,edx originalcode: mov [rbx+08],ecx cmp ecx,edx jmp returnhere "XCom2.exe"+B832FD: jmp newmem returnhere: [DISABLE] dealloc(newmem) "XCom2.exe"+B832FD: mov [rbx+08],ecx cmp ecx,edx Изменено 22 февраля, 2016 пользователем Baracuda Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 3 минуты назад, Baracuda сказал: толку ноль. Не понял тебя опять. Не включился скрипт? или что? Какой скрипт? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 Baracuda прицепляй цитату из сообщения, на которое отвечаешь, а то не понятно ни хрена. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 5 минут назад, Baracuda сказал: ВОТ САМ СКРИПТ, ОН ТОЛЬКО РАБОТАЕТ НА ЗАМОРОЗКУ И ВСЁ, НЕ КАК ИНЖЕНЕРОВ ОН НЕ ПРИБАВЛЯЕТ. Ты потратил инженеров перед включением скрипта? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 22 февраля, 2016 Автор Поделиться Опубликовано 22 февраля, 2016 (изменено) и потратил инженеров и прибавил, включил скрипт, а он не прибавляет а просто замораживает, не прибавляет. Изменено 22 февраля, 2016 пользователем Baracuda Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 Ладно, не очень понимаю тебя, проще действительно скачивать игру и делать самому скрипт (думаю быстрее будет получаться), чем получается как испорченный телефон. Вот ещё вариант скрипта: Запомни перед включением скрипта, сколько было инженеров и сколько стало после включения скрипта и напиши: Скрытый текст [ENABLE] alloc(newmem,2048,"XCom2.exe"+B832FD) label(returnhere) label(originalcode) newmem: originalcode: mov [rbx+08],ecx cmp dword ptr [rbx+2C],000002C0 jne @f mov ecx,#1000 mov edx,ecx mov dword ptr [rbx+08],ecx mov dword ptr [rbx+0C],ecx @@: cmp ecx,edx jmp returnhere "XCom2.exe"+B832FD: jmp newmem returnhere: [DISABLE] "XCom2.exe"+B832FD: mov [rbx+08],ecx cmp ecx,edx dealloc(newmem) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 22 февраля, 2016 Автор Поделиться Опубликовано 22 февраля, 2016 было два инженера,осталось два инженера, не прибавляет инженеров, а просто замораживает их. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 Только что, Baracuda сказал: было два инженера,осталось два инженера, не прибавляет инженеров, а просто замораживает их. Понятно. Тогда отвечу на самый первый вопрос. Нет с таким случаем я не сталкивался. По-видимому нужна другая инструкция, либо ты вообще не тот адрес нашёл для инженеров. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 22 февраля, 2016 Автор Поделиться Опубликовано 22 февраля, 2016 (изменено) ну дак вот, я думаю что один адрес отвечает за заморозку значения, второй за прибавления, третий за отнимания. ЕСЛИ Я КАК ТЫ ГОВОРИШЬ Я НАШЁЛ НЕ ТОТ АДРЕС, ТО ТОГДА ОН БЫ НЕ РАБОТАЛ НА ЗАМОРОЗКУ. Изменено 22 февраля, 2016 пользователем Baracuda Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 Только что, Baracuda сказал: ну дак вот, я думаю что один адрес отвечает за заморозку значения, второй за прибавления, третий за отнимания. ЕСЛИ Я КАК ТЫ ГОВОРИШЬ Я НАШЁЛ НЕ ТОТ АДРЕС, ТО ТОГДА ОН БЫ НЕ РАБОТАЛ НА ЗАМОРОЗКУ. Скорее всего ты делал поиск "Неизвестное значение" Изменилось/не изменилось или как то примерно так. Так вот думаю что ты нашёл зависимые адреса от реальных нормальных адресов количества инженеров (которые делают какую-то проверку, поэтому и замораживается). Тебе нужно найти реальные адреса инженеров, которые ты мог бы и менять (отнимать и прибавлять) и замораживать. Ты эти адреса скорее всего выкинул (или не обратил внимания на них) при отсеве. Попробуй ещё раз поискать адрес. Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 22 февраля, 2016 Автор Поделиться Опубликовано 22 февраля, 2016 (изменено) ВИДИШЬ В ЧЁМ ДЕЛА Garik66, Я УЖЕ ПИСАЛ ОБЕТОМ Я КОГДА ЕГО НАШЁЛ,АДРЕС ИНЖЕНЕРОВ Я ЕГО ИЗМЕНИЛ, И КОЛИЧЕСТВО ИНЖЕНЕРОВ В ИГРЕ ТОЖЕ ИЗМЕНИЛОСЬ, ВОТ В ЧЁМ ДЕЛА. сейчас поищу по новой Изменено 22 февраля, 2016 пользователем Baracuda Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 3 минуты назад, Baracuda сказал: ВИДИШЬ В ЧЁМ ДЕЛА Garik66, Я УЖЕ ПИСАЛ ОБЕТОМ Я КОГДА ЕГО НАШЁЛ,АДРЕС ИНЖЕНЕРОВ Я ЕГО ИЗМЕНИЛ, И КОЛИЧЕСТВО ИНЖЕНЕРОВ В ИГРЕ ТОЖЕ ИЗМЕНИЛОСЬ, ВОТ В ЧЁМ ДЕЛА. Не знаю, что и сказать, переспрашивать твои действия (что ты сделал тогда) думаю бесполезно, так как ты не помнишь, что делал, что менял, как менял. Поэтому только один совет - начни заново: заново найди адрес инженеров ну и т.д. Ссылка на комментарий Поделиться на другие сайты Поделиться
gmz Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 29 минуты назад, Garik66 сказал: jmp returnhere это сначала исправьте (пример): mov rcx,originalcode jmp rcx и обратно тоже Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 1 минуту назад, gmz сказал: это сначала исправьте (пример): Не понял. Лучше покажи на скрипте. Иван Семенович, перестаньте говорить загадками, вы меня изводите. Ссылка на комментарий Поделиться на другие сайты Поделиться
gmz Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 там уже такое было. и пример наводил. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 22 февраля, 2016 Поделиться Опубликовано 22 февраля, 2016 9 минут назад, gmz сказал: там уже такое было. и пример наводил. А каким боком тот пример относится к нашему случаю? Baracuda дал скрипт, который сделал сам СЕ: Скрытый текст [ENABLE] aobscanmodule(INJECT,XCom2.exe,89 4B 08 3B CA 7E 2D 41 B8 10 00 00 00 E8 E1) alloc(newmem,$1000,"XCom2.exe"+B832FD) label(code) label(return) newmem: code: mov [rbx+08],ecx cmp ecx,edx jmp return INJECT: jmp code return: registersymbol(INJECT) [DISABLE] INJECT: db 89 4B 08 3B CA unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "XCom2.exe"+B832FD "XCom2.exe"+B832DD: 4D 03 C0 - add r8,r8 "XCom2.exe"+B832E0: 42 8B 14 C0 - mov edx,[rax+r8*8] "XCom2.exe"+B832E4: 8D 41 FF - lea eax,[rcx-01] "XCom2.exe"+B832E7: 89 53 30 - mov [rbx+30],edx "XCom2.exe"+B832EA: 89 43 34 - mov [rbx+34],eax "XCom2.exe"+B832ED: EB 54 - jmp XCom2.exe+B83343 "XCom2.exe"+B832EF: 8B 53 0C - mov edx,[rbx+0C] "XCom2.exe"+B832F2: 48 89 74 24 30 - mov [rsp+30],rsi "XCom2.exe"+B832F7: 8B 73 08 - mov esi,[rbx+08] "XCom2.exe"+B832FA: 8D 4E 01 - lea ecx,[rsi+01] // ---------- INJECTING HERE ---------- "XCom2.exe"+B832FD: 89 4B 08 - mov [rbx+08],ecx "XCom2.exe"+B83300: 3B CA - cmp ecx,edx // ---------- DONE INJECTING ---------- "XCom2.exe"+B83302: 7E 2D - jle XCom2.exe+B83331 "XCom2.exe"+B83304: 41 B8 10 00 00 00 - mov r8d,00000010 "XCom2.exe"+B8330A: E8 E1 5A 6C FF - call XCom2.exe+248DF0 "XCom2.exe"+B8330F: 89 43 0C - mov [rbx+0C],eax "XCom2.exe"+B83312: 48 8B 0B - mov rcx,[rbx] "XCom2.exe"+B83315: 48 85 C9 - test rcx,rcx "XCom2.exe"+B83318: 75 04 - jne XCom2.exe+B8331E "XCom2.exe"+B8331A: 85 C0 - test eax,eax "XCom2.exe"+B8331C: 74 13 - je XCom2.exe+B83331 "XCom2.exe"+B8331E: C1 E0 04 - shl eax,04 } разве jmp code в этом примере не сработает как нужно? Просто игры у меня нет, поэтому посмотреть не могу. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения