[모각코] 활동 마무리 6회차 이후, pass만드는 부분을 마무리해보려고 한다. 빌드까지 완료했고 make가 제대로 동작하는 것을 확인했다. 5회차 결과와 같은 방법으로 이름과 코드만 살짝 바꿔 "Yamtest"라는 이름으로 이름만 다르게 새로 만들어서 해 보았다. 코드는 해당 깃허브의 skeleton을 참고했다 빌드를 했던 최상위 폴더인 llvm_tuto/에서 make를 하면, libYamtestPass.so 파일이 생긴 것을 확인할 수 있다. ACTIVITY/모각코 (2020 여름) 2020.08.06
[모각코] 6회차 결과 (200805) llvm pass로 hello world 출력 (5회차에 이어서) ✔(아래 목표로 전환) pass skeleton을 통해 나만의 pass작성해보기 👉 마무리 글에서 이어서 해 볼것! 저번 주차에 만든 yampass... 여기 부분을 하면서 막혔다. gmake가 없어 make명령어로 하려고 했으나 make도 실패ㅠㅠ 오류 화면을 캡쳐해둬야 했는데 아쉽다. 대충 읽어보니 기존에 있던 helloworld 패스와 yampass가 충돌하는지 helloworld가 또 있다며 에러가 나는 내용이었다. 이 문제를 해결하려다 보니 같이 모각코를 하는 친구의 글을 보니 내가 빌드가 덜 된 것 같다는 것을 발견...! 따라서 지금 cmake부터 다시 하는 중이다. 이게 끝나면 우선, make가 잘 되는지 보고, yampas.. ACTIVITY/모각코 (2020 여름) 2020.08.05
[모각코] 6회차 목표 및 기록 (200805) llvm pass로 hello world 출력 (5회차에 이어서) pass skeleton을 통해 나만의 pass작성해보기 이번 시간에는 llvm으로 hello world 를 출력하는 pass를 만들던 것을 마무리 지은 후 이번 활동을 할 것이다. 그 후 https://github.com/sampsyo/llvm-pass-skeleton 을 참고하여 yampass를 다시 만들어 볼 것이다. ACTIVITY/모각코 (2020 여름) 2020.08.05
[모각코] 5회차 결과 (200729) llvm pass 알아보기 ✔ llvm pass로 hello world 출력 llvm pass는 컴파일러에서 수행하는 변환과 최적화를 해 주며, 컴파일러 코드의 구조화 기법이라고 한다. 컴파일러의 부분들을 구현해 놓은 것 같다. 패스들은 패스라는 클래스를 재정의해서 기능을 구현할 수 있다고 하고, 패스의 작동 방식에 따라서 다양한 클래스들에서 상속이 가능한 듯 하다. 또한 패스에 제약 조건을 두고 효율적으로 패스를 실행하게 설정이 가능하다고 한다. (참고 : https://llvm.org/docs/WritingAnLLVMPass.html#introduction-what-is-a-pass) (4.0.0 버전 문서 : https://releases.llvm.org/4.0.0/docs/WritingAnLLVM.. ACTIVITY/모각코 (2020 여름) 2020.07.29
[모각코] 5회차 목표 및 기록 (200729) llvm pass 알아보기 llvm pass로 hello world 출력 5회차에는 4회차에 이어서 Clang을 변환하는 것을 계속 접근해보기로 했다. 4회차에 clang 설치를 해 두어서 이제 코드만 수정하면 될 거라고 생각했는데 생각보다 막막... 여쭤보니 LLVM Pass Framework이라고 클랭을 수정하는 것이 아니라 llvm pass를 만들어서 코드를 수정하거나 분석해야 한다고 한다... 완전 아무것도 모르는 상태에서 하다 보니까 엄청 헤메는 중이다ㅠㅠ 일단 https://llvm.org/docs/WritingAnLLVMPass.html#quick-start-writing-hello-world 이 글을 참고해서 hello world를 출력해 보는 것으로 방향을 변경했다. 버전이 달라서 걱정되.. ACTIVITY/모각코 (2020 여름) 2020.07.29
[모각코] 4회차 결과 (200722) Clang 설치 ✔ 설치를 하면서 빌드가 오래 걸렸다... 설치가 제대로 되었는지 확인까지 해보고 싶었는데 못 해서 다음 시간 전까지 설치를 확인해보려고 한다. ACTIVITY/모각코 (2020 여름) 2020.07.22
[모각코] 4회차 목표 및 기록 (200722) Clang 설치 3주차 때 clang을 다뤄보려고 하다가 못 한 부분을 이번에 해 보기로 하였다. ACTIVITY/모각코 (2020 여름) 2020.07.22
[모각코] 3회차 결과 (200715) Clang 작동 구조 파악 ❌ Clang 수정하여 간단한 출력이라도 내 보기 ❌ 이 페이지를 참고해서 (https://clang.llvm.org/docs/InternalsManual.html#how-to-add-an-expression-or-statement) 프린트를 하려면 Frontend부분을 수정해야 하는 것 같다. 또 이 페이지에서는 (https://clang.llvm.org/doxygen/index.html) Clang에서의 모든 파일을 확인할 수 있어 이 Frontend로 들어가서 cpp파일이 많았는데 이 중에 수정해야 하는 것 같다고 생각하며 putty를 열었었다. 근데 정작 수정해야 하는 파일이 어디있는지 못 찾겠다... llvm폴더는 있는데 다 뒤져봐도 clang 비슷한 글자도 안 나오는.. ACTIVITY/모각코 (2020 여름) 2020.07.15
[모각코] 3회차 목표 및 기록 (200715) Clang 작동 구조 파악 Clang 수정하여 간단한 출력이라도 내 보기 이후에 llvm으로 다른 난독화도 해 보기 위해서는 Clang을 수정해야 하는 것 같다. 이번 시간에는 Clang 파일...? (아마도 cpp소스코드가 있을 것 같음) 을 수정해서 간단한 출력을 내고 Clang의 작동 구조를 알아볼 것이다. ACTIVITY/모각코 (2020 여름) 2020.07.15
[모각코] 2회차 결과 (200708) ollvm 설치 확인 ✔ ollvm을 통해 세 가지 옵션으로 난독화 ✔ 오늘은 설치를 확인하고 ollvm에서 제공하는 세 가지 옵션으로 난독화를 진행해 보았다. 난독화 옵션이 제공되는 것이 세 가지가 있었는데 예전에 다뤘던 부분이 나와서 신기했다(opaque같은것) ACTIVITY/모각코 (2020 여름) 2020.07.08