본문 바로가기

64bit Big Endian <-> Little Endian 변환 #include "stdafx.h"#include #include long long value = 0x0123456789abcdef printf("%016llX", htonll(value)); //long long 자료형이라 LL이 붙습니다. (64bit)//==> ef cd ab 89 67 45 23 01 printf("%016llX", ntohll(value));//==> ef cd ab 89 67 45 23 01
windbg symbol path 설정 Windbg에서 심볼패스 설정하기. 참고주소 : https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/symbol-path windbg를 이용하여 디버깅 시에, 심볼패스를 설정해 주면 디버깅 시에 도움이 되는 관련 DLL 심볼 정보들을 이용하여 더욱 편하게 디버깅을 진행할 수 있다. windbg에서 symbol path를 설정하는 방법을 간단히 살펴보자. windbg는 ms에서 제공하는 윈도우 맞춤 디버거로, 당연히 ms 홈페이지에서 자세한 설명을 제공하고 있다. symbol path를 설정하는 다양한 방법은 위 '참고주소'에서 다양하게 다루고 있다. ms에서도 cache를 사용하여 locally하게 심볼을 사용할 것을 추천하고 있고, 인..
GZIP header format (.gz extention) gzip file format 참조URL : (http://www.gzip.org/zlib/rfc-gzip.html#file-format) [GZIP 구조 요약]+---+---+---+---+---+---+---+---+---+---+|ID1|ID2|CM |FLG| MTIME |XFL|OS | (more-->)+---+---+---+---+---+---+---+---+---+---+●(if FLG.FEXTRA set)+---+---+=================================+| XLEN |...XLEN bytes of "extra field"...| (more-->)+---+---+=================================+●(if FLG.FNAME set)+=====..
[참조]PeachFuzzer - XmlElement XmlElement: XML document의 basic building block인 XML element을 정의한다. XML 문서의 content를 fuzz하기 위해 사용되며, XML 파서와는 다르다. XmlElement와 XmlAttribute로부터 생성된 output은 well formed하다. ++) XmlElement와 XmlAttribute element는 데이터 크래킹을 지원하지 않는다. XmlElement와 XmlAttribute의 XML 컨텐츠를 크랙하고자 한다면 String element의 부속인 XmlAnalyzer를 사용하자. 결과 : Hello World! Attributes* name : data model 이름 (선택)* minOccurs : 최소 발생 횟수 (선택)* maxO..
[참조]PeachFuzzer - XmlAttribute XmlAttribute: XML element 속성을 정의한다. parent가 XmlElement일 때에만 유효하다. - parent가 XmlElement - XmlAttribute - attributeName 설정 결과 : Attributes* name : data model 이름 (선택)* minOccurs : 최소 발생 횟수 (선택)* maxOccurs : 최대 발생 횟수 (선택)* isStatic : 파싱 시에 해당 element를 토큰으로 간주 여부 (기본 값 : false) (선택)* token : (Peach 2.3) 파싱 시에 해당 element를 토큰으로 간주 여부(기본 값 : false) (선택)* mutable : (Peach 2.3) 데이터 가변성 (기본 값 : true) (선택) ..
[참조]PeachFuzzer - String String: String element는 single 혹은 double byte string을 정의한다. String Element는 DataModel 또는 Block의 child이다. Numerical String 임을 나타내려면 NumericalString Hint를 사용 Attributes* name : data model 이름 (선택)* length : 길이 in characters (선택)* lengthType : length attribute (기본 값 : bytes) (선택)* nullTerminated : 문자열이 null로 끝나는가? (true, false) (선택)* padCharacter : pad 할 string (기본 값 : 0x00) (선택)* token : 파싱 시에 토큰으로..
[참조]PeachFuzzer - Padding Padding: Padding element는 가변적 크기의 block들과 data model들에 pad out하기 위해 사용된다. Attributes* name : * aligned : * alignment : * alignedTo : * lengthCalc : * constraint : * mutable : Valid Child-Elements* Fixup* Relation* Trasformer* Hint Examples
[참조]PeachFuzzer - Number Number: Number element는 8, 16, 24, 32, 64 비트 길이의 binary number를 선언한다.DataModel, Block, Choice의 child element가 될 수 있다. Attributes* name : number의 이름 - 필수* size : 비트 크기의 사이즈 (1~64) - 필수* value : default value* valueType : value 표현 방식 (string, hex) - 선택* token : 파싱 시에 element가 토큰으로 간주된다. (기본 값 : false) * endian : Byte order 명시 (big, little, network) -- network는 big endian과 같다.* signed : 부호가 signed인..