일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- HackCTF
- Shadow 동아리
- requests
- 리눅스
- buffer over flow
- 리버싱
- ctf
- 보안뉴스
- BOF
- NewsClipping
- SQL Injection
- 뉴스클리핑
- PWN
- Linux
- Hackerschool
- reversing
- 버퍼오버플로우
- Python
- CodeEngn
- RITSEC CTF 2019
- webhacking
- writeup
- Nop Slide
- 웹해킹
- Next.js
- RITSEC
- termux
- 어셈블리어
- ftz
- x64dbg
- Today
- Total
목록어셈블리어 (14)
Jaeseo's Information Security Story
PUSH, POP 스택에 값을 넣는 것이 PUSH 스택에 있는 값을 가져오는 것이 POP PUSHAD , POPAD 모든 레지스터를 PUSH 하고 POP 하라는 명령어 ex) PUSHAD == PUSH EAX, PUSH EBX, PUSH ECX... MOV 값을 넣어주는 역할 ex) MOV eax,1 == eax에 1를 넣는 명령어 LEA LEA는 주소를 가져온다. MOV는 값을 가져온다. ex) esp+8 : 0x123456 , *esp+8 : 1234 LEA eax,esp+8 -> eax == 0x123456 MOV eax,esp+8 -> eax == 1234 ADD source 에서 destnation으로 더해라 ex) ADD source,destnation SUB source 에서 destnati..
RAX(64bit) -> EAX(32bit) -> AX(16bit) -> AH(8bit - high) - AL(8bit - low) Accumulator for operands and results data 주로 곱셈, 나눗셈에 사용되며, 함수의 반환값을 저장(리턴값) RBX(64bit) -> EBX(32bit) -> BX(16bit) -> BH(8bit - high) - BL(8bit - low) Pointer to data in the DS segment ESI, EDI 와 결합해 인덱스에 사용됨. RCX(64bit) -> ECX(32bit) -> CX(16bit) -> CH(8bit - high) - CL(8bit - low) Counter for string and loop operations 반..
05.exe - 이 프로그램의 등록키는 무엇인가 프로그램을 실행하면 등록키를 입력하는 inputbox와 name을 입력하는 inputbox가 있고 이것을 이용하여 등록을 진행 하는 프로그램으로 보인다. 이제 프로그램 분석을 시작 한다. 맨 처음 PE분석을 통해 패킹이 되어있는지 확인을 해보는 과정을 진행 해본다. PEview와 Exeinfo PE 툴을 통해 이프로그램은 UPX로 패킹이 되어있는걸 확인 할수 있다. UPX를 사용하여 언패킹을 진행해본다. ExeinfoPE를 통해 Unpack이 된 것을 볼수 있다. 이제 X32DBG로 분석을 해본다. String references 검색으로 통해 등록키로 의심이 되는 값 또는 인증관련 메시지와 관련된 값을 찾는다. 잘못된 입력 값을 입력 했을 때 뜨는 키워드..
04.exe - 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가 프로그램을 실행을 해본다. 일정 시간동안 딜레이를 가지고 정상적으로 동작 하는지에 대해 체크 하는 모습을 볼수 있다. X32DBG에서 실행해본다. 디버깅 환경에서는 “디버깅 당함”이라는 문자를 계속 출력하는 모습을 볼수 있다. 이제 프로그램을 분석 해본다. 계속 반복적으로 작동을 하면서 디버거 프로그램을 탐지하는 기능을 담당 하는 함수를 호출하는 것으로 예상된다. 이때 인터럽트를 검색해본다. 디버그를 가르키는 키워드 dbg,debug 등을 검색한다. 그결과 이와 같은 함수들을 발견하게 되는데 디버그를 탐지하는 함수로 의심이 되는 “IsDebuggerPresent”에 들어가 살펴본다. 그리..
02.EXE - 패스워드로 인증하는 실행파일이 손상되어 실행이 안되는 문제가 생겼다. 패스워드가 무엇인지 분석하시오 일단 프로그램을 실행 해본다. 관리자 권한으로도 실행 해본다. 위와 같은 내용으로 프로그램이 손상이 되어 디버깅도 불가능 하다는 것을 알게되었다. 그렇기 때문에 HEXEDITER로 열어서 분석을 한다. 일단 시작을 보면 PE header 부분이 보이게 된다. 대략 이정도 부분이 PE Header 부분으로 보인다. 이제 PE Header, section Header 부분을 지나 section Data 부분을 분석 해본다. 이쪽을 보면 DialogBox를 실행하고 MessageBox를 시행 SendMessage등과 같이 다양한 작업을 수행을 한다는 것을 알 수 있다. 좀더 내려 보다 보면 AD..
01.exe 풀이 해설 - HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가 일단 프로그램을 구동 한 다음 구조를 살펴본다. 구조를 살펴보니 GetDriveTypeA를 실행 한 다음 리턴 값을 받고 비교를 하여 CD-Rom인지 아닌지를 확인 하는 프로그램 이다. 일단 작동이 시작 되면 메시지 박스를 출력한 다음 GetDriveTypeA API를 통해 리턴값을 eax에 저장을 하게 되는데 이때 인터넷 검색을 통해 어떤 리턴 값이 Cd-Rom 인지를 찾아 보았다. CD-ROM은 eax에 5를 리턴 받아야 한다는 사실을 알게 되었다. 그런 다음 GetDriveTypeA API를 실행 한다음의 레지스터값과 그다음에 실행되는 어셈블리어를 분석하였다. GetDri..