PinTool 과제

잡담 2015. 11. 21. 13:35

제대로 이해하면서 pin을 사용해본건 처음이라고 봐도 괜찮겠습니다.

dump.txt 파일에 Base64로 20번 인코딩된 키 값이 써지고, 이를 20번 디코딩하면 키 값이 나옵니다.

처음부터 32비트 환경에서 할걸...


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
#include "pin.H"
 
#define start 0x8048223
#define end 0x80A3778
 
 
INT32 Usage(){
        printf("pin -t MyPinTool.so -- prog\n");
        return 1;
}
 
int wasXOR = 0;
int xorValue = 0;
int cmpValue = 0;
 
FILE *= fopen("dump.txt""w");
 
VOID Instruction(INS ins, VOID *v) {
    ADDRINT addr = INS_Address(ins);
    if( addr >= start && addr <= end ){
                if(INS_Opcode(ins)==XED_ICLASS_CMP && INS_OperandIsImmediate(ins, 1)) {
                        cmpValue = (unsigned int)INS_OperandImmediate(ins, 1);
                        printf("CMP [unknown], 0x%x\n", cmpValue);
                        if(wasXOR) {
                                printf("[*] %c\n", xorValue^cmpValue);
                                wasXOR = 0;
                                fprintf(p, "%c", xorValue^cmpValue);
                        }
                        else {
                                printf("[*] %c\n", cmpValue);
                                fprintf(p, "%c", cmpValue);
                        }
 
                }
                if(INS_Opcode(ins)==XED_ICLASS_XOR && INS_OperandIsImmediate(ins, 1)) {
                        wasXOR = 1;
                        xorValue = (unsigned int)INS_OperandImmediate(ins, 1);
                        printf("XOR 0x%x\n", xorValue);
                }
                INS_Delete(ins);
        }
}
 
int main(int argc, char * argv[]) {
    if (PIN_Init(argc, argv)) return Usage();
    INS_AddInstrumentFunction(Instruction, 0);
    PIN_StartProgram();
    fclose(p);
    return 0;
}
cs





'잡담' 카테고리의 다른 글

무슨 일이든 꾸준히 한다는건 대단하더라  (0) 2016.03.27
pthread따위 으으  (0) 2016.03.18
Codegate 2016 Junior 예선 결과  (0) 2016.03.13
요즘 생활에 대한 고찰  (0) 2016.03.12
티스토리로 오고 느낀 점  (0) 2016.02.12
블로그 이미지

__미니__

E-mail : skyclad0x7b7@gmail.com 나와 계약해서 슈퍼 하-카가 되어 주지 않을래?

,