개발 11

MFC 프레임워크 기반 앱 시작지점

#MFC #리버싱 #Reversing MFC 프레임 워크 기반 앱의 경우, MFC 에서 선언 해놓은 클래스들을 상속 받아서 사용자 클래스를 정의하는 식의 개발이 이루어진다. 그만큼 MFC 프레임 워크에서 기본적으로 제공해주는 기반이 상당한데, 최근 MFC 관련 앱을 리버싱해본 결과 리버싱 과정에서도 그러한 기반 클래스들이 어떻게 동작하고, Dialog 까지 생성하는지 등등 알아야할 것이 많아보였다. 흔히 금방 찾을 수 있는 main 함수의 경우에도 함수 vtable 어딘가에 심볼이 깨진채로 들어가있어서 정적분석으로는 금방 가늠하기 어렵고, 동적분석으로 해당 함수를 찾아야한다고 판단하였다. 수 많은 문서를 탐색하면서 main 포인트를 찾는 과정을 간략히 정리해보겠다. int start() { _securi..

라자루스 루트킷 악성코드 분석 보고서(1/2)

#라자루스 #루트킷 #악성코드 #커널 본 게시글은 안랩 시큐리티대응센터(ASEC) 에서 2022. 09. 22. 자로 발간한 라자루스 공격 그룹의 BYOVD를 활용한 루트킷 악성코드 분석 보고서 의 내용에 대해 개인적으로 정리한 게시글입니다. 악성코드 관련 게시글들을 보다가 본의아니게 위에 기재한 악성코드 분석 보고서를 보게되어 공부 용도로 게시글을 작성해본다. 무엇보다 내 이목을 끌었던 것은 악성코드가 취약한 드라이버를 이용하여 커널단까지 조작하는 부분이었는데, 악성코드 분석 초보로써 굉장히 특이하다고 생각되었기에 세심하게 읽어보았다. 원본 보고서를 보면 거의 40장에 육박하는 매우 긴 분량이기 때문에 상세 내용을 나누어 서술해보겠다. 이번 게시글은 핵심 루트킷 파일이 작동하기 직전까지의 과정을 서술하..

[C++] 가상함수(Virtual Function)

#C++ #가상함수 C++ 에는 가상함수라는 개념이 있다. 같은 OOP 언어인 자바의 가상함수와 유사한데, 기본 클래스에서 가상 함수를 정의하여, 해당 기본 클래스를 상속 받는 파생 클래스가 해당 가상함수를 재정의하여 사용하도록 유도하여 Runtime 에 함수의 다형성을 높이기 위한 문법이라고 한다. 실행타임에 함수를 재정의해서 유용하게 사용할 수 있다는 것은 이해했는데, 의문점이 그냥 가상함수말고 일반적으로 함수 정의한 다음에 상속받은 클래스 단에서 오버라이드(재정의) 하여 사용하면 되지않나??? 라는 의문이었다. 정말 원론(?) 적인 이유는 다른 게시글 에 설명이 되어있었는데 엉뚱한 소멸자를 호출시키지않게 하기 위해서이다. C++ 개발 경험이 많이 없기 때문에 이러한 세세한 부분에 대해서는 생각해볼 ..

<C++ study> 2023.01.02

[AWS EC2] AWS EC2 에 React 빌드 배포하기(+RestAPI 까지)

#AWS #React #Nginx ※ 본 글은 [AWS EC2] EC2에 React 앱 + Node.js 서버 배포 2 - Nginx + React 글을 출처로 하여 작성합니다. 오랜만에 개발로 글쓴다 :) 요즘은 개발 일 투성이라 백/프론트에 몰두 하고있다. 여태까지는 React 로 개발하면서 디버깅 모드로 그냥 로컬에서 끄적이면, PM 하시는 분이 알아서 배포해주셔서 "음, 잘돌아가눈군" 하고 말았었는데 요번에는 내가 개발과 더불어 배포까지 맡게 되면서 부랴부랴 AWS 에 배포하는 방법을 찾아보았다. 그래서 찾아본게 AWS EC2 + Nginx 조합이다. 보안하면서는 웹서버로 Nginx 보다는 apache,tomcat 부류를 볼일이 많았는데 개발 쪽에서는 Nginx 가 상당히 가볍고(?) 편해서 많이..

[잡지식] 안드로이드 패키지 이름에서 com 접두사의 의미

기존 자바의 패키지와 안드로이드의 자바 패키지를 구분하기 위한 패키지 이름 구분자라고 한다. 안드로이드 패키지에는 com.(기업이름).(플랫폼).~~~ 을 붙여서 패키지 이름을 구성하면 된다고 한다. 궁금해서 찾아보았음. https://stackoverflow.com/questions/26194527/com-prefix-meaning-on-android-apps com. prefix meaning on Android apps What does mean the com. prefix in some Android processes? E.g.: com.whatsapp, com.google.android.gapps, com.android.mms, com.antivirus, etc. stackoverflow.com

[게임핵개발연습#3] 게임에선 좌표계산이 어떻게 될까? - 1. viewMatrix 찾기

#AssaultCube #게임핵 #ESP #OpenGL 여태까지는 나 자신, 개인 플레이어에 대한 핵을 알아보고 만들어봤다. 사실 이 방법들은 온라인 상에서하는 MultiPlay 방식에선 1도 먹히지 않는다.(단, 수류탄 개수, 총알 개수 같은 일부 기능은 먹힌다) 아마 추정컨데, 체력이나 여러 정보를 여타 FPS 들 처럼 서버를 통해 관리하기 때문이 아닐까 생각한다. 그러나 우리의 최초 목표와 같이 다른 적들과 같은 팀원들의 정보는 서버에서 결국 내 PC 로 받아오는 구조가 될 수 밖에 없기에 메모리 어디엔가는 적들과 팀원들의 정보가 저장되어있을 것이다. 그러면 이 정보를 이용해서 적들의 현재 위치, 체력은 얼마인지, 총알은 얼마나 남아있는지 정도는 알 수 있지 않을까? 그것이 바로 ESP 핵 이다. ..

2021년 한전 전력데이터 활용 신서비스 개발대회 수상!

#한국전력 #전력데이터활용 신서비스 개발경진대회 글을 굉장히 오랜만에 쓴다... 써야지 써야지 다짐하지만 글 하나쓸때 대충쓰고싶지 않다는 핑계로 계속미루는 듯하다. ㅋㅋ 정말 바쁜 2학기를 보내고 있는데, 하반기 시작하면서 진행했던 대회 수상 소식을 매~우 늦게나마 적어본다. 7월 말에 전역하고 좀 쉬어볼까 하다가 접수마감이 얼마 남지 않은 대회에 대해서 듣게 되었다. 접수기간이 04/15 ~ 06/14 였는데, 아마 6월 1일 쯤에? 소식을 듣고 부랴부랴 프로젝트 컨셉을 준비했던 것 같다. 정확히는 재생에너지 발전량 예측제도 를 시행할 때 쓰일 서비스를 제작하는 것이었다. 제도 시행의 배경에는 재생에너지(풍력, 태양열, 수력 등등)의 과발전(?)으로 인해서 설비를 설치하고도 가동을 안하는 날이 많은 것..

<사는이야기> 2021.11.24

[WinAPI] 프로세스 순회해보자

#WinAPI #프로세스 탐색 1. EnumProcesses(DWORD *lpidProcess, DWORD cb, LPDWORD lpcbNeeded); #include 로 불러와서 실행가능하다. 현재 실행 중인 프로세스들의 PID 를 불러와서 배열에 저장한다. [인자설명] lpidProcess : 실행 중인 프로세스들의 PID 를 저장할 DWORD 배열이다. cb : 첫 번째 인자 배열의 사이즈이다. lpcbNeeded : 전체 프로세스 PID 들의 총 바이트를 저장할 DWORD 변수이다. ( DWORD(4) * 프로세스들의 수 ) = ( 총 바이트 ) 2. HANDLE OpenProcess(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId);..

반응형