artorius A artorius Регистрация 24 Июл 2013 Сообщения 87 Репутация 0 Спасибо 0 Монет 0 16 Июл 2023 #1 void replaceAll(std::string& str, const std::string& from, const std::string& to) { if(from.empty()) return; size_t start_pos = 0; while((start_pos = str.find(from, start_pos)) != std::string::npos) { str.replace(start_pos, from.length(), to); start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx' } } std::string get_random_string(const int len) { static const char alphanum[] = "0123456789abcdef"; std::string tmp_s; tmp_s.reserve(len); for (int i = 0; i < len; ++i) { tmp_s += alphanum[rand() % (sizeof(alphanum) - 1)]; } return tmp_s; } string ffffffffffff; string ass1=TENMISCATE("|/data/data/com.axlebolt.standoff2/cache/libmain.so" string ass2=TENMISCATE("|/data/user/0/com.axlebolt.standoff2/cache/libmain.so" BNM::MONO_STRUCTS::monoDictionary<BNM::MONO_STRUCTS::monoString *, BNM::MONO_STRUCTS::monoString *> *(*old_LIST)(void*); BNM::MONO_STRUCTS::monoDictionary<BNM::MONO_STRUCTS::monoString *, BNM::MONO_STRUCTS::monoString *> *LIST(void *instance) { auto ret = old_LIST(instance); for (int i = 0; i < ret->getSize(); ++i) { auto entry = ret->entries->at(i); if (entry.value->get_string().find(TENMISCATE("libmain.so|") != std::string::npos) { const char* valuechar; auto data = entry.value->get_string(); replaceAll(data,ass1, "" replaceAll(data,ass2, "" valuechar = data.c_str(); ret->Insert(entry.key, BNM::CreateMonoString(valuechar)); } return ret; } } void*(*old_newDictionaryContains)(...); void* newDictionaryContains(void*lollll,void *credential,void*Verification,void*DeviceInfo) { if(lollll != NULL){ monoDictionary<monoString*,monoString*>*dict2=*(monoDictionary<monoString*,monoString*>**)((uint64_t)Verification + 0xC); *(BNM::MONO_STRUCTS::monoString**)((uint64_t)DeviceInfo + 0xC) = BNM::CreateMonoString(get_random_string(10)); *(BNM::MONO_STRUCTS::monoString**)((uint64_t)DeviceInfo + 0x8) = BNM::CreateMonoString(get_random_string(32));
void replaceAll(std::string& str, const std::string& from, const std::string& to) { if(from.empty()) return; size_t start_pos = 0; while((start_pos = str.find(from, start_pos)) != std::string::npos) { str.replace(start_pos, from.length(), to); start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx' } } std::string get_random_string(const int len) { static const char alphanum[] = "0123456789abcdef"; std::string tmp_s; tmp_s.reserve(len); for (int i = 0; i < len; ++i) { tmp_s += alphanum[rand() % (sizeof(alphanum) - 1)]; } return tmp_s; } string ffffffffffff; string ass1=TENMISCATE("|/data/data/com.axlebolt.standoff2/cache/libmain.so" string ass2=TENMISCATE("|/data/user/0/com.axlebolt.standoff2/cache/libmain.so" BNM::MONO_STRUCTS::monoDictionary<BNM::MONO_STRUCTS::monoString *, BNM::MONO_STRUCTS::monoString *> *(*old_LIST)(void*); BNM::MONO_STRUCTS::monoDictionary<BNM::MONO_STRUCTS::monoString *, BNM::MONO_STRUCTS::monoString *> *LIST(void *instance) { auto ret = old_LIST(instance); for (int i = 0; i < ret->getSize(); ++i) { auto entry = ret->entries->at(i); if (entry.value->get_string().find(TENMISCATE("libmain.so|") != std::string::npos) { const char* valuechar; auto data = entry.value->get_string(); replaceAll(data,ass1, "" replaceAll(data,ass2, "" valuechar = data.c_str(); ret->Insert(entry.key, BNM::CreateMonoString(valuechar)); } return ret; } } void*(*old_newDictionaryContains)(...); void* newDictionaryContains(void*lollll,void *credential,void*Verification,void*DeviceInfo) { if(lollll != NULL){ monoDictionary<monoString*,monoString*>*dict2=*(monoDictionary<monoString*,monoString*>**)((uint64_t)Verification + 0xC); *(BNM::MONO_STRUCTS::monoString**)((uint64_t)DeviceInfo + 0xC) = BNM::CreateMonoString(get_random_string(10)); *(BNM::MONO_STRUCTS::monoString**)((uint64_t)DeviceInfo + 0x8) = BNM::CreateMonoString(get_random_string(32));
Sanchez99 S Sanchez99 Регистрация 11 Фев 2013 Сообщения 104 Репутация 0 Спасибо 0 Монет 0 16 Июл 2023 #2 код приведен неполный, не хватает инклудов и обрезана последняя функция (newDictionaryContains) функция replaceAll тупо производит замену символов от и до указанного индекса в переданной строке, примитивная фигня которую можно было сделать на regex функция get_random_string возвращает случайную строку заданной дляны, наполненную символами шестнадцатиричного набора (0-f) лямбда BNM::MONO_STRUCTS::monoString, вроде бы, собирает названия всех объектов из жестко вписанной в код библиотеки (.so) метод *old_newDictionaryContains приведен в виде void-заглушки
код приведен неполный, не хватает инклудов и обрезана последняя функция (newDictionaryContains) функция replaceAll тупо производит замену символов от и до указанного индекса в переданной строке, примитивная фигня которую можно было сделать на regex функция get_random_string возвращает случайную строку заданной дляны, наполненную символами шестнадцатиричного набора (0-f) лямбда BNM::MONO_STRUCTS::monoString, вроде бы, собирает названия всех объектов из жестко вписанной в код библиотеки (.so) метод *old_newDictionaryContains приведен в виде void-заглушки
necromantes N necromantes Регистрация 20 Янв 2013 Сообщения 103 Репутация 0 Спасибо 0 Монет 0 16 Июл 2023 #3 У ChatGPT спроси
chiter-pro334 C chiter-pro334 Регистрация 11 Авг 2013 Сообщения 84 Репутация 0 Спасибо 0 Монет 0 16 Июл 2023 #4 Ладно уж джава скрипт не сложный...
antoni555 A antoni555 Регистрация 27 Мар 2013 Сообщения 78 Репутация 0 Спасибо 0 Монет 0 16 Июл 2023 #5 Сиси +