본문 바로가기

Project

(20)
CVE-2015-0311 분석 7일차 Console Log 0:005> .echo AD_ENV;dd 04bac054;.echo ba;dd 04c9905c AD_ENV04bac054 04cbc000 000006c2 04c99040 0000000304bac064 04bac040 04cfa070 04cfafd0 0000000004bac074 00000000 04bac0b0 00000000 0000000004bac084 00000000 00000000 00000000 0000000004bac094 00000000 00000000 00000000 0000000004bac0a4 00000000 00000000 00000000 04bac0e804bac0b4 00000000 00000000 00000000 0000000004bac0c4 00000000 0..
CVE-2015-0311 분석 6일차 알게된 점1. toString 후킹하여 브레이킹 포인트 걸기2. ByteArray.buffer 주소 구함. 모르는 것1. ByteArray의 실제 주소를 모르겠음. 방법은 여러가지 생각이 남.2. 힙 스프레이 ByteArray 실제 주소 구하는 방법 아이디어1. compress()함수의 인자로 넘어 오는것 분석.2. 힙 스프레이3. 힙 트레이싱
CVE-2015-0311 분석 5일차 메모 enum CompressionAlgorithm{ k_zlib, // 0 k_deflate, // 1 k_lzma // 2 }; if (IsShared() || ( m_subscribers.length() > 0 )) {toplevel()->argumentErrorClass()->throwError(kAPICannotAcceptSharedByteArray);} // Snarf the data and give ourself some empty data // (remember, existing data might be copy-on-write so don't dance on it) uint8_t* origData = m_buffer->getArray(); bool origCopyOnWrite = m_bu..
CVE-2015-0311 분석 4일차 공부 한 것1. windbg - pydk2. bindiff 힘든점1. pydk 스크립트 짜기2. toString 브포 걸기3. 디핑 시간 참기
CVE-2015-0311 분석 3일차 - 메모 내가 원하는곳만 어셈 코드를 볼 수 있는 방법?==> 기존의 트레이싱하여 따라가는 방법은 거의 불가능 할거라고 봄. 1. bindiff를 사용해 패치된 코드 비교 후 패치된곳의 주소값을 따와 해당 지점에서 분석2. ??? 발표 자료( AVM 자체를 분석하기보다는 CFG 우회나 익스플로잇 기술에 대해 더 많이 얘기 하고 있음 )https://www.blackhat.com/docs/eu-15/materials/eu-15-Falcon-Exploiting-Adobe-Flash-Player-In-The-Era-Of-Control-Flow-Guard.pdf ( 뭔가 AVM을 분석 하기 쉬운 툴을 만들었다는거 같다. heisecode 라는 사람의 github를 뒤져 봐야겠다. )https://www.blackhat...
CVE-2015-0311 분석 3일차 - hacklab.kr 관계자분과 대화 요약 1. avm+는 참고하면 도움 되는 정보다.2. as3, abc 파일이 아닌 avm에 코드가 올라 가 있고, 해당 코드대로 vm이 실행 하는 함수들을 디버깅하고 트레이싱 하는건 디버깅 심볼이 있어야 가능 & 디버깅 심볼이 있다고 해도 avm이 어떻게 만들었는지 알아야 하는 부분3. IDA+Windbg, Bindiff ( 플래시 관련 컨퍼런스 발표냐 github 도구를 찾아보면 많이 있음. )4. blackhat, cansecwest, recon, syscal360 컨퍼런스 flash 관련 발표 자료 찾아보기. 감사합니다! 도움이 될 것 같습니다 :)
CVE-2015-0311 분석 3일차 오늘은 딱히 수확이 없다. 힘들었던 점1. ByteCode 실행 시에 실제로 어디서 어떤 함수가 실행 되는지 잘 모르겠음...2. 동적 디버깅이 힘듬.
CVE-2015-0311 분석 2일차 trace_path = '/Users/314ckC47/Desktop/cve-2015-0311/trace_and_logs/trace.txt' result_path = '/Users/314ckC47/Desktop/cve-2015-0311/trace_and_logs/return.txt' img_base = 0x10000000 base_addr = 0x63260000 hlcolor = 0xe0e0e0 def Highlight(): global data data = open(trace_path,'r').readlines() ListOfHighlighted = [] ret = '' a = 1 b = len(data) for i in data: print b,a now = i.split() trace_addr = 0..