View Single Post
  #7  
Old 01-12-2005, 11:05
ee45678 ee45678 is offline
Friend
 
Join Date: Jan 2005
Posts: 27
Rept. Given: 0
Rept. Rcvd 0 Times in 0 Posts
Thanks Given: 0
Thanks Rcvd at 0 Times in 0 Posts
ee45678 Reputation: 0
Here is a much easier way.
1) Unpack ida.wll
2) Load ida.wll in the new IDA
3) Go grab something to eat while IDA analyzes the file
4) Open IDA menu View>Open subviews>Strings (Shift+F12)
5) Search for "Database is corrupt"
6) Double click the search result
7) Double click the xref
8) Use IDA or your favourite hex editor to patch the code shown, e.g.
------------------------------------------------------------------------
.text:10014804 loc_10014804: ; CODE XREF: Proc_DatabaseIsCorrupt+41j
.text:10014804 ; Proc_DatabaseIsCorrupt+48j
.text:10014804 ; Proc_DatabaseIsCorrupt+4Fj
.text:10014804 push offset aDatabaseIsCorr ; "Database is corrupt"
.text:10014809 call sub_1000404C
.text:1001480E pop ecx
.text:1001480F
.text:1001480F loc_1001480F: ; CODE XREF: Proc_DatabaseIsCorrupt+6Dj
.text:1001480F pop ecx
.text:10014810 pop ebp
.text:10014811 retn
------------------------------------------------------------------------
You can either nop bytes from loc. 10014804 to 1001480E (easy)
or you can assemble a "jmp 1001480F" at loc. 10014804 (elegant)
9) Copy the patched ida.wll to IDA directory, exit all instances of IDA before this step
Fire up IDA and load any old database, it will ask to upgrade to new format, select yes and it will load OK :-)
Just remember to save the loaded database once so that it is saved in the new format.
Excluding the time taken for step 3. it took me more time to type this message than required for fixing IDA.
Reply With Quote