mirror of
https://github.com/rvtr/TwlToolsRED.git
synced 2025-10-31 06:41:18 -04:00
Usageの修正、アクセスログの改竄状況を表示する際、位置が改変されたファイルに対しては不正ツール側のログを表示し、不正ツール側のログに対応するアドレスで比較するように修正
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@574 7061adef-622a-194b-ae81-725974e89856
This commit is contained in:
parent
df0322bf3d
commit
ef5456c8d6
@ -953,11 +953,14 @@ u32 Checker::GetOctValue( char* hex_char)
|
|||||||
}
|
}
|
||||||
|
|
||||||
char logBuf[0x46];
|
char logBuf[0x46];
|
||||||
void Checker::FindAccessLogFile( RomHeader* gHeaderBuf, Entry* entry, FILE* lfp, CARDRomHashContext *context)
|
void Checker::FindAccessLogFile( RomHeader* gHeaderBuf, Entry* mEntry, Entry* entry, FILE* lfp, CARDRomHashContext *context)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
u8 d1, d2, dm1, dm2;
|
u8 d1, d2, dm1, dm2;
|
||||||
u32 log_start_adr, log_end_adr;
|
u32 log_start_adr, log_end_adr;
|
||||||
|
u32 m_log_start_adr, m_log_end_adr;
|
||||||
|
MyFileEntry* gFileEntry;
|
||||||
|
MyFileEntry* mFileEntry;
|
||||||
|
|
||||||
while( fread( logBuf, 6, 1, lfp))
|
while( fread( logBuf, 6, 1, lfp))
|
||||||
{
|
{
|
||||||
@ -983,10 +986,27 @@ void Checker::FindAccessLogFile( RomHeader* gHeaderBuf, Entry* entry, FILE* lfp,
|
|||||||
(GetOctValue(&logBuf[0x0D]) * 0x10000000));
|
(GetOctValue(&logBuf[0x0D]) * 0x10000000));
|
||||||
printf( "%d 0x%lx - 0x%lx", i, log_start_adr, log_end_adr);
|
printf( "%d 0x%lx - 0x%lx", i, log_start_adr, log_end_adr);
|
||||||
|
|
||||||
if( entry->FindFileLocation( log_start_adr, log_end_adr))
|
gFileEntry = entry->FindFileLocation( log_start_adr, log_end_adr);
|
||||||
{ // TODO:genuine側の対応アドレスはgenuineファイルエントリの先頭から計算し直す
|
if( gFileEntry)
|
||||||
|
{ // 当該ファイルのアクセスログをマジコン側に変換(ファイルの位置が改竄されている場合のため)
|
||||||
|
mFileEntry = mEntry->FindFileEntry( gFileEntry->full_path_name);
|
||||||
|
m_log_start_adr = (log_start_adr - gFileEntry->top) + mFileEntry->top;
|
||||||
|
m_log_end_adr = (log_end_adr - gFileEntry->top) + mFileEntry->top;
|
||||||
|
// アクセスログが異なる場合はそれを明示
|
||||||
|
if( (log_start_adr != m_log_start_adr)||(log_end_adr != m_log_end_adr))
|
||||||
|
{
|
||||||
|
printf( " -> (0x%lx - 0x%lx)", m_log_start_adr, m_log_end_adr);
|
||||||
|
}
|
||||||
|
// ファイル名とファイルとしての改竄有無を表示
|
||||||
|
if( gFileEntry->modified)
|
||||||
|
{
|
||||||
|
printf( " %s(*)", gFileEntry->full_path_name);
|
||||||
|
}else{
|
||||||
|
printf( " %s", gFileEntry->full_path_name);
|
||||||
|
}
|
||||||
|
// 当該アクセスログにおける改竄の有無を表示
|
||||||
if( Diff( log_start_adr, (log_end_adr - log_start_adr),
|
if( Diff( log_start_adr, (log_end_adr - log_start_adr),
|
||||||
log_start_adr, (log_end_adr - log_start_adr),
|
m_log_start_adr, (m_log_end_adr - m_log_start_adr),
|
||||||
true, PRINT_LEVEL_0))
|
true, PRINT_LEVEL_0))
|
||||||
{
|
{
|
||||||
printf( "[data]");
|
printf( "[data]");
|
||||||
|
|||||||
@ -71,7 +71,7 @@ class Checker
|
|||||||
|
|
||||||
|
|
||||||
u32 GetOctValue( char* hex_char);
|
u32 GetOctValue( char* hex_char);
|
||||||
void FindAccessLogFile( RomHeader* gHeaderBuf, Entry* entry, FILE* lfp, CARDRomHashContext *context);
|
void FindAccessLogFile( RomHeader* gHeaderBuf, Entry* mEntry, Entry* entry, FILE* lfp, CARDRomHashContext *context);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -207,9 +207,9 @@ MyFileEntry* Entry::FindFileLocation( u32 start_adr, u32 end_adr)
|
|||||||
retEntry = currentEntry;
|
retEntry = currentEntry;
|
||||||
if( currentEntry->modified)
|
if( currentEntry->modified)
|
||||||
{ // 改竄されているファイルの識別表示
|
{ // 改竄されているファイルの識別表示
|
||||||
printf( " %s(*),", currentEntry->full_path_name);
|
// printf( " %s(*),", currentEntry->full_path_name);
|
||||||
}else{
|
}else{
|
||||||
printf( " %s,", currentEntry->full_path_name);
|
// printf( " %s,", currentEntry->full_path_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
currentEntry = (MyFileEntry*)(currentEntry->next);
|
currentEntry = (MyFileEntry*)(currentEntry->next);
|
||||||
|
|||||||
@ -139,7 +139,7 @@ int main (int argc, char *argv[])
|
|||||||
|
|
||||||
lfp = fopen( log_fname, "r");
|
lfp = fopen( log_fname, "r");
|
||||||
printf( "\n\n\nACCESS LOG\n");
|
printf( "\n\n\nACCESS LOG\n");
|
||||||
checker.FindAccessLogFile( &gHeaderBuf, &gEntry, lfp, &context);
|
checker.FindAccessLogFile( &gHeaderBuf, &mEntry, &gEntry, lfp, &context);
|
||||||
printf( "------------------\n");
|
printf( "------------------\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -27,8 +27,7 @@ char* log_fname = NULL;
|
|||||||
void SA_Usage( void)
|
void SA_Usage( void)
|
||||||
{
|
{
|
||||||
fprintf( stderr, "Analyzing Tool\n");
|
fprintf( stderr, "Analyzing Tool\n");
|
||||||
fprintf( stderr, "Usage: makelst [-o output-file] [--g genuine-srl-file] [--m magicon-srl-file]\n\n");
|
fprintf( stderr, "Usage: tamperdetector [-o output-file] [--g genuine-srl-file] [--m magicon-srl-file] [--l access-log-file]\n\n");
|
||||||
fprintf( stderr, "Usage: makelst [-o output-file] [--g genuine-srl-file] [--l access-log-file]\n\n");
|
|
||||||
exit( 1);
|
exit( 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user