fixed EstimatedSize() to work with scylla

This commit is contained in:
cypherpunk 2014-01-20 17:29:24 +01:00
parent 29d9d8ec5f
commit e93e35b36f
8 changed files with 29 additions and 43 deletions

View File

@ -19,6 +19,7 @@ int scylla_fixMappedDump(DWORD_PTR iatVA, DWORD_PTR FileMapVA, HANDLE hFileMap);
int scylla_getModuleCount(); int scylla_getModuleCount();
int scylla_getImportCount(); int scylla_getImportCount();
void scylla_enumImportTree(LPVOID enumCallBack); void scylla_enumImportTree(LPVOID enumCallBack);
long scylla_estimatedIATSize();
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /*__cplusplus*/ #endif /*__cplusplus*/

View File

@ -18711,34 +18711,7 @@ __declspec(dllexport) bool TITCALL ImporterExportIAT(ULONG_PTR StorePlace, ULONG
} }
__declspec(dllexport) long TITCALL ImporterEstimatedSize() __declspec(dllexport) long TITCALL ImporterEstimatedSize()
{ {
//TODO scylla enable return scylla_estimatedIATSize();
return 0;
/*
int i = 0;
DWORD DLLNumber = NULL;
long EstimatedSize = 0x200;
if(impMoveIAT)
{
EstimatedSize = EstimatedSize + (ImporterGetAddedAPICount() * sizeof ULONG_PTR) + ((impDLLNumber + 1) * sizeof ULONG_PTR);
}
EstimatedSize = EstimatedSize + ((impDLLNumber + 2) * sizeof IMAGE_IMPORT_DESCRIPTOR);
DLLNumber = impDLLNumber + 1;
while(DLLNumber > NULL)
{
EstimatedSize = EstimatedSize + (DWORD)(impDLLStringList[i][1] - impDLLStringList[i][0]);
DLLNumber--;
i++;
}
for(i = 0; i < 1000; i++)
{
if(impOrdinalList[i][0] != NULL && impOrdinalList[i][1] != NULL)
{
EstimatedSize = EstimatedSize + sizeof ULONG_PTR;
}
}
return(EstimatedSize);
*/
} }
__declspec(dllexport) bool TITCALL ImporterExportIATEx(char* szDumpFileName, char* szExportFileName, char* szSectionName) __declspec(dllexport) bool TITCALL ImporterExportIATEx(char* szDumpFileName, char* szExportFileName, char* szSectionName)
{ {

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,4 @@
This is a fixed version of TitanEngine v2.0.3 This is a bugfixed & enhanced version of TitanEngine v2.0.3
The following things have been fixed/added (list might be incomplete): The following things have been fixed/added (list might be incomplete):
- fixed memory breakpoints in general - fixed memory breakpoints in general
@ -14,5 +14,18 @@ The following things have been fixed/added (list might be incomplete):
- supports multiple calling conventions (including the callbacks) - supports multiple calling conventions (including the callbacks)
- MinGW import libraries - MinGW import libraries
- fixed exception handling - fixed exception handling
- Importer functions use Scyllas business logic now, much more accurate
- updated distorm lib to v3, was v1
- countless code improvements
NOTE: LUA, Python, MASM and Delphi might not work correctly. NOTE: LUA, Python, MASM and Delphi might not work correctly
Mainly because their headers havent been adjusted
to these changes. However this is easy. Compare with
C/C++ headers, fix it up and send us.
If you are good with these kinda codes, please help review, do pull-requests,
and criticize what you think can be be improved !
You can discuss with us here
http://forum.tuts4you.com/forum/138-titanengine-community-edition/

View File

@ -13,19 +13,18 @@ GetCurrentDelta //only used for MoveIAT
defunct until scylla-enabled: defunct until scylla-enabled:
AddNewDLL * AddNewDLL
AddNewAPI * AddNewAPI
AddNewOrdinal AddNewOrdinal -> AddNewAPI
GetLastAddedDLLName GetLastAddedDLLName -> no scylla export needed, just rewrite
EstimatedSize * GetDLLIndexEx
GetDLLIndexEx * GetDLLIndex
GetDLLIndex * FindAPIWriteLocation
FindAPIWriteLocation FindOrdinalAPIWriteLocation -> FindAPIWriteLocation
FindOrdinalAPIWriteLocation * FindAPIByWriteLocation
FindAPIByWriteLocation * FindDLLByWriteLocation
FindDLLByWriteLocation * LoadImportTable
LoadImportTable * MoveOriginalIAT
MoveOriginalIAT
questionable if working, all proxy to EngineGlobalAPIHandler which is buggy questionable if working, all proxy to EngineGlobalAPIHandler which is buggy