Blog (7) 썸네일형 리스트형 퇴사를 생각하며..(2) 내가 왜 퇴사와 은퇴를 고려하는지에 대해 작성해보려 한다.나는 현재 게임 보안 업계, 보안 솔루션 개발 분야에 종사하고 있다. 내가 이 업계에 오게 된 이유는 리버스 엔지니어링, 바이너리 해킹 분야를 가장 잘 활용하는 분야라 생각했기 때문이다.이런 내 목표는 어느 정도 경력이 생길 때까지 무너지지 않고, 잘 유지되었다. 그도 그럴 것이 내가 만나 뵙고, 대화하고 싶은 분들이 계시는 곳에 도전했기 때문이다.지금 회사에 도전 한 이유도 내가 만나 뵙고 싶은 분이 계셨기 때문이다. 실제로 3년 정도의 시간을 함께 일할 수 있었다. 이 시기에 내가 속한 조직은 비정상 적인 조직으로 이동이 되었다. "보안"이 붙은 조직.나는 꽤나 "보안"이란 단어가 자랑스럽고, 내 일에 대한 가치를 나타낸다 생각했다. 하지만 이.. 퇴사를 생각하며..(1) 내 솔루션이 나에게 어느 정도의 금액을 벌어줘야 안정적인 퇴사/은퇴가 가능할까?내 기준에 은퇴 자금은 대충 월 400 이상으로 생각한다. 일단 내가 아르바이트와 같은 비정규직 노동을 할 때, 월 180 정도는 벌 수 있을 것으로 보인다. (비정규직 일에도 생각해 놓은 방향이 있다.)내 능력 기준에 배당주로는 많아야 월 30~ 50 정도로, 배당까지 합하여 월 200~ 230이 가능해진다. 자.. 그럼 나머지 월 170 이상을 벌어야 한다. 다행히 VxLang 프로젝트 하나로, 이 정도는 가능할 것이라 본다.그럼 내 목표는 어느 정도 가능하다. 완전한 은퇴는 아니지만.. 비상사태는 막을 수 있게 된 것이다. (완전한 은퇴를 생각하면, 주택을 돌리거나 주택연금으로 전환하면 되겠지만..)다음은 왜 이런 생각을.. 잡담(2) 읽기처럼 계속 쓰려했는데 쉽지 않다.난 메모리 해킹 분야에서 일하는 것을 꽤나 오래 꿈꿔왔다. 운이 좋게 내가 정말 원하던 회사에 합격했고, 복이 터진 건지 그 회사에서는 나와 같은 목표의 친구들을 많이 만날 수 있었다.최고의 복지는 옆에서 일하는 동료다.위 말은 사실이었다. 옆에서 나와 같은 목표와 꿈을 좇는 동료가 있다면, 이건 최고의 복지 중 하나이다. 시너지와 아이디어가 쏟아지니 말이다. 물론 모든 동료가 그런 것은 아니다. 그저 비율 일 뿐이다.문제는 간혹 목적이 다른 동료는 주변을 힘들게 한다. 억지로 쫒으려 하다 보니 그러했을 것이다.어리석게도 당시 나는 다른 큰 곳에는 더 큰 비율이 있을 것이라 착각했다. 경험 상으로 첫 회사에서 1/3 정도의 비율이라면, 나머지 회사들은 1/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을 통해 퓨어한 코드 덩어리가 추출되는 등의 방식이었다. 어떤 제품은 모듈 하나를 통으로 결합하는 방식도 사용되었다.위와 같은 방식들은 나름 대중(?)적인 방법이지만 모두 유지/보수 문제 생겼다. 내가 저 방법을 사용했더라면, 제대로 된 리버서가 아닌 이상 일반 개발자들은 코드조차 보지 못하였을 것이다. 결국 내가 선택한 방법은 .. VxLang 개발 기록(1) VxLang 개발과 운영을 하면서 느낀 부분을 기록해보려 한다(이건 이거대로 자산인 느낌). 먼저 VxLang이 무엇이고, 시작한 계기가 무엇인지 남겨본다.VxLang은 소프트웨어 리버스 엔지니어링이라는 분야에서 코드-난독화와 실행-압축이라 불리는 기법(?)을 활용한 프로젝트이다. 실행-압축은 간단하게 Zip과 같이 파일을 압축하지만 시스템에서 동작 가능 한 실행 파일(ELF/PE/Etc.)을 재조립하여 런-타임에 파일을 메모리에 복원하는 기법이다.(단독 실행이 불가능한 일반적인 단순 데이터 압축과는 많이 다르다는 정도로 인식하면 된다.)위와 같은 실행-압축을 응용하여 소프트웨어의 동작 이전에 안티-디버깅과 같은 특정 보호 동작을 수행하는 도구들을 소프트웨어 프로텍터라고도 부른다. 이제부터는 이러한 실.. 이전 1 다음