블로그 이미지
Nehoy
경기대학교 / kknock

calendar

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

Notice

Tag

2017. 9. 20. 16:09 Hack/리버싱

tablez.tar.gz


 입력 받은 문자열을 get_tbl_entry() 함수로 변환 시킨다. 변환 시킨 문자열이 주어진 문자열과 일치하면 성공한다.


 get_tbl_entry() 함수는 매개변수로 넘어온 문자가 table[2*i]와 같으면 table[2*i + 1]을 반환한다.


table 자료는 위와 같이 data 영역에 있다.


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
#include <stdio.h>
 
void main() {
    char map[510= { 0, }, ans[37];
    char buffer[38= {0, };
    int i, j;
 
    // Read File
    FILE *file = fopen("map""rb");
    fread(map, sizeof(char), 510, file);
    fclose(file);
 
    file = fopen("target""rb");
    fread(ans, sizeof(char), 37, file);
    fclose(file);
 
    // Compare
    for (i = 0; i < 37; i++) {
        for (j = 0; j <= 0xFE; j++) {
            if (map[j * 2 + 1== ans[i]) {
                buffer[i] = map[j * 2];
                break;
            }
        }
    }
 
    printf("%s\n", buffer);
}
 
cs

 table 자료(map 파일)와 목적 문자열(target 파일)을 가져온다음, 역으로 추적하는 프로그램을 만들었다.



후기.

trans_tbl과 byte_201281 사이에 있는 1byte랑 끝에 있는 1byte를 빼고 map 파일을 만들어서 고생했다..

'Hack > 리버싱' 카테고리의 다른 글

Codegate2020 Preliminary: Halffeed  (0) 2020.02.22
Windows Exception  (0) 2020.01.18
[Codegate 2016] compress  (0) 2017.05.20
[CodeEngn] Challenges : Basic 01  (0) 2016.12.20
[Reversing.kr] imagePrc  (0) 2016.05.30
posted by Nehoy