Mac로 Obfuscator-LVM을 해봤어요.

Obfuscation이란 무엇입니까?


코드 Obfuscation은 일부러 코드를 복잡하게 만들어 읽기와 이해를 포기하게 하는 기술이다.이런 코드를 자연스럽게 쓸 수 있는 재능도 있지만obfscator는 자연 기술된 코드를 그런 코드로 변환하는 도구로 화이트 박스 encription이라고도 부른다.뜻을 바꾸지 않기 위해 명령을 바꾸고 무의미한 의견 차이를 넣어 논리의 중간에 함수로 나누어 호출하여 읽으면 화가 나서 읽을 수 없는 코드로 변환한다.원본 코드를 obfuscate에 두는 실현도 있지만 중간 코드를 obfuscate에 두는 실현이 많다
규격은 PlayReady, DLNA 등 복제 보호와 링크 보호 프로그램을 분석하고 암호 키나 곡선 모양 등을 찾지 않도록 암호화 프로그램에 obfuscate를 하는 것을 추천합니다
이외에도 적들이 발생하지 않는 미사일을 주워 끼워 넣은 프로그램을 해석하지 못하도록 하고, 게임이 표절되지 않도록 하기 위해 바이러스 백신 소프트웨어를 통해obfuscation을 실시하는 흥미로운 예도 있다.
나도 일찍이 어떤 유명한 비즈니스 Obfuscator의 수출(얼마나 튼튼한지 직접 보지 않으면 지울 수 없는)Hex-Ray 같은 것을 쫓아다녔지만 재현 제어 구조의 Decompler로도 전혀 몰랐다.
Obfuscation의 각종 기법에 대해 우리는 매우 참고 가치가 있다.
전화번호부처럼 두꺼운 책이지만 두꺼운 부분만 꼼꼼하게 설명해 이해하기 쉽다.고등학교 때 읽은 감동의'친근한 물리'처럼.Obfuscator-LVM이란?ICSE의 부설회의가 올해부터SPRO(International Workshop on Software Protection)에 나왔는데 중요한 제목이라 지금까지 없었던 것도 신기한 일이지만 여기서 발표됐다.Proceeding힘.
이름처럼 LVM의 중간 코드에 Obfuscation을 하는 OSS의 실제 설치라고 한다.다만, 지금 회사가 바빠서 OSS 버전은 under manintence입니다.그러고 보니 한 유명한 비즈니스 실크도 LVM에 대한 중간 코드인 Obfuscator였다.

Mac를 사용하여 Obfuscator-LVM 테스트


위키의 순서에 따라 아래와 같다
git clone -b llvm-3.6.1 https://github.com/obfuscator-llvm/obfuscator.git
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE:String=Release ../obfuscator/
make -j5
이렇게 되면build 밑에 있는bin/cling이 완성됩니다. 예를 들어
test.c
main(){
  printf ("今年はフィレンツェだったんだ...¥n");
}
성지를 개간하다
bin/clang test.c -mllvm -sub -mllvm -fla -mllvm -bcf
또는 컴파일
nm a.out
이렇게 보면x 및Y 같은 이상한 항목이 생겨서 귀찮아요.
MBA:build takeyuki$ nm a.out
0000000100000000 T __mh_execute_header
0000000100000f50 T _main
                 U _printf
0000000100001018 S _x
000000010000101c S _y
                 U dyld_stub_binder

감상


요 몇 년 동안 나는 줄곧 공짜obfscator(나도 실행하지 않은 끈기orz)를 찾고 있었는데, 마침내 찾았다!이런 느낌.🎶기분

참조 링크


본문의 인용이 참고 노트에 중복되다
  • github
  • 원논문
  • 슬라이드 쇼 발표
  • related works


  • github Obfuscator-LVM의 사례 보고서를 안드로이드의 로컬 애플리케이션에 제출했다.OSX용, Linux용으로 컴파일된 Obfuscator-LVM
  • 공개

  • Obfuscating Android Applications using O-LLVM and the NDK Obfuscoper-LVM의 출력이 Miasm에서 복구를 시도한 결과에 대한 보고서입니다.결론은'못해, 절대 못해'

  • Deobfuscation: recovering an OLLVM-protected program Stack Overflow에 있는 Q&A는 학술적인 프로젝트인 줄 알았는데 이런 곳에서 Q&A를 설립할 수 있다는 것은 이미 실천적인 존재입니다!
  • 좋은 웹페이지 즐겨찾기