본문 바로가기

element가 list인지 판단하기 List의 element가 List인지 판단하기 해답 : 파이썬에서 지원하는 isinstance() 함수를 이용하자.사용법 : isinstance(값, 타입) ==> '값'이 '타입'에 해당하는 요소인지 확인. ex) 리스트 요소들이 차지하는 각각의 길이(size)를 구하고 싶다.len() 함수를 이요하면 되지만, 2차원 리스트와 같은 경우에는 크기(size)가 제대로 구해지지 않음.LIST = [ 'a', 'b', ['aaaa', 'bbbb'] ] 일 때 LIST 요소별로 len()을 해주면'a' -> 1'b' -> 1['aaaa', 'bbbb'] -> 2 (원하는 건 4(aaaa)+4(bbbb)='8' 이 나왔으면 하는데!)이럴 때, instance() 함수를 이용하여 요소가 LIST인지 판별하여 계..
파일 크기 구하기 파일 크기 구하기 os.path.getsize("파일이름")를 통해 특정 파일의 크기를 구할 수 있다.파일의 크기는 bytes 단위로 반환된다. ex)import os if __name__ == "__main__":filesize_in_byte = os.path.getsize("C:\Users\Night-ohl\Desktop\hello.txt")print filesize_in_byte ----------------------------(hello.txt 파일 내부)1234---------------------------- ==> 결과 : 4 (bytes)
파이썬 이차원 배열 생성 파이썬 이차원 배열 생성 array = [[1,2,3]. [4,5,6], [7,8,9]]이런 식의 직접적으로 명시해주는 이차원 배열도 자주 쓰이지만, ------------------------------------------------------------------------ fd = open(파일) #파일을 열고fd.seek(offset) #읽어들일 offset을 설정하고nfonts = fd.read(2) #필요한 만큼 읽어들이고 matrix = [[0 for col in range(40)] for row in range(int(nfonts))]#이에 맞는 배열 생성.==> 행(nfonts) * 열(40)의 배열이 만들어진다.0 0 0 0 0 0 ... (40번 - 열개수)0 0 0 0 0 0000..
String을 hex형태로 변환하기 String을 hex형태로 변환하기ex) 파일로부터 크기를 읽어와 크기만큼 블럭을 할당하는 경우. fd = open(파일) #파일을 열고fd.seek(offset) #offset만큼 커서를 이동시켜font_n = fd.read(bytes) #값을 읽어오면 (\x66\x00)(===>>> font_n = "f " 와 같은 String으로 저장된다.) #읽어온 길이가 'f '으로 출력되는 것을 원하지 않으므로,hexString = ''.join(x.encode('hex') for x in font_n) #이를 hex형태로 변환하여print "font_len : " + hexString #출력 등의 원하는 동작을 수행. [출력]font_len : 6600 ※ String형태로 출력되던 걸 Hex형태로 변환시킬..
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 : 파싱 시에 토큰으로..