Posted December 20, 201410 yr i'm have debugged scylla and found the reason for frezeeit happens here:void IATSearch::filterIATPointersList( std::set<DWORD_PTR> & iatPointers ) in this code: while(erased) { iter = iatPointers.begin(); lastPointer = *iter; iter++; for (; iter != iatPointers.end(); iter++) { if ((*iter - lastPointer) > 0x100) //check difference { if (isIATPointerValid(lastPointer, false) == false || isIATPointerValid(*iter, false) == false) { iter--; iatPointers.erase(iter); erased = true; break; } else { erased = false; lastPointer = *iter; } } else { erased = false; lastPointer = *iter; } } } }fix: while(erased) { iter = iatPointers.begin(); lastPointer = *iter; iter++; for (; iter != iatPointers.end(); iter++) { if ((*iter - lastPointer) > 0x100) //check difference { if (isIATPointerValid(lastPointer, false) == false || isIATPointerValid(*iter, false) == false) { iter--; iatPointers.erase(iter); erased = true; break; } else { erased = false; lastPointer = *iter; } } else { erased = false; lastPointer = *iter; } } erased = false; lastPointer = *iter; } } Edited December 20, 201410 yr by DMichael
Create an account or sign in to comment