๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
-
REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 1 :: ๋ฉ๋ชจ๋ฆฌ ์์ญ(RAM)SECURITY/REVERSING 2020. 7. 8. 15:07
๋ฉ๋ชจ๋ฆฌ ์์ญ(RAM) RAM (Random Access Memory) : ๋ฐ๋์ฒด ํ๋ก๋ก ๊ตฌ์ฑ๋์ด ์๋ ํ๋ฐ์ฑ ๋ฉ๋ฆฌ๋ก๋ก, ์ฃผ๊ธฐ์ต ์ฅ์น์ด๋ค. ์ด๋ ์์น์ ์๋ ๋ฐ์ดํฐ๋ ์ง ์ ๊ทผํ๋ ๋ฐ ๋์ผํ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. (cf. ํ๋ ๋์คํฌ, ํ๋กํผ ๋์คํฌ ๋ฑ) - Code ์์ญ : ์ฝ๋ ์์ฒด๋ฅผ ๊ตฌ์ฑํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ. Hex / BIN ํ์ผ ๋ฉ๋ชจ๋ฆฌ์ด๋ค. ํ๋ก๊ทธ๋จ ๋ช ๋ น์ด ์์นํ๋ ๊ณณ์ผ๋ก , ๊ธฐ๊ณ์ด๋ก ์ ์ด๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด๋ค. 'read only' ์์ญ์ผ๋ก ๋ณ๊ฒฝ ๋ถ๊ฐ. ์ฐ๊ธฐ ๋ฑ์ ๋ณ๊ฒฝ ์์ ์ด ๋ค์ด์ค๋ฉด 'access violation' ์ด ๋ฐ์ํ๋ค. ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ๋๊น์ง ๊ณ์ ์ ์ง๋๋ ์์ญ์ด๋ค. - Data ์์ญ : ์ ์ญ๋ณ์(global), ์ ์ ๋ณ์(static), ๋ฐฐ์ด(array), ๊ตฌ์กฐ์ฒด(structure) ๋ฑ์ ์ ์ฅ ..
-
Selection Sort , Merge Sort, ๊ทธ๋ฆฌ๊ณ ์ฆ๋ชPROGRAMMING/์๋ฃ๊ตฌ์กฐ 2020. 6. 18. 16:22
Sotring ์ ๋ํ ์ฆ๋ช ๋ฐฉ๋ฒ -์ ๋ ฅ: a[0], a[1], ... , a[n-1] : ์งํฉ - Sorting ์ด ์๋ฃ๋ ํ ๋ค์์ด ๋ง์กฑ๋์ด์ผ ํจ - Sorting ์ด ๋๋ ํ ๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ๋ค์ b[0], b[1], ..., b[n-1] ์ด๋ผ๊ณ ๋ถ๋ฅด์ - ์กฐ๊ฑด 1: a ๋ฐฐ์ด๊ณผ b ๋ฐฐ์ด์ ๊ฐ๋ค์ ์งํฉ์ผ๋ก ๊ฐ์ - ์กฐ๊ฑด 2 : b[0]
-
[๊ธฐํ] ์๋์ฐ - ํ๋ก๊ทธ๋จ ๊ฐ์ ์ข ๋ฃ ๋ฐฉ๋ฒPROGRAMMING/๊ธฐํ 2020. 6. 18. 15:38
1. ์์ ๊ด๋ฆฌ์ ์ด์ฉ ์๋์ฐ-์์ ๊ด๋ฆฌ์ ์ ๋ค์ด๊ฐ์ ๊ฐ์ ์ข ๋ฃ ํ๋ ค๋ ํ๋ก๊ทธ๋จ ์ ํ, ์์ ๋๋ด๊ธฐ ๋๋ฅด๊ธฐ 2. cmd ์ด์ฉ : taskkill ๋ช ๋ น์ด ์ด์ฉ cmd ์ ๋ค์ด๊ฐ์ taskkill /f /im ํ์ผ๋ช ex. taskkill /f /im project.exe ๊ฐ์ ์ข ๋ฃํ ํ๋ก๊ทธ๋จ ๋ชฉ๋ก ์กฐํ ๋ฐฉ๋ฒ: tasklist ์ ๋ ฅ ํ์ธํ PID ๋ฅผ ์ด์ฉํด taskkill taskkill /f /PID PID ๋ฒํธ ex. taskkill /f /PID 3303 ์ด ๋ฐฉ๋ฒ์ ํนํ, visual studio ์์ "~~~\project.exe์(๋ฅผ) ์ฐ๊ธฐ์ฉ์ผ๋ก ์ด ์ ์์ต๋๋ค" ๋ผ๋ ์ค๋ฅ๊ฐ ์๋๋ฐ ํด๋น ํ๋ก๊ทธ๋จ์ด ๋ณด์ด์ง ์์ ๋ ์ ์ฉํ ๋ฐฉ๋ฒ์ด๋ค.
-
Arrays(๋ฐฐ์ด), Binary Search(์ด์ง ํ์), ์ฆ๋ช , ๊ทธ๋ฆฌ๊ณ logPROGRAMMING/์๋ฃ๊ตฌ์กฐ 2020. 6. 18. 14:26
Arrays: ์ฐ์๋ ์ฃผ์, ๋์ผํ Type ์ฅ์ : ๊ฐ ์์์ ๋ํ ์ ๊ทผ์ด ์์ ์๊ฐ์ ๊ฐ๋ฅ. Search ๊ฐ ๋น ๋ฆ ๋จ์ : ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋ณํํ๋ ค๋ฉด ๋น์ฉ์ด ํฌ๊ฒ ๋ฆ. Insert, Delete ๊ฐ ๋๋ฆด ์ ์๋ค. -> ๋ณํ๊ฐ ์๊ฑฐ๋ ๋๋ฌธ ํํ์ ์๋ฃ์ ์ฌ์ฉํ๋ค. Binary Search (์ด์ง ํ์) ์๋ฃ์ ํ์ ์๊ณ ๋ฆฌ์ฆ ์ค ์ ํ ํ์(ํ ์์์ฉ ์ฒ์๋ถํฐ ์์ฐจ์ ์ผ๋ก ๋ฐฉ๋ฌธํ์ฌ ์ฐพ๋ ๋ฐฉ๋ฒ) ๋ณด๋ค ์๋ฑํ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ์๋ฃ๋ฅผ ๋ฐ์ฉ ๋๋์ด ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ฆ, ์ค๊ฐ๊ฐ์ ๋ณด๊ณ ๊ทธ๋ณด๋ค ์ผ์ชฝ์ ์์์ง ์ค๋ฅธ์ชฝ์ ์์์ง ํ๋จํ์ฌ ๊ทธ ํด๋น ๊ตฌ์ญ์์ ์๋กญ๊ฒ ๋ฐ์ฉ ํ์ํ๋ ๊ฒ์ด๋ค. ์ด๋, ์๋ฃ๋ (๋ฌด์กฐ๊ฑด) ์ ๋ ฌ๋์ด ์์ด์ผ ํ๋ค. ๋ค์์ ๊ฐ๊ฐ ๋ฐ๋ณต์ ์ ์ฐจ์ ์ฌ๊ท์ ์ ์ฐจ๋ก ์ ์ฑํ ์ด์ง ํ์ ์ฝ๋์ด๊ณ , ๊ฐ๊ฐ์ ๋ํด ์ฆ..
-
์ํ์ ๊ท๋ฉ๋ฒ์ผ๋ก ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ ์ฆ๋ชPROGRAMMING/์๋ฃ๊ตฌ์กฐ 2020. 6. 18. 13:28
์ํ์ ๊ท๋ฉ๋ฒ์ผ๋ก ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ์ ์ฆ๋ช ํ๊ธฐ ์ํด์ ๋ค์์ ๋ ๊ฐ์ง๋ง ํ์ธํ๋ฉด ๋๋ค. โ P(1) ์ด ์ฐธ์ด๋ค. โก P(x-1) -> P(x) ๋ ์ฐธ์ด๋ค. ์ฆ, P(x-1) ์ด ์ฐธ์ด๋ผ๊ณ ๋ฏฟ๊ณ (๊ฐ์ ) P(x) ํ์ธ! :: ์ฌ๊ท ์ฝ๋๋ "์ฌ๊ท๋ ํญ์ ์ฑ๊ณตํ๋ค"๊ณ ์ฝ์ผ๋ฉด ๋จ ๋ค์์ ๋ ์ฝ๋๋ฅผ ์ดํด๋ณด์. (c์ธ์ด๋ก ์์ฑ๋์์ต๋๋ค.) int sum(int x) { int i, num; num=0; for (int i=0; i P(x) ์ด ์ฐธ์ด๋ค : sum(x-1) ์ด 1+2+...+(x-1) ์ ๋ฆฌํดํ๋ฉด sum(x) ๋ 1+2+...+(x-1)+x ๋ฅผ ๋ฆฌํดํ๋ค. => ์ฝ๋๋ฅผ ๋ณด๋ฉด sum(x) ๋ x + sum(x-1) ์ ๊ฐ์ ๋ฆฌํดํ๋ค. sum(x-1) ์ 1+2+...+(x-1) ๊ณผ ๊ฐ๋ค๊ณ ๊ฐ์ ํ์ผ๋ฏ๋ก sum(x)..
-
์ํ์ ๊ท๋ฉ๋ฒPROGRAMMING/์๋ฃ๊ตฌ์กฐ 2020. 6. 18. 13:06
์ํ์ ๊ท๋ฉ๋ฒ: ์ด๋ค ๋ช ์ P(n) ์ด ์์ ๋ ๋ชจ๋ ์์ฐ์ n ์ ๋ํด ์ฐธ์์ ์ฆ๋ช ํ๋ ๋ฐฉ๋ฒ - ๊ธฐ๋ณธํ: P(1) ์ด ์ฐธ(BASE)์ด๊ณ , P(n-1)->P(n) ์ด ์ฐธ(STEP)์ด๋ฉด P(n) ์ ๋ชจ๋ ์์ฐ์ n ์ ๋ํด์ ์ฐธ์ด๋ค. - ๊ฐํ ํํ: P(1) ์ด ์ฐธ์ด๊ณ , P(1)∧P(2)∧···∧P(n-1) -> P(n) ์ด ์ฐธ์ด๋ฉด P(n) ์ ๋ชจ๋ ์์ฐ์ n ์ ๋ํด์ ์ฐธ์ด๋ค. ์ํ์ ๊ท๋ฉ๋ฒ์ ๋ ์ด๋ ค์ด ์๊ธฐ๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ค. โ์ค์โ P(n-1)->P(n) ≡ P->Q ์ ์๋ฏธ - P ๊ฐ ์ฐธ, Q ๊ฐ ์ฐธ -> ์ ์ ๋ ์ฐธ - P ๊ฐ ์ฐธ, Q ๊ฐ ๊ฑฐ์ง -> ์ ์ ๋ ๊ฑฐ์ง - P ๊ฐ ๊ฑฐ์ง, Q ๊ฐ ์ฐธ -> ์ ์ ๋ ์ฐธ - P ๊ฐ ๊ฑฐ์ง, Q ๊ฐ ๊ฑฐ์ง -> ์ ์ ๋ ์ฐธ P ๊ฐ ๊ฑฐ์ง์ด๋ฉด Q ๋ '์๋ฏธ ์์'. (์ฐธ..
-
๋ณ์์ ํฌ์ธํฐPROGRAMMING/์๋ฃ๊ตฌ์กฐ 2020. 6. 18. 12:52
(์ด ๋ฌธ์๋ c์ธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์์ต๋๋ค.) ๋ณ์: ์ด๋ฆ , ์ฃผ์ , type(ํฌ๊ธฐ, ํด์) - ์ด๋ฆ์ ์ฌ๋์ ์ํ ๊ฒ, ์ฃผ์๋ CPU/MEMORY ๋ฅผ ์ํ ๊ฒ. ๋ณ์๋ฅผ ๋์ ํ ๋นํ๊ฒ ๋๋ฉด, MEMORY ์ ํด๋น ๋ณ์์ 'ํฌ๊ธฐ'๋งํผ ๊ณต๊ฐ์ด ์๊ธด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ณ์์ ์ฃผ์๋ก ๊ทธ ๋ณ์๋ฅผ ๋ค๋ฃฐ ์๋ฐ์ ์๋๋ฐ, ๊ทธ ์ฃผ์๋ฅผ ์ ์ฅํ ์ ์๋ ๋ณ์๊ฐ ํฌ์ธํฐ Pointer : ๋ณ์์ ์ผ์ข . ๋ณ์์ ํน์ง ์ค, type ๊ฐ ์ฃผ์์ธ ๋ณ์. - ์ด๋ค type ์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋์ง๋ ์ถ๊ฐ๋ก ํ์ํด์ผ ํจ - ํ๊ธฐ: int * p; - * ์ "p์ ์๋ ๊ฐ์ ๊บผ๋ด์ ์ฃผ์๋ก ์๊ฐํด์ ๊ทธ ์ฃผ์๋ก ๊ฐ๋ค" ์ฆ, p์์ ์ฃผ์๋ฅผ ๊บผ๋ด ๋ชฉ์ ์ง์ ๊ฐ๋ฉด int ๊ฐ ์๋ ๊ฒ์ผ๋ก ํญ์ ์๊ฐ - p= &a : ๋ณ์ a ์ ์ฃผ์๋ฅผ ๊บผ๋ด p ์ ์ ..