Posts
Mini
Cancel

지금까지 난독화 도구에서 작성한 옵션에 대한 정리를 해 보았다. * MBA (-MBA) Mixed Boolean Arithmeic의 약자로, Boolean을 섞어 연산하는 난독화 옵션 자세히.. * 타입 변환 난독화 (-CTYPE) 변수의 타입을 변경해서 저장하는 난독화 옵션 자세히.. * Opaque Predicate Dynamic Opa...

역난독화와 다른 조사를 하면서 떠올린 난독화 기법이 몇 개 있었다. 단순히 읽기 어렵게 하려면 이런 방법도 좋지 않을까 해서 떠올린 방법이다. Uglyfier (띄어쓰기, 엔터 및 주석 지우기) 사실상 코드가 보기 편하라고 짜 놓은 거니까 이것들을 지워버릴 시 코드가 읽기 어렵게 될 거라고 생각했다. 만드는 방법도 그렇게 어렵지는 않을 것 같다. ...

프로젝트의 최종 목적이 중첩 난독화와 키를 이용한 역난독화를 제공하는 도구를 개발하는 것이었기 때문에, 이번 주에는 역난독화에 대한 분석을 진행하기로 하였다. 따라서 역난독화를 본격적으로 해 보기 전에, 현재 나와 있는 역난독화 프로그램을 이용하여 난독화 된 코드를 해독해보고, 역난독화 도구에 대한 기본적인 내용을 알아보기로 하였다. 역난독화 하려는...

난독화 도구를 개발하기 위해 사용했던 Grammer가 모든 문법에 대해서 지원하지 않았다. 이 Grammer는 예전 컴파일러 개론 수업 시간에 컴파일러 개발을 위해 간단하게 작성했던 문법이어서 어쩔 수가 없는 부분이었다. 고민 끝에 ANTLR 홈페이지에서 C grammer파일(https://github.com/antlr/grammars-v4/blob...

이번 주에는 2에서 작성했던 코드에 오류가 있어 수정을 하고 atoi, itoa등을 이용하여 보완해 보았다. 또한 자바스크립트의 난독화 기술을 분석해 보면 좋을 것 같다고 하셔서 자바스크립트의 난독화 기술에 대해서 가볍게 조사해보았다. 타입 변환 방식 변경 JAVA에서의 타입 변환을 생각하고 난독화를 구상하다 보니 코드에 구멍이 많았다. (JAVA...

지난 주 난독화 팀의 세미나를 진행하면서 앞으로 개발 방향에 대한 이야기를 나누었다. 키를 이용해서 난독화하고 난독화한 코드를 키를 이용하면 다시 난독화 해제 할 수 있는 도구를 개발하는 방향으로 진행하게 되었는데, 학교 수업 과제 제출 같은 경우에 과제 코드를 다른 사용자가 베끼지 못하도록 하는 데 사용될 수 있을 것 같다. 또한 코드를 채점하는 사...

저번 주까지는 MiniC에 난독화할 수 있는 코드를 메소드 형식으로 작성하여 적용하도록 했는데, 이번 주에는 Obfuscator라는 클래스로 따로 빼서 작성하였다. 이후의 코드는 이 클래스에 작성한 뒤, prettyprinter의 각 부분에 적용하는 방식으로 작성할 것 같다. 이렇게 코드의 수정과 적용이 편리하도록 했는데, 다음 시간에는 이것을 더 발...

- Opaque predicate란? 한 방향으로 실행되는 조건문을 만들고, 실행되지 않는 부분에 쓰레기 코드를 삽입하는 대표적인 난독화 방법 중 하나이다. 이는 프로그램 일부를 최적화하는 것을 어렵게 하고, 제어 흐름을 복잡하게 만듦으로써 프로그램 분석을 방해할 수 있다.12 3가지 유형으로 구분할 수 있다.3 1. Invariant Opaqu...

난독화는 프로그램 코드의 원 의미를 보존하며 일부 또는 전체를 변경하여 가독성을 낮추는 작업이다. 이를 통해 프로그램 역난독화를 어렵게 함으로써 코드에 사용된 아이디어, 알고리즘을 숨기고 코드 분석을 통한 크래킹, 불법 복제를 막는다. 난독화는 범위에 따라 소스 코드 난독화와 바이너리 난독화로 나눌 수 있다. 난독화 되어 있는 프로그램은 Dynami...