원래 커맨드라인에 출력하기 위해서는 write 함수를 출력하는 인터럽트를 걸어야 하는데 그걸 하려면 또 strlen으로 문자열의 길이도 가져와야 하고 인자 넣기가 귀찮아 puts 함수를 구현하였다.

문자열 끝에 '\n'을 자동으로 붙여 주기 때문에 조금 고민했었는데 모 학생의 도움으로 간단히 구현하였다.


.globl main
main:
	push %ebp
	mov %esp, %ebp
	push $helloworld
	call puts
	leave
	ret

puts:
	push %ebp
	mov %esp, %ebp
	mov 0x08(%ebp), %eax
	push %eax
	call strlen
	mov %eax, %edx
	mov $0x04, %eax
	mov $0x01, %ebx
	mov 0x08(%ebp), %ecx
	int $0x80
	push $0x0a
	lea (%esp), %ecx
	mov $0x04, %eax
	mov $0x01, %ebx
	mov $0x01, %edx
	int $0x80
	add $0x04, %esp
	leave
	ret

strcpy:
	push %ebp
	mov %esp, %ebp
	xor %eax, %eax
	mov 0x08(%ebp), %edi
	mov 0x0c(%ebp), %esi
	.strcpy_loop:
		movb (%esi), %al
		movb %al, (%edi)
		cmpb $0x00, %al
		je .strcpy_finish
		inc %esi
                inc %edi
		jmp .strcpy_loop
	.strcpy_finish:
		leave
		ret


strlen:
	push %ebp
	mov %esp, %ebp
	xor %ecx, %ecx
	mov 0x08(%ebp), %eax
	.strlen_loop:
		movb (%eax), %bl
		cmpb $0x00, %bl
		je .strlen_finish
		inc %eax
		inc %ecx
		jmp .strlen_loop
	.strlen_finish:
		mov %ecx, %eax
		leave
		ret


helloworld : .string "Hello, World"


'Programming' 카테고리의 다른 글

Assembly Programming - isAlpha, isNumber  (0) 2015.10.11
Assembly Programming - gets  (0) 2015.10.10
Assembly Programming - strchr  (0) 2015.10.10
Assembly Programming - strcpy  (0) 2015.10.10
Assembly Programming - strlen  (0) 2015.10.10
블로그 이미지

__미니__

E-mail : skyclad0x7b7@gmail.com 나와 계약해서 슈퍼 하-카가 되어 주지 않을래?

,

main에 버퍼를 할당하고 만들어둔 string 을 strcpy를 이용해 복사하여 출력하는 소스

.globl main
main:
	push %ebp
	mov %esp, %ebp
	sub $0x20, %esp
	lea -0x20(%ebp), %eax
	push $helloworld
	push %eax
	call strcpy
	lea -0x20(%ebp), %eax
	push %eax
	call strlen
	mov %eax, %edx
	mov $0x04, %eax
	mov $0x01, %ebx
	lea -0x20(%ebp), %ecx
	int $0x80
	leave
	ret

strcpy:
	push %ebp
	mov %esp, %ebp
	xor %eax, %eax
	mov 0x08(%ebp), %edi
	mov 0x0c(%ebp), %esi
	.strcpy_loop:
		movb (%esi), %al
		movb %al, (%edi)
		cmpb $0x00, %al
		je .strcpy_finish
		inc %esi
                inc %edi
		jmp .strcpy_loop
	.strcpy_finish:
		leave
		ret


strlen:
	push %ebp
	mov %esp, %ebp
	xor %ecx, %ecx
	mov 0x08(%ebp), %eax
	.strlen_loop:
		movb (%eax), %bl
		cmpb $0x00, %bl
		je .strlen_finish
		inc %eax
		inc %ecx
		jmp .strlen_loop
	.strlen_finish:
		mov %ecx, %eax
		leave
		ret


helloworld : .string "Hello, World"


'Programming' 카테고리의 다른 글

Assembly Programming - isAlpha, isNumber  (0) 2015.10.11
Assembly Programming - gets  (0) 2015.10.10
Assembly Programming - strchr  (0) 2015.10.10
Assembly Programming - puts  (0) 2015.10.10
Assembly Programming - strlen  (0) 2015.10.10
블로그 이미지

__미니__

E-mail : skyclad0x7b7@gmail.com 나와 계약해서 슈퍼 하-카가 되어 주지 않을래?

,


.s파일 빌드 방법은 .c와 같다.

gcc -o prog prog.c

32바이트 빌드는 뒤에 -m32를 붙이면 된다.

%eax에 길이가 들어가겠으나 strlen만으로는 확인할 방법이 없어 GDB로 직접 디버깅하여 실제 문자열 길이가 리턴되는것을 확인하였다.

.globl main
main:
	push %ebp
	mov %esp, %ebp
	push $helloworld
	call strlen
	leave
	ret

strlen:
	push %ebp
	mov %esp, %ebp
	xor %ecx, %ecx
	mov 0x08(%ebp), %eax
	.strlen_loop:
		movb (%eax), %bl
		cmpb $0x00, %bl
		je .strlen_finish
		inc %eax
		inc %ecx
		jmp .strlen_loop
	.strlen_finish:
		mov %ecx, %eax
		leave
		ret

helloworld : .string "Hello, World"


'Programming' 카테고리의 다른 글

Assembly Programming - isAlpha, isNumber  (0) 2015.10.11
Assembly Programming - gets  (0) 2015.10.10
Assembly Programming - strchr  (0) 2015.10.10
Assembly Programming - puts  (0) 2015.10.10
Assembly Programming - strcpy  (0) 2015.10.10
블로그 이미지

__미니__

E-mail : skyclad0x7b7@gmail.com 나와 계약해서 슈퍼 하-카가 되어 주지 않을래?

,

pwnable.kr - ascii_easy (33pt)

2015. 9. 23. 10:59

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.







12th HackingCamp CTF Write-up.pdf

 

이번 해킹캠프 CTF 팀명은 'ITBANK' 였습니다.

사진상 총 3800점이지만 마지막에 입력한 300점이 무효화

처리 되어 2등과 동점인 3500점으로 우승을 차지했습니다.

부상은 전과 마찬가지로 PoC Conference 참가권이었기 때문에 얻은 것은 명예라고 할 수 있겠네요.

저는 총 3800점 중 2800점을 Auth하였습니다.

2300점은 스스로 풀어내었고 포너블 500점짜리 문제는 김낙현군의 파워게싱으로 풀어냈습니다.

지금도 그때의 그 허전함과 흥분감이 떠오릅니다.


문제풀이에 열심히 집중해 준 다른 팀원들에게도 모두 감사의 말을 전하고 싶습니다.

다음부터도 더욱 분발하여 좋은 결과를 내도록 하겠습니다.



'CTF > Write-up' 카테고리의 다른 글

Codegate 2016 Junior Prequal Write-up  (0) 2016.03.19
제 13회 해킹캠프 CTF Write-up  (0) 2016.02.28
2015 Dimicon Prequal/Qual Write-up  (0) 2015.11.15
2015 Whitehat Contest Prequal  (0) 2015.10.13
2015 inc0gnito CTF Write-up  (0) 2015.09.15
블로그 이미지

__미니__

E-mail : skyclad0x7b7@gmail.com 나와 계약해서 슈퍼 하-카가 되어 주지 않을래?

,


 




2015년 9월 19일 ~ 20일 1박 2일로 진행된 해킹캠프에 두 번째로 갔다왔습니다.

일정 및 발표는 다음과 같았습니다.



첫째 날
13:40서울유스호스텔 대회의실 집결, 해킹캠프 티셔츠 제공
14:00 - 15:00자기소개, 조 편성, 팀소개
15:00 - 15:40해킹, 해킹공부, 해커의 미래(vangelis)
15:50 - 16:30Data Recovery 101(박상호)
16:30 - 16:50Event
16:50 - 17:30ARP Spoofing과 패킷 스니핑(+실습)(정윤호)
17:30 - 18:30저녁 식사
18:30 - 19:10법이 바라보는 보안 vs 보안이 바라보는 법(이용재 변호사)
19:20 - 20:001-Day 취약점으로 공부하는 Windows ROP(김도현)
20:00 - 21:00해킹캠프 CTF - 1
21:00 - 01:00해킹캠프 CTF - 2

* 서울유스호스텔 규정에 따라 21:00 이후부터는 팀별 방에서 해킹캠프 CTF - 2를 진행

* CTF-2 시간은 상황에 따라 조정될 수 있음 

 

둘째 날
07:30 - 08:30아침 식사
08:00 - 09:50산책, 휴식, 퇴실
10:00 - 10:40게임햌 그것이 알고싶햌(김학수)
10:50 - 11:30CTF 비기너 가이드(임준오)
11:30 - 12:30점심식사
12:30 - 13:10RTL Chaining(송상준)
13:10 - 13:30Event
13:30 - 14:10돈은 없지만 세콤을 달고 싶어(강진원)
14:20 - 15:00손버싱을 해보자 - Handray(+실습)(박상희)
15:00 - 15:30Event
15:30 - 16:10'Shell' We Make Windows 'Shell' Code?(문지현)
16:20 - 17:00Cyber Warfare -- 보이지 않는 전쟁(장형석)
17:10 - 17:30발표자, 참가자, 스탭 모두가 함께하는 질문과 답변 / 시상식
17:30 - 18:00귀가 준비 / 귀가



저번 해킹캠프를 갔다 온 후 썼던 것처럼 길게 후기를 쓸 엄두는 나지 않기에 일단 그 분량은 포기해 두도록 하겠습니다.

보안 공부를 제대로 하기 시작한 2월에 처음으로 갔다 왔던 해킹캠프와 비교해 보면 많은 것들이 다르게 보였다고 할 수 있겠습니다.

스탭 및 발표자로 같은 BoB 4기인 윤호형과 문지현, 상희형, 상준이까지 나와서

전처럼 모르는 사람들의 발표를 듣는다는 생각은 많이 들지 않았고, 내용이 기대되었습니다.


모든 발표의 내용을 다 쓰긴 좀 그렇고 정말 유용했고 재미있게 들은 발표 하나만 써 보겠습니다.


이번 해킹캠프에서 제게 가장 유용했고 재미있었던 발표는 바로 '1-Day 취약점으로 공부하는 Windows ROP' 였습니다.

솔직히 ROP에 대해 제대로 내용이 나오지는 않았지만 윈도우 OS에 적용된 여러 가지 보호 기법들에 대해 설명을 듣고

해당 보호 기법을 어떻게 우회할 수 있는지를 들은 것도 흥미있었고,

윈도우에서 리눅스의 GOT와 PLT와 비슷한 역할을 하는 IAT 등을 알게 된 것도 좋은 수확이었다고 생각합니다.


이번 해킹캠프에서는 저번과 다르게 CTF는 있었지만 그 시간이 더 길어지고 Hack The Packet 대회가 사라졌습니다.

그래서 원래 21시 이후부터는 HTP 시간을 가져야 했으나 익일 01:00까지 CTF가 진행되어 더 오랜 시간동안 문제와 씨름하였습니다.

이번 팀은 'ITBANK'로, 이쪽 업계에서는 여러 가지 의미로 유명한 곳의 이름이었습니다.

대회는 간략하게 말하자면 우승했고, 부상으로 PoC Conference 무료 참가권을 받았습니다.

물론 저번에 제 11회 해킹캠프에서 '천국'팀이었을 때도 우승을 해서 PoC 참가권을 받았었기에

결론적으로 얻은 것은 명예라고 하면 될 것 같습니다.

같은 대회라고는 하지만 두번 연속으로 우승한 것도 상당히 의미 있는 일이었다고 생각합니다.

대회에서 푼 문제의 Write-up은 바로 올릴 생각입니다.

이번 해킹캠프에서도 정말 많은 것을 얻고, 느끼고, 배우고 갑니다.




※ 이 게시글은 http://blog.naver.com/skyclad1975 에도 올라갑니다.



블로그 이미지

__미니__

E-mail : skyclad0x7b7@gmail.com 나와 계약해서 슈퍼 하-카가 되어 주지 않을래?

,



제대로 순위권 내에 들지는 못했지만 후배들과 열심히 푼 결과이므로 Write-up을 업로드합니다.

이 Write-up에는 제가 푼 문제들의 풀이만 들어 있습니다.


2015 Inc0gnito CTF.pdf


'CTF > Write-up' 카테고리의 다른 글

Codegate 2016 Junior Prequal Write-up  (0) 2016.03.19
제 13회 해킹캠프 CTF Write-up  (0) 2016.02.28
2015 Dimicon Prequal/Qual Write-up  (0) 2015.11.15
2015 Whitehat Contest Prequal  (0) 2015.10.13
제 12회 해킹캠프 CTF Write-up  (0) 2015.09.20
블로그 이미지

__미니__

E-mail : skyclad0x7b7@gmail.com 나와 계약해서 슈퍼 하-카가 되어 주지 않을래?

,

pwnable.kr - dragon (75pt)

2015. 8. 28. 19:40

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

pwnable.kr - cmd1 (1pt)

2015. 8. 23. 20:27

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.