PDF Reader 퍼징 도전기(4) - DLL 변경

Fuzzing 2022. 1. 4. 02:42

(3)에서 ezPDF2HWP.dll에서 export에서 대상 함수를 찾기 힘들어 offset으로 함수를 찾아 시도해봤지만 오류가 떠서 다른 dll로 변경해보았다. ezPDF2HWP.dll -> ez2HTML.dll, export에서 pdf2html으로 퍼징을 시도해 보았다. 이전 fuzzme 코드 (3) typedef int (__cdecl *TARGET)(wchar_t* filename); TARGET funcPtr; extern "C" __declspec(dllexport) int fuzzme(wchar_t* path); // LPCSTR = long pointer constant string = const char * void __cdecl pdf2hwpA(char *param_1,char *par..

Article Thumbnail
PDF Reader 퍼징 도전기(3) - Harness 작성

Fuzzing 2021. 12. 2. 17:31

한글로 작성되어 있는 pdf파일을 hwp로 변환했을때, pdf2hwpA에서 멈춘다. 즉 변환할때 pdf2hwpA라는 함수를 사용하고, 이 함수를 잘 이용해서 harness를 작성해보면 될거같다. Ghidra로 본 Decompile된 함수의 모습이다. void __cdecl pdf2hwpA(char *param_1,char *param_2,int param_3,int *param_4) iVar3 = FUN_1006f7a0(param_1,&stack0xfffffdf0,param_3,param_4); if (iVar3 == 0) { cVar1 = FUN_1000b410((LPCSTR)(&uStack270 + 1)); if (cVar1 != '\0') { FID_conflict:_wprintf("%s","suc..

Article Thumbnail
PDF Reader 퍼징 도전기(2) - DLL분석

Fuzzing 2021. 10. 10. 23:59

타겟 Reader = ezPDF Reader, 무료 DLL 단순 유추 단순히 dll의 이름만 보고 유추했을때의 기능 ezPDF2HWP -> PDF파일을 HWP파일로 변환 ezPDFConvertDll -> DLL을 변환? ezPDFConvertModule -> 모듈 변환 관련 DLL ezPDFEditorExt32/64 -> 에디터 관련 DLL JpgDll -> jpg다루는 dll? PDF2HTML/Office -> PDF를 HTML과 오피스 형식으로 변환하는 DLL? DLL 분석 Export 부분을 중점으로 해서 함수를 분석하였다. ezPDFConvertDLL에서는 파일에 데이터를 쓰는?듯한 이름을 가진 함수를 발견 ezPDF2HWP.dll에서 export 부분을 찾았을 때 pdf를 hwp로 변경하는 부분..

Article Thumbnail
PDF Reader 퍼징 도전기(1) - WinAFL의 정의와 설치

Fuzzing 2021. 10. 10. 16:39

정의 AFL = American Fuzzy Lop의 약자로, 퍼징을 하는 프로그램으로, 테스트 케이스의 코드 적용 범위를 효율적으로 늘리기 위해 유전자 알고리즘을 사용하는 자유 소프트웨어 fuzzer라고 한다. - 출처 위키백과 특징은 코드 커버리지 측정을 위한 코드를 컴파일 타임에 삽입 버전 리눅스용 버전도 있지만, 리눅스용 버전을 윈도우로 이식시킨게 WinAFL임. 특징 - 블랙박스 퍼징이 가능함 - 서버를 퍼징하는 것이 가능함 동작 과정 afl-fuzz에서 우리가 퍼징하려는 프로그램을 실행한다. 해당 프로그램이 처음으로 실행되면서 afl-fuzz와 pipe로 통신을 하면서 fork server를 만들고, 새로운 타겟 인스턴스를 fork call()로 실행한다. 표준 입력 or file로 들어온 입력..

Article Thumbnail