//-------------------------------------------------------------------------- VOID check_unpacked_cb(VOID * ip, const CONTEXT *ctxt, THREADID tid) { ADDRINT ea = (ADDRINT)ip; addrdeq_t::iterator it = std::find(write_address.begin(), write_address.end(), ea); if ( it != write_address.end() ) write_address.erase(it); fprintf(stderr, "Layer unpacked: %p\n", ip); PIN_ApplicationBreakpoint(ctxt, tid, false, "Layer unpacked!"); }
//-------------------------------------------------------------------------- inline ADDRINT was_writen(ADDRINT ea) { return std::find(write_address.begin(), write_address.end(), ea) != write_address.end(); }