전체 글 (7) 썸네일형 리스트형 잡담(1) 이 업계에서 들어와서 일한 것이 그래도 9년은 넘은 것 같다. (원래는 10년 정도인데.. 여기나 넥x의 계산 법이라면 내가 학생일 때와 겹치는 경력은 제외되더라..) 그럼 시니어란 무엇일까.. 내가 느낀 부분을 작성해 본다.1.기술력의 중요성. 누군가 기술적으로 팀/실을 이끌지 않으면 무너진다. 내가 일 한 회사들은 대부분 기술력이 좋은 사람이 팀과 실을 이끌어갔다. 이러다 이 사람이 빠지면, 빈 수레 마냥 무너져 내렸다. 특히나 상급자 위치에 있는 사람의 기술력이 부족하면, 대규모 이탈로 이어졌다. - 자신만의 무기를 만들어야 한다. 계속 의미 있는 PoC 코드를 쌓으면서 필요한 경우 막힘 없이 답을 제시해야 한다.2.목표 의식의 중요성. 보통 이 업계에 들어오는 사람은 목표가 뚜렷했다. 이러지 않으.. VxLang 개발 기록(3) 새로운 기능이 생각났다. 기존 난독화와 가상화를 섞는 방법이다. 일단...엄밀히 말하면 이 것은 개인 프로젝트로, 비공개 상태였으며 프로젝트가 터지기 전부터 개발한 내용이다.내가 개인적으로 PoC 하던 패커는 크게 2가지 방법이었다. 하나는 DLL 모듈을 EXE와 통합하는 방법이며, 다른 하나는 이전과 동일하지만 쉘 코드에서 모든 코어 기능을 수행하는 방법이다.일단 DLL을 병합하는 패커는 개발이 정말 편했다. 그냥 DLL을 작성하면, 패커 코어에서 이를 분해하여 EXE 위에 DLL을 덮는 방법이었다. 시스템 적인 문제(TLS/Exception/Etc.)가 한 번에 해결된 것이다. 다만 조금 문제가 있었다. 나는 개발하는 중간중간 특정 리버싱 사이트들에 간단한 게임(Crack-me)을 vxlang/vxi.. VxLang 개발 기록(2) 글을 쓰고 정리한다는 게 쉽지 않다. 기억을 되살려서 좀 재미나게 써보려 하는데..내가 설계하고 개발하기 시작 한 패커는 그 당시 알려진 방식과 다르게 유지/보수가 편하도록 개발하였다. 쉘-코드 개발에서 어려운 점은 외부 코드 또는 데이터를 참조하지 않는 퓨어한 코드 덩어리여야 한다는 점이다. 당시 내가 리서치 한 방법은 어셈블리 언어를 통해 직접 바이트 코드를 추출하거나, IL을 통해 퓨어한 코드 덩어리가 추출되는 등의 방식이었다. 어떤 제품은 모듈 하나를 통으로 결합하는 방식도 사용되었다.위와 같은 방식들은 나름 대중(?)적인 방법이지만 모두 유지/보수 문제 생겼다. 내가 저 방법을 사용했더라면, 제대로 된 리버서가 아닌 이상 일반 개발자들은 코드조차 보지 못하였을 것이다. 결국 내가 선택한 방법은 .. 이전 1 2 3 다음