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_getImportCount();
void scylla_enumImportTree(LPVOID enumCallBack);
long scylla_estimatedIATSize();
#ifdef __cplusplus
}
#endif /*__cplusplus*/

View File

@ -18711,34 +18711,7 @@ __declspec(dllexport) bool TITCALL ImporterExportIAT(ULONG_PTR StorePlace, ULONG
}
__declspec(dllexport) long TITCALL ImporterEstimatedSize()
{
//TODO scylla enable
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);
*/
return scylla_estimatedIATSize();
}
__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):
- 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)
- MinGW import libraries
- 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:
AddNewDLL
AddNewAPI
AddNewOrdinal
GetLastAddedDLLName
EstimatedSize
GetDLLIndexEx
GetDLLIndex
FindAPIWriteLocation
FindOrdinalAPIWriteLocation
FindAPIByWriteLocation
FindDLLByWriteLocation
LoadImportTable
MoveOriginalIAT
* AddNewDLL
* AddNewAPI
AddNewOrdinal -> AddNewAPI
GetLastAddedDLLName -> no scylla export needed, just rewrite
* GetDLLIndexEx
* GetDLLIndex
* FindAPIWriteLocation
FindOrdinalAPIWriteLocation -> FindAPIWriteLocation
* FindAPIByWriteLocation
* FindDLLByWriteLocation
* LoadImportTable
* MoveOriginalIAT
questionable if working, all proxy to EngineGlobalAPIHandler which is buggy