프로그래밍 7

[게임핵개발연습#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);..

[Hack.lu 2019] no_risc_no_future

no_risc_no_future #mips #pwn ※ 원본 Write Up : https://github.com/goseungduk/CTF_WriteUp/tree/master/Hack.lu_2019/pwn/no_risc_no_future제목 그대로 risc 형식의 mips 아키텍쳐로 된 바이너리에 대한 pwnable 문제이다. Ghidra로 열어본 바이너리는 이런 모습이다. 64바이트짜리 배열에 256바이트를 입력할 수 있게 해준다. 그리고 입력한 버퍼를 출력시켜준다. 그리고 Canary 외에는 별다른 보호기법도 걸려있지 않는 것으로 보아, buffer overflow 이후, 쉘코드를 이용하여 쉘을 얻어내면 될 것 같다. 대강 순서는 이러하다. 1. puts 함수를 이용해서 canary를 leak 2...

<보안 study>/CTFs 2019.12.21

[SECCON 2019] Follow me

follow_me #reversing ※ 원본 Write Up : https://github.com/goseungduk/CTF_WriteUp/tree/master/SECCON_2019/rev/follow_me 우리의 숙제는 계산기 프로그램에서 실행했던 기록 중에서도 branch 명령에 대한 기록을 보고, 어떤 공식을 프로그램에 전달했는지 찾는 것이다. 파일은 총 3개, 계산기 프로그램 바이너리와 branch명령에 대한 기록, 그리고 branch명령을 따라가는 추적프로그램에 대한 소스코드를 준다. 필자는 앞의 계산기 프로그램 바이너리와 branch 명령에 대한 기록만 보고 문제를 풀었다. main 함수이다. 바이너리의 사용법과 실제로 계산을 해주는 함수가 들어있다. calculate 함수의 switch문 ..

<보안 study>/CTFs 2019.12.21

[SECCON 2019] Coffee_break

COFFEE_BREAK #crypto #reversing※ 원본 Write Up : https://github.com/goseungduk/CTF_WriteUp/tree/master/SECCON_2019/crypto/coffee_break 간단히 풀 수 있었던 크립토(?) 라기엔 리버싱에 가까운 문제였다. The program "encrypt.py" gets one string argument and outputs ciphertext. Example: $ python encrypt.py "test_text" gYYpbhlXwuM59PtV1qctnQ== The following text is ciphertext with "encrypt.py". FyRyZNBO2MG6ncd3hEkC/yeYKUseI/CxYoZ..

<보안 study>/CTFs 2019.12.21

[TokyoWesterns 2019] EASY_CRACK_ME

EASY_CRACK_ME #z3 #reversing ※ 원본 Write Up : https://github.com/goseungduk/CTF_WriteUp/tree/master/TokyoWesterns_2019/reverse/easy_crack_me 단순한 Crack Me 유형의 문제입니다. 인자로 플래그를 받는데, 맞지않는 값을 넣으면 incorrect를 출력시켜줍니다. 바이너리를 뜯어보면 알겠지만 플래그 인증과정이 총 8개정도 있고, 모든 조건에 다 맞아야 정확한 플래그로 인지합니다. 첫 번째 조건 플래그길이는 총 39바이트여야하며, TWCTF{ 로 시작하여 } 로 끝나야합니다. 두 번째 조건 우선 0123456789abcdef 의 표본이 될 문자열이 주어집니다. 그리고 반복문으로 순회하면서 인자로 ..

<보안 study>/CTFs 2019.12.21
반응형