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];
|
||||
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;
|
||||
u8 d1, d2, dm1, dm2;
|
||||
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))
|
||||
{
|
||||
@ -983,10 +986,27 @@ void Checker::FindAccessLogFile( RomHeader* gHeaderBuf, Entry* entry, FILE* lfp,
|
||||
(GetOctValue(&logBuf[0x0D]) * 0x10000000));
|
||||
printf( "%d 0x%lx - 0x%lx", i, log_start_adr, log_end_adr);
|
||||
|
||||
if( entry->FindFileLocation( log_start_adr, log_end_adr))
|
||||
{ // TODO:genuine側の対応アドレスはgenuineファイルエントリの先頭から計算し直す
|
||||
gFileEntry = entry->FindFileLocation( log_start_adr, log_end_adr);
|
||||
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),
|
||||
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))
|
||||
{
|
||||
printf( "[data]");
|
||||
|
||||
@ -71,7 +71,7 @@ class Checker
|
||||
|
||||
|
||||
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;
|
||||
if( currentEntry->modified)
|
||||
{ // 改竄されているファイルの識別表示
|
||||
printf( " %s(*),", currentEntry->full_path_name);
|
||||
// printf( " %s(*),", currentEntry->full_path_name);
|
||||
}else{
|
||||
printf( " %s,", currentEntry->full_path_name);
|
||||
// printf( " %s,", currentEntry->full_path_name);
|
||||
}
|
||||
}
|
||||
currentEntry = (MyFileEntry*)(currentEntry->next);
|
||||
|
||||
@ -139,7 +139,7 @@ int main (int argc, char *argv[])
|
||||
|
||||
lfp = fopen( log_fname, "r");
|
||||
printf( "\n\n\nACCESS LOG\n");
|
||||
checker.FindAccessLogFile( &gHeaderBuf, &gEntry, lfp, &context);
|
||||
checker.FindAccessLogFile( &gHeaderBuf, &mEntry, &gEntry, lfp, &context);
|
||||
printf( "------------------\n");
|
||||
}
|
||||
|
||||
|
||||
@ -27,8 +27,7 @@ char* log_fname = NULL;
|
||||
void SA_Usage( void)
|
||||
{
|
||||
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: makelst [-o output-file] [--g genuine-srl-file] [--l access-log-file]\n\n");
|
||||
fprintf( stderr, "Usage: tamperdetector [-o output-file] [--g genuine-srl-file] [--m magicon-srl-file] [--l access-log-file]\n\n");
|
||||
exit( 1);
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user