Reversing & malware analysis training part 1 lab setup guidesecurityxploded
This presentation is part of our Reverse Engineering & Malware Analysis Training program.
For more details refer our Security Training page
http://securityxploded.com/security-training.php
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploitsGangSeok Lee
2013 CodeEngn Conference 09
시간이 지나면 지날수록 리눅스에서는 보안 기술에 의해 원격 공격이 힘들어지고 있다. 원격 버퍼 오버플로우 공격을 위한 몇가지 트릭을 공개할 것이다. 지금까지 공격은 주로 취약점 코드에 의존성이 높거나 brute force를 사용한 방식이였다. 이번 발표에서의 공격 기술은 NULL 을 우회하여 exploit을 1바이트씩 분할하고 취약한 서버에 파일을 생성한뒤 공격하며, 단순 brute force방식에 벗어나 ASLR를 어떻게 빨리 찾아내는지 보여줄 것이다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹GangSeok Lee
2011 CodeEngn Conference 05
안드로이드 리눅스 상에서 bof 공격을 해본다. 임의로 제작한 취약한 어플리케이션을 대상으로 공격코드를 작성하여 쉘을 획득하는 과정을 보여주며설명한다. x86 환경에서와 ARM 환경에서의 공격코드 작성시 차이점에 대해 설명한다.
http://codeengn.com/conference/05
프로세서에 대한 내용은 SW개발자가 깊이있게 호기심을 가지지 않을 수도 있습니다. 하지만 하드웨어 세상인 이곳도 사실은 논리적 해법으로 무장한 알고리즘의 세계라는 것을 김민장님의 책을 통해 알게되었습니다. 그래서 관련 책을 읽어보고 같이 공부하는 사람들에게 공유하기 위해 ppt 형태로 정리해보았습니다.
Reversing & malware analysis training part 1 lab setup guidesecurityxploded
This presentation is part of our Reverse Engineering & Malware Analysis Training program.
For more details refer our Security Training page
http://securityxploded.com/security-training.php
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploitsGangSeok Lee
2013 CodeEngn Conference 09
시간이 지나면 지날수록 리눅스에서는 보안 기술에 의해 원격 공격이 힘들어지고 있다. 원격 버퍼 오버플로우 공격을 위한 몇가지 트릭을 공개할 것이다. 지금까지 공격은 주로 취약점 코드에 의존성이 높거나 brute force를 사용한 방식이였다. 이번 발표에서의 공격 기술은 NULL 을 우회하여 exploit을 1바이트씩 분할하고 취약한 서버에 파일을 생성한뒤 공격하며, 단순 brute force방식에 벗어나 ASLR를 어떻게 빨리 찾아내는지 보여줄 것이다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹GangSeok Lee
2011 CodeEngn Conference 05
안드로이드 리눅스 상에서 bof 공격을 해본다. 임의로 제작한 취약한 어플리케이션을 대상으로 공격코드를 작성하여 쉘을 획득하는 과정을 보여주며설명한다. x86 환경에서와 ARM 환경에서의 공격코드 작성시 차이점에 대해 설명한다.
http://codeengn.com/conference/05
프로세서에 대한 내용은 SW개발자가 깊이있게 호기심을 가지지 않을 수도 있습니다. 하지만 하드웨어 세상인 이곳도 사실은 논리적 해법으로 무장한 알고리즘의 세계라는 것을 김민장님의 책을 통해 알게되었습니다. 그래서 관련 책을 읽어보고 같이 공부하는 사람들에게 공유하기 위해 ppt 형태로 정리해보았습니다.
[소스 코드]
https://github.com/henlix/data-structure.git
https://github.com/henlix/calculator
[설명]
대학생 연합 IT 벤처 창업 동아리 S.O.P.T (Shout Our Passion Together - http://sopt.org) 에서 내부적으로 진행하는 전공 과목 기초 스터디 자료입니다.
이번주에 다룰 내용은 기본적으로 자료구조에서 다루는 스택, 큐 그리고 스택을 응용한 수식 연산에 대한 구현입니다.
스터디 자료는 다음과 같은 순서대로 올라갈 예정입니다.
1. 데이터 구조 및 알고리즘
2. 운영체제
3. 네트워크
이 자료는 이영록강사님이 2011년 iOS 개발자 포럼에서 발표한 내용을 약간 개선하고 정리한 자료입니다.
iOS의 메모리관리 기법은 retain count라고 하는 독특하면서도 효율적인 방법을 사용하며 최근에 발표된 Xcode에서는 Automatic Reference Counting(ARC) 기법을 통해 release를 사용하에 객체를 소거하는 불편함을 많이 개선하였습니다.
본 자료에서는 이러한 점에 대한 비교적 상세한 설명을 담고 있습니다.
[소스 코드]
https://github.com/henlix/data-structure.git
https://github.com/henlix/calculator
[설명]
대학생 연합 IT 벤처 창업 동아리 S.O.P.T (Shout Our Passion Together - http://sopt.org) 에서 내부적으로 진행하는 전공 과목 기초 스터디 자료입니다.
이번주에 다룰 내용은 기본적으로 자료구조에서 다루는 스택, 큐 그리고 스택을 응용한 수식 연산에 대한 구현입니다.
스터디 자료는 다음과 같은 순서대로 올라갈 예정입니다.
1. 데이터 구조 및 알고리즘
2. 운영체제
3. 네트워크
이 자료는 이영록강사님이 2011년 iOS 개발자 포럼에서 발표한 내용을 약간 개선하고 정리한 자료입니다.
iOS의 메모리관리 기법은 retain count라고 하는 독특하면서도 효율적인 방법을 사용하며 최근에 발표된 Xcode에서는 Automatic Reference Counting(ARC) 기법을 통해 release를 사용하에 객체를 소거하는 불편함을 많이 개선하였습니다.
본 자료에서는 이러한 점에 대한 비교적 상세한 설명을 담고 있습니다.
This document discusses Windows Active Directory and network concepts. It introduces Active Directory as the directory service and identity management system used by Windows Server. It explains concepts like domains, forests, organizational units and how they are used to logically organize users and computers in Active Directory. The document also references Microsoft courses on administering Active Directory and related services like DNS and DHCP.
4. 4 / 16
Register? _ Load & Store Design
int a = 10; // 0x10번지 할당
int b = 20; // 0x20번지 할당
int c = 0; // 0x30번지 할당
c = a + b;
"0x10번지(a)에 저장된 값과 0x20번지(b)에 저
장된 값을 더해서 0x30번지(c)에 저장해라"
메인메모리에 저장된 데이터를 레지스터로 일단 옮긴 후, 그 다음 덧셈을 진행해야 함.
-------------------------------------
Register Set ---------> 메인 메모리
(STORE)
<--------
(LOAD)
-------------------------------------
5. 5 / 16
Register? _ Load & Store Design
-----------------------------------------------------
예약(2) LOAD(3) destination(3) source(8)
110 011 00000111
-----------------------------------------------------
- destination : 데이터를 저장한 레지스터 정보
- source : 데이터를 읽어올 메모리 주소 정보
-----------------------------------------------------
예약(2) STORE(3) source(3) destination(8)
110 010 00001000
-----------------------------------------------------
LOAD r3, 0x07->0x07번지에 존재하는 데이터를 레지스터 r3에 저장
STORE r2, 0x08->레지스터 r2에 존재하는 데이터를 메인 메모리의 0x80번지에 저장
6. 6 / 16
Register? _ Load & Store Design
int a = 10; // 0x10번지 할당
int b = 20; // 0x20번지 할당
int c = 0; // 0x30번지 할당
c = a + b;
--------------------------
--------------------------
10 0x10
--------------------------
--------------------------
20 0x20
--------------------------
--------------------------
30 0x30
--------------------------
--------------------------
LOAD r1, 0x10 // 0x10번지에 저장된 데이터를
r1로 이동
LOAD r2, 0x20 // 0x20번지에 저장된 데이터를
r2로 이동
ADD r3, r1, r2 // r1, r2에 저장된 값을 더해서
r3에 결과를 저장
STORE r3, 0x30 // r3에 저장된 값을
0x30번지에 저장
피연산자가 레지스터가 되게끔 하기 위해서 메모리에
저장된 값을 레지스터에 옮겨다 놓은 후 연산!!
Conclusion : CU는 명령어를 해석한다.
메모리에서 나와 입출력 버스를 타고, 레지스터에 저장된다.
ALU에 의해 연산이 진행되고,
그 결과값은 다시 입출력 버스를 타고 메모리에 STORE 된다.
14. 14 / 16
실습소개
실습목표 : Disassem Code의 Debuging 연습
내용 : CD-ROM을 요구하는 프로그램이 있을 때,
HDD 를 CD-Rom으로 크랙시켜 통과 메시지를 출력시키도록 함.
응용기술 : Stack에 파라미터를 전달하는 과정을 이해하여 크랙화
Stack의 FIFO 구조의 이해
사용되는 명령 : PUSH, CALL, INC, DEC, JMP, CMP, JE