evaluator
February 10th, 2002, 06:49
Hello, RV userz32!
In this thread I will try help newbies how correct RV "little" bug.
Problem is here:
Sometimes (& very often) compilers in IT puts 2 or more entries for
same DLL. For example here in DS_IT we have 3 KERNEL, 2 USER entries.
And in this case RV has not problem, because between same DLL entries
are another DLL entries.
So bug appears, when there is no another DLL between same DLL-entries.
Lets explore DS_IT:
...
516 001559F0 SHELL32.dll DragAcceptFiles
><here at RVA 1559F4 is 00000000. This means END of SHELL32 IT_thunks block.
> But then again starts second SHELL32 IT_thunks block
517 001559F8 SHELL32.dll SHGetSpecialFolderLocation
...
525 00155A1C comdlg32.dll GetOpenFileNameA
><here at RVA 155A20 is 00000000. This means END of COMDLG32 IT_thunks block.
> But then again starts second COMDLG32 IT_thunks block
526 00155A24 comdlg32.dll GetSaveFileNameA
If you will look in original-packed DS_IT at 85588hex, you can find:
2 "shell32.dll" and 2 "comdlg32.dll"!
So what does wrong RV? RV wipes this 00000000 and joins 2 in 1. So we have wrong IT!
What we can DO?
1. wait for RV update
2. or use my easy method.
MY METHOD:
I simple duplicate previous entry, but of course change RVA!
516 001559F0 SHELL32.dll DragAcceptFiles
516 001559F4 SHELL32.dll DragAcceptFiles <inserted-duplicated
___________^ RVA for 00000000
ASLO, when I fetch IAT, size is -10h. Enlarge guys...
In this thread I will try help newbies how correct RV "little" bug.
Problem is here:
Sometimes (& very often) compilers in IT puts 2 or more entries for
same DLL. For example here in DS_IT we have 3 KERNEL, 2 USER entries.
And in this case RV has not problem, because between same DLL entries
are another DLL entries.
So bug appears, when there is no another DLL between same DLL-entries.
Lets explore DS_IT:
...
516 001559F0 SHELL32.dll DragAcceptFiles
><here at RVA 1559F4 is 00000000. This means END of SHELL32 IT_thunks block.
> But then again starts second SHELL32 IT_thunks block
517 001559F8 SHELL32.dll SHGetSpecialFolderLocation
...
525 00155A1C comdlg32.dll GetOpenFileNameA
><here at RVA 155A20 is 00000000. This means END of COMDLG32 IT_thunks block.
> But then again starts second COMDLG32 IT_thunks block
526 00155A24 comdlg32.dll GetSaveFileNameA
If you will look in original-packed DS_IT at 85588hex, you can find:
2 "shell32.dll" and 2 "comdlg32.dll"!
So what does wrong RV? RV wipes this 00000000 and joins 2 in 1. So we have wrong IT!
What we can DO?
1. wait for RV update

2. or use my easy method.
MY METHOD:
I simple duplicate previous entry, but of course change RVA!
516 001559F0 SHELL32.dll DragAcceptFiles
516 001559F4 SHELL32.dll DragAcceptFiles <inserted-duplicated
___________^ RVA for 00000000
ASLO, when I fetch IAT, size is -10h. Enlarge guys...