• Title/Summary/Keyword: Obfuscator

Search Result 5, Processing Time 0.017 seconds

Implementation of an Obfuscator for Visual C++ Source Code (비주얼 C++소스 코드를 위한 obfuscator 구현)

  • Chang, Hye-Young;Cho, Seong-Je
    • Journal of KIISE:Software and Applications
    • /
    • v.35 no.2
    • /
    • pp.59-69
    • /
    • 2008
  • Automatic obfuscation is known to be the most viable method for preventing reverse engineering intentional1y making code more difficult to understand for security purposes. In this paper, we study and implement an obfuscation method for protecting MS Visual C++ programs against attack on the intellectual property in software like reverse engineering attack. That is, the paper describes the implementation of a code obfuscator, a tool which converts a Visual C++ source program into an equivalent one that is much harder to understand. We have used ANTLR parser generator for handling Visual C++ sources, and implemented some obfuscating transformations such as 'Remove comments', 'Scramble identifiers', 'Split variables', 'Fold array', 'Insert class', 'Extend loop condition', 'Add redundant operands', and 'Insert dead code'. We have also evaluated the performance and effectiveness of the obfuscator in terms of potency, resilience, and cost. When the obfuscated source code has been compared with the original source code, it has enough effectiveness for software protection though it incurs some run-time overheads.

An Implementation of Control Flow Obfuscator for C++ Language (C++언어를 위한 Control Flow Obfuscator 구현 및 평가)

  • Noh Jin-Uk;Cho Byoung-Min;Oh Hyun-Soo;Chang Hye-Young;Jung Min-Gyu;Lee Seung-Won;Park Yong-Soo;Woo Je-Hak;Cho Seong-Je
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2006.06c
    • /
    • pp.295-297
    • /
    • 2006
  • 많은 소프트웨어 개발자들은 자신들의 프로그램들이 역공학 공격의 대상이 되는 것을 우려하고 있다. 특히 프로그램 내에 핵심적인 알고리즘이 내재되어 있는 경우 역공학 공격을 대비하는 기법이 필수적이다. 또한, 유비쿼터스 컴퓨팅 시대가 발전할수록 프로그램의 규모가 대형화됨에 따라 공동 개발자들 간에 프로그램 소스가 공유될 기회가 많아졌고, 그 결과 프로그램 소스 수준의 보호 기법도 필요하게 되었다. 본 논문에서는 C++ 프로그램 보호를 위해 Control Flow Obfuscator 도구를 구현하여 실험하였으며, 실험 결과 크지 않은 오버헤드로 악의적인 공격으로부터 프로그램을 분석을 어렵게 할 수 있음을 보인다.

  • PDF

Comparison of Data Structure and Control Flow Transformations in High-level Obfuscation (고급레벨 Obfuscation에서 자료구조 변환 및 제어흐름 변환의 비교)

  • Chang, Hye-Young;Cho, Byoung-Min;Cho, Seong-Je
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2007.06d
    • /
    • pp.89-94
    • /
    • 2007
  • 자동화된 obfuscatin은 보안 목적으로 코드를 이해하기 어렵게 만들어 역공학 공격을 방어하는데 가장 효과적인 방식이라는 알려져 있다. 본 논문에서는 역공학 공격과 같은 소프트웨어 지적재산권의 침해로부터 마이크로소프트사의 비주얼 C++소스 프로그램을 보호하기 위한 obfuscator를 구현하였다. 그리고 obfuscatio 알고리즘에 따라 potency(복잡도)를 측정하여 분석하여 각 알고리즘을 평가하였다. 또한 cost(비용)과 어셈블리 코드를 비교하여 obfuscator의 성능과 유효성을 평가하였다. 그 결과, 변환된 소스 코드가 실행시간 오버헤드를 일부 유발시키긴 하지만 프로그램 보호에는 효과적임을 알 수 있었다.

  • PDF

An Implementation of Data Obfuscation Tool for C++ Language (C++ 언어를 위한 데이터 obfuscation 도구 구현 및 테스트)

  • Cho Byoung-Min;Noh Jin-Uk;Oh Hyun-Soo;Chang Hye-Young;Jung Min-Gyu;Lee Seung-Won;Park Yong-Soo;Woo Je-Hak;Cho Seong-Je
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2006.06c
    • /
    • pp.292-294
    • /
    • 2006
  • 상용 응용 소프트웨어들은 주요 정보 및 알고리즘들을 내포하고 있어, 악의적인 역공학자들에 의해 특정 소프트웨어를 decompile하여 자료구조 및 제어 흐름을 분석하려는 공격이 이루어 지고 있다. 본 논문에서는 MS 윈도우 XP 상의 Visual C++ (MFC 포함) 프로그램을 역공학 공격으로부터 보호하기 위한 데이터 obfuscator를 구현하고 그 성능을 평가한다. 구현한 obfuscator는 C++ 소스코드를 입력 받아 3가지의 데이터 obfuscation 알고리즘을 적용한 후, 이를 다시 소스코드로 재생성하는 도구로 큰 성능저하 없이 구현 가능함을 알 수 있다.

  • PDF

Study on Structure for Robust App Protection through Commercial Android App Hardening Service (상용 안드로이드 앱 보호 서비스 분석을 통한 강건한 앱 보호 구조 연구)

  • Ha, Dongsoo;Oh, Heekuck
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.28 no.5
    • /
    • pp.1209-1223
    • /
    • 2018
  • Android apps are made up of bytecode, so they are vulnerable to reverse engineering, and protection services are emerging that robustly repackage the app to compensate. Unlike cryptographic algorithms, the robustness of these protection services depends heavily on hiding the protection scheme. Therefore, there are few systematic discussions about the protection method even if destruction techniques of the protection service are various. And it is implemented according to the intuition of the developer. There is a need to discuss systematic protection schemes for robust security chains, rather than simple deployment of techniques disrupting static or dynamic analysis. In this paper, we analyze bangcle, a typical commercial Android app protection service, to examine the protection structure and vulnerable elements. We propose the requirements for robust structure and principles of protection structure.