diff options
author | Shauren <shauren.trinity@gmail.com> | 2018-12-09 14:45:03 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2018-12-09 14:45:03 +0100 |
commit | f94deace764f0b8d99249760d2bc2e85c891c387 (patch) | |
tree | 4c7c56f34768fc7aef05268061a12845c5bf67ce /src/tools/connection_patcher/Patcher.cpp | |
parent | 8725eec9c1c15f3e76bd9d524d4a5d8d0b3f0a44 (diff) | |
parent | a70030ff252b266d12023ffada2a309409c1ccdb (diff) |
Merge branch 'bfa'
Diffstat (limited to 'src/tools/connection_patcher/Patcher.cpp')
-rw-r--r-- | src/tools/connection_patcher/Patcher.cpp | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/src/tools/connection_patcher/Patcher.cpp b/src/tools/connection_patcher/Patcher.cpp deleted file mode 100644 index 78fb87bd3ea..00000000000 --- a/src/tools/connection_patcher/Patcher.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (C) 2012-2014 Arctium Emulation <http://arctium.org> - * Copyright (C) 2008-2018 TrinityCore <https://www.trinitycore.org/> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * asize_t with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "Patcher.hpp" - -namespace Connection_Patcher -{ - Patcher::Patcher(boost::filesystem::path file) - : filePath(file) - { - ReadFile(); - binaryType = Helper::GetBinaryType(binary); - } - - void Patcher::ReadFile() - { - std::ifstream ifs(filePath.string(), std::ifstream::binary); - if (!ifs) - throw std::runtime_error("could not open " + filePath.string()); - - binary.clear(); - ifs >> std::noskipws; - ifs.seekg(0, std::ios_base::end); - binary.reserve(ifs.tellg()); - ifs.seekg(0, std::ios_base::beg); - - std::copy(std::istream_iterator<unsigned char>(ifs), std::istream_iterator<unsigned char>(), std::back_inserter(binary)); - } - - void Patcher::WriteFile(boost::filesystem::path const& path) - { - std::ofstream ofs(path.string(), std::ofstream::binary); - if (!ofs) - throw std::runtime_error("could not open " + path.string()); - - ofs << std::noskipws; - - std::copy(binary.begin(), binary.end(), std::ostream_iterator<unsigned char>(ofs)); - } - - void Patcher::Patch(std::vector<unsigned char> const& bytes, std::vector<unsigned char> const& pattern) - { - if (binary.size() < pattern.size()) - throw std::logic_error("pattern larger than binary"); - - if (pattern.empty()) - return; - - for (size_t const offset : Helper::SearchOffset(binary, pattern)) - { - std::cout << "Found offset " << offset << std::endl; - - if (offset != 0 && binary.size() >= bytes.size()) - for (size_t i = 0; i < bytes.size(); i++) - binary[offset + i] = bytes[i]; - } - } - - void Patcher::Finish(boost::filesystem::path out) - { - if (boost::filesystem::exists(out)) - boost::filesystem::remove(out); - - WriteFile(out); - } -} |