요즘 저는...
최근 암호학 CTF 문제를 풀며 많은 시간을 보내고 있는 느낌입니다.
Pwnable은 리눅스와 가장 친하게 지낼 수 있는 방법이지만, 친하게 다가가기 위해선 생각보다 많은 준비물이 필요하다는 생각을 지울 수 없습니다. 그리고 스몰 토킹을 위한 많은 지식이 있어야 한다는 생각 역시도 거둘 수 없습니다.
환경 세팅하기 은근 빡세고, 알아야 하는 것이 많다는 의미입니다. LLM의 괄목할 만한 발전이 많은 도움이 되고 있기도 하고, 환경 세팅하는 것 자체가 재밌어서 상관은 없습니다만...
이런 난점을 갖고 있는 Pwnable 문제에 비해, 암호학 CTF 문제는 가볍게 생각해보면서 문제를 풀 수 있는 점이 참 좋습니다.
Dia 프로그래밍 언어에 관하여
어떤 외국 업체에서 제가 Dia 프로그래밍 언어를 만들었다는 것을 긍정적으로 평가한 것이 인상 깊었습니다. 아직 저 프로그래밍 언어는 견고하지도 않고 아이디어의 개념 증명 수준에 그치고 있다는 한계가 있습니다만, 제 경험 자체를 좋게 평가해준 것은 저로서는 뜻깊은 평가로 다가옵니다.
위의 암호학 CTF의 경험으로부터, Dia 프로그램에서 큰 숫자도 잘 처리할 수 있으면 좋겠다는 생각을 합니다. 카라츠바 알고리즘을 공부해볼 생각을 가지고 있습니다. 아직 행동으로 옮기고 있지는 못합니다.
Pwnable은 리눅스와 가장 친하게 지낼 수 있는 방법이지만, 친하게 다가가기 위해선 생각보다 많은 준비물이 필요하다는 생각을 지울 수 없습니다. 그리고 스몰 토킹을 위한 많은 지식이 있어야 한다는 생각 역시도 거둘 수 없습니다.
환경 세팅하기 은근 빡세고, 알아야 하는 것이 많다는 의미입니다. LLM의 괄목할 만한 발전이 많은 도움이 되고 있기도 하고, 환경 세팅하는 것 자체가 재밌어서 상관은 없습니다만...
이런 난점을 갖고 있는 Pwnable 문제에 비해, 암호학 CTF 문제는 가볍게 생각해보면서 문제를 풀 수 있는 점이 참 좋습니다.
Dia 프로그래밍 언어에 관하여
어떤 외국 업체에서 제가 Dia 프로그래밍 언어를 만들었다는 것을 긍정적으로 평가한 것이 인상 깊었습니다. 아직 저 프로그래밍 언어는 견고하지도 않고 아이디어의 개념 증명 수준에 그치고 있다는 한계가 있습니다만, 제 경험 자체를 좋게 평가해준 것은 저로서는 뜻깊은 평가로 다가옵니다.
위의 암호학 CTF의 경험으로부터, Dia 프로그램에서 큰 숫자도 잘 처리할 수 있으면 좋겠다는 생각을 합니다. 카라츠바 알고리즘을 공부해볼 생각을 가지고 있습니다. 아직 행동으로 옮기고 있지는 못합니다.
2025-12-15에 업데이트됨.
예전에 알고리즘 공부를 C++로 잠깐 하면서, 개인적으로 자주 쓸 만한 코드 패턴을 좀 정리해보고 싶다는 아이디어가 있었습니다.
그리고 말도 안 되는 소리겠지만 이게 제가 프로그래밍 언어를 만들고 싶다는 소박한 꿈으로 이어진 적이 있었습니다. 2022년 중반에 bison & flex에 관한 강의를 들은 것이 저한테는 정말 인상깊었기 때문이었고 저는 2023년 초에 많은 시간을 들여 제 꿈을 이루려 했지만, 아쉽게도 잘 되진 않았습니다.
1년여 시간이 지난 7월 초부터 약 한달동안 C언어와 Bison & Flex 문서를 다시 뒤져보면서 저만의 프로그래밍 언어를 만드는 데에 열을 올리고 있습니다.
그리고 말도 안 되는 소리겠지만 이게 제가 프로그래밍 언어를 만들고 싶다는 소박한 꿈으로 이어진 적이 있었습니다. 2022년 중반에 bison & flex에 관한 강의를 들은 것이 저한테는 정말 인상깊었기 때문이었고 저는 2023년 초에 많은 시간을 들여 제 꿈을 이루려 했지만, 아쉽게도 잘 되진 않았습니다.
1년여 시간이 지난 7월 초부터 약 한달동안 C언어와 Bison & Flex 문서를 다시 뒤져보면서 저만의 프로그래밍 언어를 만드는 데에 열을 올리고 있습니다.
main = "Hello World".puts
/* It will produce code below:
*
* int main() {
* std::cout << "Hello World" << std::endl;
* return 0;
* }
*/지금은 C언어로 만들고 있지만, 컴파일러를 하스켈이나 OCaml로 재작성할 생각을 하고 있습니다. 근데 그 전에 CMake로 테스트 코드 추가하고 퍼징 한 번만 해 보고...
무선 통신에 관심이 더더욱 깊어졌지만, 정말이지 어쩔 줄 몰라 하는 상황에 처해 있습니다. 무선 공학의 발전 속도는 정말이지 경이롭고, 저같은 뱁새가 이걸 따라가기가 참 버겁군요.
+ 신세벌식 P2에 거의 완전히 적응을 했습니다. 듣는 사람에 따라 말투를 바꿔가면서 말하는 현상을 부호 전환이라고 한다는데, 그런 것처럼 여러 노트북을 써가면서 여건이 맞지 않을 때에는 세벌식 390을, 제가 미리 세팅을 해둔 곳에서는 신세벌식 P2를 사용하고 있습니다.
+ 고전 게임 치트를 치트 엔진으로 만들었는데, 이를 Windows API로 작성해보는 시간을 가지고 싶었지만 일단은 놀고 있습니다.
2024-08-02에 업데이트됨.
러스트로 자그마한 프로그램을 만드는 것에 최근 재미를 들이고 있습니다. 컴파일러를 만족시켜야 한다는 점에는 동의하지만, 한번 빌드가 되었다면 잘 돌아가는 것 또한 사실인 것 같아요.
알고리즘 공부를 C++로 하고, 컴팩트하면서도 실제 자주 사용할만한 프로그램은 러스트로 작성하는 것에 맛을 들인 것 같습니다.
Elm, Miso, ReScript와 같은 함수형 프론트엔드 프레임워크를 간단하게 사용해보고 있습니다. 이게 좀 질리면 Nuxt나 VueJS로 넘어갈 생각입니다.
한 고전 게임에 치트 엔진을 적용해 치트 내지는 트레이닝 프로그램을 만드는 중입니다. 나중에는 Frida로 진행하거나, Windows API로 작성해볼 계획을 가지고 있습니다.
꽤 오랜 시간동안 관심을 했었음에도 기회가 자주 찾아오지 않았습니다만, RF대역에 관하여 그리고 블루투스에 관하여 간단하게 알아보고 있습니다. 다만, 이 관심이 얼마나 오래 갈 수 있을지는 또 잘 모르겠습니다.
+ 신세벌식 P2와 세벌식 390을 동시에 사용하고 있다 보니 가끔 키가 헷갈립니다. 이렇게 사용한 지 한 달 정도 된 것 같네요. 일종의 과도기로 생각하고 있습니다.