y0u_bat
pintool 메뉴얼 번역(공부한것들만) 본문
PIN_InitSymbols(); // 심볼을 만들어 이용할수있다.
IMG_RegsymHeada(IMG img) // img의 첫번째 심볼을 가져옴.
SYM_Next(SYM x) // 다음 심볼을 보여주고 섹션에서 마지막이면 SYM_Invalid() 호출
SYM_Prev(SYM x) // 전 심볼을 보여주고 섹션에서 처음이면 SYM_Invalid() 호출
SYM_Invalid() // 사용하지 않은 심볼을 나타내줌 (?)
SYM_Name(SYM x); // 해당심볼이름을 가져옴
PIN_UndecorateSymbolName(const string & symbolName, UNDECORATION style);
- 스타일 2가지 존재
- UNDECORATION_COMPLETF // public: char * __thiscall ccc:foo(int)
- UNDECORATION_NAME_ONLY // ccc::foo
- 반환값: 스트링으로 심볼이름을 반환
- 결론 심볼이름 가져오는데 쓰이는거
SYM_Value(SYM x); // 심볼의 값(주소)을 리턴함ㅍ
IMG_LowAddress(IMG x); // IMG에서 가장 낮은 주소나 글에서 동일한 낮은 주소를 리턴함.
RTN_FindByAddress(ADDRINT address); // 핸들러에서 해당주소를 찾음. 안찾아지면 RTN_Invalid()을 호출
RTN_Invalid() // 유효하지 않는 RTN값을 리턴함.
RNT_Valid(RTN rtn) // 만약 존재하는 rtn이라면, True 존재하지 않다면, False 리턴
RNT_Open(RTN rtn) // 해당 rtn을 오픈한다.
RNT_Close(RTN rtn) // 해당 rtn을 닫는다.
RNT_Replace(RTN replacedRtn, AFUNPTR replacementFun)
// 해당RTN을 원하는 함수로 바꾼다. 없애고 싶은 루틴있으면 이걸로 루틴지우면 됨 ㄱㅇㄷ
// 반환값: 바꾼 함수의 시작주소
BBL은 한분기의 대한 명령어 모음
TRACE는 BBL들의 모음(분기시작 ~ 비조건분기 (jmp ret) 등))
TRACE_BblHead(TRACE trace) // 추적할 첫번째 bbl를 리턴함
BBL_Valid(BBL x) // 내용이 있는지 없는지 보는거임 , 리턴값은 있으면 True 없으면 BBL_INVALID()를 호출.
BBL_Next(BBL x) // 다음 bbl를 리턴, 만약에 rtn 또는 trace의 끝이라면 BBL_INVAILD()를 호출
BBL_Prev(BBL x) // 전 bbl를 리턴, 만약에 rtn 또는 trace의 끝이라면 BBL_INVAILD()를 호출
BBL_Numlns(BBL bbl) // BBL안에 있는 INSs의 숫자를 리턴
BBL_InsHead(BBL x) // bbl의 첫번째 인스트럭션을 리턴.
BBL_Address(BBL x) // bbl의 주소를 리턴
INS_Next(INS x); // x의 다음 인스트럭션을 리턴
INS_Disassemble(INS ins) // 인스트럭션의 디스어셈블리한 내용을 리턴
INS_IsBranch(INS ins) // ins가 branch 인스트럭션이면 참을 리턴
INS_DirectBranchOrCallTargetAddress(INS ins)
BBL_Address(BBL bbl) // 현재 bbl의 주소를 반환
for( SYM sym= IMG_RegsymHead(img); SYM_Valid(sym); sym = SYM_Next(sym) )
이런식으로 심볼들을 반복문을 통해 다 가져올수있음.
// Forward pass over all bbls in a trace for( BBL bbl = TRACE_BblHead(trace); BBL_Valid(bbl); bbl = BBL_Next(bbl) )
이런식으로 추척할 BBL 처음부터 끝까지 가져올수있음.
'System' 카테고리의 다른 글
해킹캠프 13회 - equations 풀이 (0) | 2016.02.28 |
---|---|
Alphanumeric Shellcode (ascii shellcode) 작성 (0) | 2016.02.19 |
pintool 간단한 문제 풀이 (2) | 2016.02.17 |
CVE-2015-0235 GHOST 취약점 (0) | 2016.02.16 |
SROP - Sigretrun Oriented Programming (0) | 2016.02.11 |
Comments