test.c 파일에 난독화 할 코드를 입력하고 pretty print 를 실행하면 콘솔에 결과 c 코드가 출력된다.

1. 연습 결과

난독화 전 test.c 파일
int func(int age, int class){
	int ret = 0;
	ret = age + class;
	return ret;
}

void main () {
	_print(func(19, 4));
}

난독화 후 출력된 코드

int func(int age, int class)
{
    int ret = 0;
    int _ = 0;
    int __ = 0;
    for(int i = 0; i < age; i++)
    {
        _++;
    }
    for(int i = 0; i < class; i++)
    {
        __++;
    }
    ret = age + class;
    return ret;
}
void main()
{
    _print(func(19, 4));
}

의도한대로라면 ret = age + class; 부분이 ret = _ + __;로 변경되어야 한다. map 사용에서 착오가 있는것 같아 수정중입니다.

2. listener 에 작성한 코드

array를 이용해서 구현한 상태인데, 이부분 또한 map으로 변경할 예정입니다. code1
△ exitCompound_stmt 내부에 작성
부모에 접근해 params를 가져와 원래의 변수명을 저장하는 배열params과 언더바로 구성된 새로운 변수명을 저장하는 배열obfIdents을 생성한다. reAssign을 호출할때 위에서 만든 배열들과 t(depth를 맞추기 위함)를 아규먼트로 한다.
code2
△ 지역 변수 선언과 for문을 통한 값 할당 부분을 작성하는 함수이다.