CategoryCAT-Security/미분류 (54)

커널모드와 유저모드(사용자모드) 정리

유저 애플리케이션이 운영체제에 치명적인 데이터에 접근하여 수정하거나 삭제하지 못하게 막기 위해 윈도우는 두가지 프로세서 접근 모드를 지원 한다. 유저 어플리케이션은 유저모드에서만, 운영체제 코드(시스템 서비스와 디바이스 드라이버)는 커널 모드에서 실행이 된다. 커널 모드는 모든 시스템 메모리와 모든 CPU 인스트럭션에 접근이 허가된 프로세스 실행 모드를 말한다. (한마디로 admin) 즉 프로세서는 유저 모드보다 커널모드에 높은 권한을 줌으로써 오동..

[Python] BeautifulSoup 모음

한글이 깨졌을 경우Url_html = urllib2.urlopen(Url).read().decode('cp949', 'ignore')출처 : 클릭

[윈도우 후킹] Message hooking - 1

0x00 후킹의 개념후킹은 소프트웨어 공학 용어로, 운영 체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생 하는 함수 호출, 메세지, 이벤트 등을 중간에 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 말한다. 이때 이러한 간섭된 함수 호출, 이벤트 또는 메세지 처리하는 코크를 후크라고 한다.크래킹을 할떄 크래킹 대상 컴퓨터의 메모리 정보, 키보드 입력 정보등을 뺴돌리기 위해서 사용 되기도 한다...

[PlaidCTF 2013] three eyed fish_100

문제는 64bit elf 파일이며, stripted가 걸려 있는 파일 입니다.실행시 아무런 반응이 없어서 strace로 실행을 시켜 보았습니다.ptrace(PTRACE_TRACEME, 0, 0, 0) 에서 에러가 남을 확인 할 수 있습니다.찾아보니까 주어진 프로세스에 대한 UDI가 현재 사용자의 UID와 매칭되지 않으면 다음과 같은 에러가 뜨는 것 입니다. 단순히 UID만을 검사 하는것이면은 프로그램에서 '없어도' 될것이라 판단이 되며 코드..

[CSAW CTF 2012] Reversing_400

문제는 64bit, not stripped 파일 입니다실행시 암호화된 Key값이 보입니다. 단순히 Key값만을 출력해줌을 알 수 있습니다.IDA64로 디버깅 했을시, 단순히 값들을 입력받고 encrypt 함수를 실행시켜서 암호화 한후 그 결과값을 출력 해 줍니다.허나 이 문제의 경우 encrypt 함수가 있고 decrypt함수도 존재 합니다.즉 encrypt를 Call 하는 부분을 강제로 decrypt로 eip를 바꾸게 되..

[Codegate2014] dodoCrackme_200

프로그램은 다음과 같이 64-bit elf파일이며 stripped가 걸려 있습니다.실행을 했을 떄 입력을 받으며 Permission denied을 출력하며 프로그램이 종료 됩니다..strace로 확인 했을 때 write와 와 read가 보임을 확인 할 수 있습니다.IDA 64로 열어봤을 때, 이러한 루틴이 반복됨을 확인했고, 증가 된 값을 메모리 어딘가에 저장을 합니다.반복되었기 때문에 찍히는 문자열을 보았고, 키값이 나왔습니다.허나 이 방식은 제대..

[Reversing.kr] Direct3D_FPS

프로그램을 실행 시키면 다음과 같은 3D_FPS 게임이 시작 되게 됩니다.저 달걀(?)을 몇방 쏘면 사라지며 게임내의 모든 달걀들을 없에더라도 클리어가 되질 않습니다.또한 HP10은 달걀과 몸을 부딕쳤을 경우 피가 소모 됩니다.상단바 위의 ReversingKr / FPS는 값이 시시각각 변하긴 하는데 그닥 중요한 값이 아니라 생각이 들었습니다.Ollydbg의 막강한 기능중 하나인 Search for all referenced&nbs..

[Secuinside2013] beist_attack_game_150

프로그램을 실행 시키면 다음과 같은 게임 화면이 나오게 됩니다.점수 획득이 가능하며 1000점을 달성했을 시에 보스몹이 나오게 되고그 보스몹의 피는 999999 입니다.보스몹은 전체공격(?)을 시전해서 정상적인 방법으로도저히 클리어가 불가능합니다.보스몹 출현!!보스몹의 피를 깍는건 거의 불가능 합니다.현재 게임에서 볼수 있는 단서는 점수라고 생각하고그 점수값이 1000점이 되었을때 새로운 함수가 실행 된다라는 생각이 들어서점수를 중심적으로 찾아 보았..

gdb 명령어 요약집

1. 우선 컴파일 시에 디버깅 정보를 담아야 한다. gcc -g -o [프로그램명] [소스파일명] 디버깅 옵션인 -g 으로 컴파일하며, 최적화 옵션인 -O 은 주지 않도록 한다.2. 실행방법 gdb [프로그램명] gdb [프로그램명] [core파일명] gdb [프로그램명] [실행중인프로세스pid]3. 종료방법 q Ctrl + d4. 소스 찾아가기 (list) l &nbs..

[Defcon 21 ctf] policebox

  분석지점 int __cdecl main(){  signed int v1; // [sp+1Ch] [bp-4h]@5  if ( !isatty(ttyfd) )    perror("not on a tty");  if ( tcgetattr(ttyfd, &orig_termios) < 0 )    perror("can't get tty settings");&..