Path: blob/master/external/source/exploits/CVE-2017-13861/liboffsetfinder64/patch.cpp
19500 views
//1// patch.cpp2// liboffsetfinder643//4// Created by tihmstar on 09.03.18.5// Copyright © 2018 tihmstar. All rights reserved.6//78#include "patch.hpp"910using namespace tihmstar::patchfinder64;1112patch::patch(loc_t location, const void *patch, size_t patchSize, void(*slidefunc)(class patch *patch, uint64_t slide)) : _location(location), _patchSize(patchSize), _slidefunc(slidefunc){13_patch = malloc(_patchSize);14memcpy((void*)_patch, patch, _patchSize);15_slideme = (_slidefunc) ? true : false;16}1718patch::patch(const patch& cpy) : _location(cpy._location), _patchSize(cpy._patchSize){19_patch = malloc(_patchSize);20memcpy((void*)_patch, cpy._patch, _patchSize);21_slidefunc = cpy._slidefunc;22_slideme = cpy._slideme;23}2425void patch::slide(uint64_t slide){26if (!_slideme)27return;28printf("sliding with %p\n",(void*)slide);29_slidefunc(this,slide);30_slideme = false; //only slide once31}3233patch::~patch(){34free((void*)_patch);35}363738