Daily Archives: 2016-12-19

You are browsing the site archives by date.

여러개의 이미지파일 한번에 파일목록 추출하기 Enscript

디지털포렌식을 기반으로 내부감사업무수행시 분석대상자가 10명.. 아니50명.. 100명이상일경우 전체파일 목록을 데이터베이스화 할경우 분석이 용이해진다.

파일(문서, 이미자, 삭제 등)보유 통계, 특정 프로그램 보유자, 업무와 무관한 영상(음란물, 드라마, 만화 등) 보유자,  대외비 파일(타사 대외비 자료 포함), 최근 사용한 파일 목록 등 다양하게 활용이 가능하다.

개별 이미지파일에서 파일목록 추출이 가능하다. 그러나 이미지파일이 많을 경우 일일이 Export 를 해줘야하는 번거로움이 있다.

아래와 같이 Enscript 를 작성하여 활용하면 감사시 유용하다.

—- 아래 —-

void Main(CaseClass c) {

SystemClass::ClearConsole();
Console.WriteLine(“—————————————“);
Console.WriteLine(” FileList Export for Database”);
Console.WriteLine(” released by JHP, 2016.12.14″);
Console.WriteLine(“—————————————“);
SystemClass::StatusRange(“FileList Export”, 0);

foreach(EvidenceClass ev in c.EvidenceRoot())
{
new NameListClass(DeviceList, ev.Name() + ” (” + ev.Model() + “)”);
}

SettingDialogClass diag(null, this);
int rtn = diag.Execute();

if (rtn == SystemClass::OK)
{

if(OutputPath ==””) {
SystemClass::Message(SystemClass::ICONINFORMATION,”확인”,”저장경로를 확인해주세요”);
}
else{

NodeClass node = diag.LE_DeviceList.GetValue();

foreach(EvidenceClass ev in c.EvidenceRoot())
{
new NameListClass(DeviceList, ev.Name() + ” (” + ev.Model() + “)”);

String temp = ev.Name() + ” (” + ev.Model() + “)”;
String statusString = “Extract files : ” + node.Name();

DeviceClass dev = new DeviceClass();
dev = ev.GetDevice(c, new EvidenceOpenClass);
SystemClass::StatusRange(statusString, GetMaxCount(dev));

SystemClass::StatusInc();

if(bCheckFileList) {

LocalFileClass File = new LocalFileClass();
SystemClass::ClearConsole(SystemClass::SHOWCONSOLE);

File.Open(OutputPath + temp+”.txt”, FileClass::WRITE + FileClass::TEXT );

forall(EntryClass entry in dev.GetRootEntry()) {

File.WriteLine(entry.Name()+”,”+entry.Extension()+”,”+entry.LogicalSize()+”,”+entry.IsDeleted()+”,”+entry.EvidenceFile()+”,”+entry.OriginalPath()+”,”+entry.SymLink());

}

File.Close();
}

}
}
}

}
}