์ƒˆ์†Œ์‹

IT & Security/OS

๋กœ๋” & ๋งํ‚น ๊ณผ์ •์•Œ์•„๋ณด๊ธฐ

  • -
๋ฐ˜์‘ํ˜•

 

'ํ”„๋กœ๊ทธ๋žจ์ด ๋นŒ๋“œ๋˜๋Š” ๊ณผ์ •' ํ”„๋กœ๊ทธ๋žจ (์‹คํ–‰ํŒŒ์ผ)์ด ๋งŒ๋“ค์–ด ์ง€๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.

์„ค๋ช…์— ์•ž์„œ ํ•„์š”ํ•œ ์šฉ์–ด์™€ ๊ฐ„๋žตํ•œ ์ง€์‹์„ ๋จผ์ € ์„ค๋ช…๋“œ๋ฆฌ๊ณ , ๊ณผ์ •์„ ๋ณด์—ฌ๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ปดํŒŒ์ผ์— ๊ด€๋ จํ•œ ์ •๋ณด๋Š”  lucete1230-cyberpolice.tistory.com/157 ์ด์ „๊ธ€์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

 

 

 


๋ง์ปค๋ž€?

 

๋”๋ณด๊ธฐ

๋ง์ปค(linker) ๋˜๋Š” ๋งํฌ ์—๋””ํ„ฐ(link editor)๋Š” ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋งŒ๋“ค์–ด๋‚ธ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ชฉ์  ํŒŒ์ผ์„

๊ฐ€์ ธ์™€ ์ด๋ฅผ ๋‹จ์ผ ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ณ‘ํ•ฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

 

์œ ๋‹‰์Šค ๊ณ„์—ด ์šด์˜ ์ฒด์ œ์—์„œ ๋กœ๋”๋ฅผ ๋ง์ปค์˜ ๋™์˜์–ด๋กœ ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•œ๋‹ค. (์ถœ์ฒ˜ : ์œ„ํ‚ค๋ฐฑ๊ณผ)



ใ…‡ ์ฃผ์š” ์—ญํ• ๋“ค 

- ์ฃผ ๊ธฐ์–ต์žฅ์น˜์˜ ํ• ๋‹น(ํ™•๋ณด)


- ์—ฐ๊ฒฐ(Linking) 


- ์žฌ๋ฐฐ์น˜(Relocation) 


- ํ”„๋กœ๊ทธ๋žจ ์—ฐ๊ฒฐ ์ ์žฌ(Load
ing)



: dll ์ด๋ž€? goddaehee.tistory.com/185

 

 

Linker(๋ง์ปค)๋ž€ ๋งํ‚น์„ ๋‹ด๋‹นํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

๋ง์ปค๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ๋…๋ฆฝ์ ์ธ ์ปดํŒŒ์ผ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์•„์ฃผ ์ค‘์š”ํ•œ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.

 

๋ง์ปค ๋•๋ถ„์— ํฐ ๊ทœ๋ชจ์˜ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ํ•œ ๊ฐœ์˜ ์†Œ์Šค ํŒŒ์ผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๋Œ€์‹  ๋ณ„๋„๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ณ ,

์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด๋‹ค ๊ด€๋ฆฌํ•  ๋งŒํ•œ ๊ทœ๋ชจ์˜ ๋” ์ž‘์€ ๋ชจ๋“ˆ๋“ค๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

 

์ฆ‰, ์•„์ฃผ ๊ฑฐ๋Œ€ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ํ•˜๋‚˜์˜ ์†Œ์Šค ํŒŒ์ผ์ด ์•„๋‹ˆ๋ผ ์ˆ˜๋งŽ์€ ์†Œ์Šค ํŒŒ์ผ๋กœ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๋ง์ปค ๋•๋ถ„์— ์šฐ๋ฆฌ๋Š” ๋ชจ๋“ˆ ์ค‘์— ํ•œ ๊ฐœ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ,

๋‹ค๋ฅธ ํŒŒ์ผ๋“ค์„ ์žฌ์ปดํŒŒ์ผํ•  ํ•„์š” ์—†์ด ์ด ํŒŒ์ผ๋งŒ์„ ๊ฐ„๋‹จํžˆ ์žฌ์ปดํŒŒ์ผํ•˜๊ณ  ์ด๋ฅผ ๋‹ค์‹œ ๋งํฌํ•˜์—ฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

Linking(๋งํ‚น)์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋  ์ˆ˜ ์žˆ๊ณ  ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ฐœ์˜ ํŒŒ์ผ๋กœ ๋งŒ๋“œ๋Š” ์ž‘์—…์ด๋‹ค. ์ด ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋˜์–ด ์‹คํ–‰๋œ๋‹ค. ๋งํฌ๋Š” ์ปดํŒŒ์ผ์‹œ์— ์ˆ˜ํ–‰๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ , ๋กœ๋”ฉ์‹œ์— ์ˆ˜ํ–‰๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ , ์‹คํ–‰์‹œ์— ์ˆ˜ํ–‰๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

 

 


 

๋งํ‚น์ด๋ž€ ์ปดํŒŒ์ผ ์ดํ›„, ์‹คํ–‰ํ•˜๊ธฐ ์ด์ „์— ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์™€ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•œ๋‹ค.

 

 

 ๋งํ‚น์€ ์ •์  ๋งํ‚น๊ณผ ๋™์  ๋งํ‚น, ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋Š”๋ฐ, ์ด ๋‘ ๋งํ‚น ๋ฐฉ์‹์˜ ์ฐจ์ด๋Š” ์•„๋ž˜ ๋งํฌ๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

 

jhnyang.tistory.com/42

 

[์šด์˜์ฒด์ œ]Static Linking vs Dynamic Linking(shared Library) ์ •์ ๋งํ‚น vs ๋™์ ๋งํ‚น

์šด์˜์ฒด์ œ ๋ชฉ์ฐจ Dynamic Linking์„ ์ดํ•ดํ•˜๋ ค๋ฉด Linking์— ๋Œ€ํ•ด ์ดํ•ด๋ฅผ ํ•˜๊ณ  ์žˆ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ €๋ฒˆ์‹œ๊ฐ„์— ๋งํ‚น์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…์„ ํ–ˆ์–ด์š” ๋งํ‚น๊ณผ์ •์—์„œ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ฐ™์ด Linking์„ ๏ฟฝ๏ฟฝ

jhnyang.tistory.com

 

 


 

 

๋กœ๋”๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

๋กœ๋”(loader)๋Š” ์ปดํ“จํ„ฐ ๋‚ด๋ถ€๋กœ ์ •๋ณด๋ฅผ ๋“ค์—ฌ์˜ค๊ฑฐ๋‚˜ ๋กœ๋“œ ๋ชจ๋“ˆ์„ ๋””์Šคํฌ ๋“ฑ์˜ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜๋กœ ๋ถ€ํ„ฐ ์ฃผ ๊ธฐ์–ต์žฅ์น˜์—

์ ์žฌํ•˜๋Š” ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค.

 

 

๋ชจ๋“  ๊ฐœ๋…/์šฉ์–ด ํŒŒ์•…ํ•˜๊ธฐ โ–ผ

๋”๋ณด๊ธฐ

์†Œ์Šค ํŒŒ์ผ

  • ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•๋“ค (C , JAVA)

์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ

  • ์ˆ˜ํ–‰ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ ๋“ค์ด ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.
  • ๋˜ ์ด๋Ÿฐ ์ˆ˜ํ–‰์ฝ”๋“œ, ๋ฐ์ดํ„ฐ๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ ์–ด๋””์— ์ €์žฅ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ์ฃผ์†Œ ์ •๋ณด๋“ค์ด ์žˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋“ค์˜ ์ •๋ณด ๋“ฑ๋“ฑ..์ด ์ €์žฅ๋˜์–ด์žˆ๋Š” Symbol Table์ด ์žˆ๋‹ค.
  • Linker๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ Linking ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ •๋ณด๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ ์ •๋ณด๋“ค์ด ์ €์žฅ๋œ ํ…Œ์ด๋ธ”์„ Relocation Table ์ด๋ผ ํ•œ๋‹ค.

์ปดํŒŒ์ผ๋Ÿฌ

  • ๊ฐ ์†Œ์ŠคํŒŒ์ผ์„ ์˜ค๋ธŒ์ ํŠธํŒŒ์ผ๋กœ ๋ณ€ํ™˜ ์‹œ์ผœ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๋ง์ปค

  • ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜์˜ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ๋กœ ํ•ฉ์นœ๋‹ค(Executable file๋กœ ํ•ฉ์นœ๋‹ค)

๋กœ๋”

  • Executable file ์„ ์ฝ๋Š”๋‹ค.
  • ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์—์žˆ๋Š” ๋‚ด์šฉ๋“ค์„ ์˜ฌ๋ฆฌ๊ณ 
  • context๋“ค์„ ๋งŒ๋“ค๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ ๋‹ค.
  • OS์˜ ํ•œ ๋ถ€๋ถ„์ด๋‹ค.

Section

  • ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๊ฑฐ์ณ ๋งŒ๋“ค์–ด์ง„ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ ์•ˆ์—๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ Section์ด ์กด์žฌํ•œ๋‹ค.
  • ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜๋Š” Unit ๋“ค ๋˜๋Š” ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด๋†“์€ ๋‹จ์œ„๋“ค์„ Section ์ด๋ผ ํ•œ๋‹ค.
  • ๊ฐ ์„น์…˜๋“ค์€ ์ถ”ํ›„ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋  ๋…์ž์ ์ธ ์˜์—ญ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. -> ์ด ์˜์—ญ์„ ์„ธ๊ทธ๋จผํŠธ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • ๊ฐ ์„น์…˜์•ˆ์—๋Š” ํ•จ์ˆ˜์ด๋ฆ„์ด๋‚˜, ๋ณ€์ˆ˜์ด๋ฆ„๋“ฑ , ์—ฌ๋Ÿฌ ์‹ฌ๋ณผ๋“ค์ด ์กด์žฌํ•˜๊ณ  ๊ทธ ์„น์…•์•ˆ์—์„œ ์ž์‹ ๋งŒ์˜ ์œ„์น˜์ธ offset์„ ์ฃผ์†Œ๋กœ ๊ฐ€์ง„๋‹ค.

์ถœ์ฒ˜  : ๊ตฌ๊ธ€ ๋ธ”๋กœ๊ทธ

 

 

https://m.blog.naver.com/white_cap/221003190571

 

์ด ๊ณผ์ •์€ ์ด๋ ‡๊ฒŒ ์ง„ํ–‰๋จ.

 

์ฝ”๋“œ ์ž‘์„ฑ -- (์ปดํŒŒ์ผ)--> ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ -- (๋งํ‚น)--> ์‹คํ–‰ ํŒŒ์ผ -- (๋กœ๋“œ) --> ๋ฉ”๋ชจ๋ฆฌ ์ ์žฌ ๋ฐ ์ˆ˜ํ–‰.


*** ํ”„๋กœ๊ทธ๋žจ์€ ์™œ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด์•ผ ํ• ๊นŒ? ***

์šฐ๋ฆฌ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ณ€ํ™˜ ์ž‘์—…์„ ๊ฑฐ์นœ ํŒŒ์ผ๋“ค์ด ์ €์žฅ๋˜๋Š” ๊ณณ์€ ํ”ํžˆ ๋งํ•˜๋Š” ์Šคํ† ๋ฆฌ์ง€(ex. HDD, SSD..)์ด๋‹ค. CPU์™€ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋Š๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— CPU๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์€ ์ตœ์†Œ ๋ฉ”๋ชจ๋ฆฌ(ex. RAM)์— ์ ์žฌ๋˜์–ด์•ผ ํ•œ๋‹ค.
(์ตœ์†Œ๋ผ๊ณ  ๋งํ•˜๋Š” ์ด์œ ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ข…๋ฅ˜์—๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.)
ํ”ํžˆ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” RAM์€ ํœ˜๋ฐœ์„ฑ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ‰์†Œ์—๋Š” ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ์‹œ์ผœ์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ„ ๊ฒƒ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด 'ollydbg'


์ถœ์ฒ˜: https://seohs.tistory.com/259

 

 

 

(์•„๋ž˜ ์ฃผ์†Œ๋“ค ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ดํ•ด๊ฐ€ ๋” ๋น ๋ฅผ ๊ฒƒ ๊ฐ™๋„ค์š”) 

์ฐธ๊ณ  ์‚ฌ์ดํŠธ โ–ผ 

๋”๋ณด๊ธฐ

 

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.