분류 전체보기 117

[논문] 윈도우 환경에서의 메모리 해킹 방지 시스템 연구

기본 정보 논문 저자: 김요식 , 윤영태, 박상서 게재처: 정보보증논문지 연도: 2005 요약: 역공학(Reverse Engineering) 기술이 진보함에 따라 컴퓨터 소프트웨어에 대한 불법 조작 및 변조 등의 위협이 증가하고 있으며, 인터넷에 공개된 단순한 도구를 이용하여 누구나 쉽게 크래킹(Cracking)을 할 수 있게 되었다. 자사의 소프트웨어를 위협으로부터 방어하고자 하는 제작사들의 노력과 이를 무력화시키고자 하는 소위 크래커들의 노력은 지금까지도 계속되고 있다. 이에 본 논문에서는 소프트웨어가 가지는 위협 모델과 크래킹 기술에 대해 분석 및 실험하고, 소프트웨어를 위협으로부터 보호하기 위한 윈도우 환경에서의 메모리 해킹 방지 시스템을 제안한다. 주제: Malware, reverse engin..

study/논문 2023.11.20

[코드엔진/CodeEngn] Basic RCE L13

실행파일을 열기전... 정적 분석을 하기 위해 IDA 로 돌려봤는데 오류뜨고 화면이 안 뜨네요... 일단 exeinfo로 열어서 파일을 살펴보겠습니당 언어가 C#으로 되어있고 .Net으로 되어있는것으로 보아 ILSpy로 볼 수 있을 것 같습니다 ^^ 우선 실행을 먼저 해보겠습니다 패스워드를 찾으면 되는 문제네용 ILSpy로 돌려봤습니다 ILSpy의 맛은 또 직접 실행할 수 있는거 아닐까요? 코드 저장하고 수정해봅시다 여기서 plainText를 암호화하여 생성하는 것을 볼 수 있고 우리가 입력한 값이 plainText와 같은지를 보고 있으므로 그냥 plainText를 프린트하면 될 것 같네요... 중간에 써주고 실행하면 나오네요 ㅎㅎㅎㅎㅎ

WARGAME/reversing 2023.11.13

[코드엔진/CodeEngn] Basic RCE L19

실행파일을 실행해보면 위와 같이 뜹니다. 그리고 시간이 좀 지나고 꺼지는 걸 알 수 있습니다. exeinfo로 분석한 모습입니다. upx 패킹이 되어있음을 볼 수 있으니 upx 언패킹을 합니다! 이제 분석을 해보려고 x32dbg로 분석을 하려는데 실행을 해보면 다음과 같이 제대로 창이 안뜨고 에러메세지가 뜹니다 우선 이 에러에서 AutoIt가 뭔지 찾아봤는데 AutoIt v.3.2.5.1 이하 버전들은 공식 디컴파일러가 디컴파일을 할 수 있다고 나와있는데 이 실행파일은 exeinfo에서 3.3 버전이라고 했으므로... ㅜㅜ 디컴파일러는 없고 그냥 분석에서 찾아야 할 것 같습니다 여기서 디버거를 탐지하는 함수를 찾아봤습니다 맨 위에 있는 거 더블클릭해서 들어가서 그래프로 보기 눌렀더니 아래와 같이!! 이렇..

WARGAME/reversing 2023.11.13

[dreamhack] SingleByteXor

문제를 다운 받아보면 저 문자열 "54586b6458754f7b215c7c75424f21634f744275517d6d" 이 들어있는 파일만 존재합니다. 어쨌든 이 문자열은 암호화된 문자열인데, 문제 제목에서 볼 수 있듯이 Single byte XOR을 썼다는 것을 유추할 수 있습니다. Single byte XOR은 하나의 바이트(아스키코드로 생각하면 0~255)로 전체 문자열을 XOR 한 것으로 이해했습니다. XOR의 성질 중 하나는 a ^ b = c 일때 c ^ b = a 라는 특성이 있기 때문에 문자열을 알 필요 없이 single byte만 bruteforce로 알아내서 xor을 하면 문자열을 찾아낼 수 있습니다! 따라서 이를 찾는 파이썬 코드는 다음과 같습니다. def xor_byte(data, b..

[dreamhack] ICM2022

문제를 다운 받으면 다음과 같이 두개의 파일이 있는데 이때 readme.txt 를 먼저 읽어줄게여 뭔가 변수값들을 주고 있는것 같으니 main.py 파일을 한번 살펴보겠습니다 import random from fractions import Fraction def enc(p, n, key1, key2): q = (Fraction(p, n+1)*key1**(n+1)) - (Fraction(p, n+1)*key2**(n+1)) print("[OK] plain is encrypted : ", q) return q def dec(q): # cencored def key_make(): n, key1, key2 = 0, 1, 0 while key2 < key1: n = random.randrange(1, 10) ke..

[리버싱 자체제작] wpf(C#) 이용

c#언어로 wpf 애플리케이션을 만들어보았습니다 [문제 설명] 플래그 버튼을 눌러 "Success!" 를 띄워보자 [문제의 의도] 코드/어셈블리 패치를 통한 admin 계정 탈취 문제 풀이 실행시 다음과 같은 화면이 나타납니다. 여기서 어드민을 체크해볼까요? 어드민이 아니라면서 체크도 해제되고 아예 체크박스가 막혀버렸네요. 그럼 이 상태에서 Get Flag 버튼을 한번 눌러봅시다 어드민이 아니라면서 막네요. 그럼 다시 실행시키고 이번에는 아무것도 안 누른 상태로 플래그 버튼을 눌러보겠습니다. 동일하게 경고문이 뜨는군요 :) 그러면 이제 분석을 해봅시다. 분석에 앞서, C# 같은 경우에는 분석을 할때 대중적으로 많이 쓰는 xdbg나 ida 를 써도 잘 안보입니다! C#의 특성 때문이지요... 따라서 C# ..

WARGAME/made by me! 2023.10.30

[논문] 단편화된 실행파일을 위한 데이터 구조 역공학 기법

기본 정보 저자: 이종협 연도: 2012 게재처: 정보보호학회논문지 요약: 실행파일에 대한 정적인 분석을 통한 역공학 과정은 소프트웨어 보안에서 필수적인 단계이다. 역공학은 크게 소프트웨어가 사용하는 데이터 구조와 제어 구조에 대하여 수행된다. 특히 데이터 역공학은 소프트웨어를 이해하기 위해 필수적이지만 기존의 VSA기법은 단편화된 실행파일에 대한 한계를 가지고 있다. 본 논문에서는 동적인 영역할당을 통해 이러한 문제점을 해결하고 데이터 구조 역공학의 성능을 향상시킨다. I. 서론 및 배경지식 단편화된 실행파일이란? Fragmentation binary code → 함수가 여러개로 쪼개진 형태를 가지고 있는 파일 역공학(reverse engineering)이란? 실행파일만을 가지고 주어진 실행 파일이 어..

study/논문 2023.10.01

[dreamhack] set-int

드림핵 set-int 파일 분석 우선 파일을 다운 받아 보면 다음과 같은 c 코드가 들어있습니다 //Name: chall.c //Compile: gcc chall.c -o chall -no-pie -fno-stack-protector #include #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); } int main(int argc, char *argv[]){ uns..

WARGAME/misc 2023.09.29
728x90