'초보의 아웅다웅 설계하기/Ubuntu'에 해당되는 글 7건

  1. 2018.11.27 GCC 컴파일러에서 특정 영역의 바이너리 값을 고정하기 위한 방법
  2. 2016.05.23 RSA, AES, ARIA, SHA256 암호 예제 C
  3. 2011.03.23 Ubuntu - Mount
  4. 2011.03.22 Ubuntu - Vi 편집기
  5. 2011.03.21 Ubuntu - 컴파일
  6. 2011.03.14 Android - Ubuntu 명령어
  7. 2011.03.06 Android - Samba to Window
2018.11.27 17:23

GCC 컴파일러에서 특정 영역의 바이너리 값을 고정하기 위한 방법


main.c

/* 32Byte 데이터를 0으로 고정 */

unsigned char Blank_buffer[0x20] __attribute__ ((section(".init_array"))) = {0, };


app.linker

OUTPUT_ARCH(arm)

SECTIONS
{
    . = (0x00);
/* main.c에서 고정한 데이터의 위치 설정 */
    .init_array : {
    }

    /* text start */
    . = (0x20);
    .text : ... 중략

    /* data start */
    . = (0x20000000);
    .data : ... 중략
}




Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2016.05.23 18:20
exampleAria.c exampleAria.exe exampleHash.c exampleHash.exe


example3.c

example3.exe

example4.c

example4.exe

 

 

 

 

 

martink-master_Cryp.z01 martink-master_Cryp.zip

 

 

ECDSA, ECDH

https://kjur.github.io/jsrsasign/sample-ecdsa.html

 

 

RSA, AES 암호 예제 C

 

gcc -o example4 example4.c

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2011.03.23 00:02
mount란 여려개의 파일 시스템을 가진 블록장치들을 운영체제가 인식할 수 있도록 하는 과정을 말한다.
mount [옵션] [파일 시스템 유형] [장치] [mount 포인트]

옵션 -t 파일 시스템 유형
-v 자세한 출력 모드
-f 마운트 할 수 있는지의 여부를 점검
-w 읽기 쓰기 모드로 마운트

파일 시스템 유형
ext, ext2, vfat, hpfs, iso9660, nfs, minix 등

장치
/dev 디렉토리 아래 존재하는 파일

마운트 포인트
플로피 디스크 /mnt/floppy
CD-ROM /mnt/cdrom

CD-ROM
mount -t iso9660 /dev/cdrom /mnt/cdrom
제거 umount /mnt/cdrom

USB
mount -t vfat /dev/sda1 /mnt/usb
마운트가 안되는 경우 insmod ide-scsi
/mnt에 usb 폴더가 없는 경우 폴더 만들기 mkdir /mnt/usb

플로피 디스켓
mount -t vfat /dev/fd0 /mnt/floppy



Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2011.03.22 22:47
저장 명령
:wq!

저장하기 않고 빠져 나오기
:q!

이동 명령어

h 현재 커서의 위치에서 한 글자 왼쪽으로 이동
l 현재 커서의 위치에서 한 글자 오른쪽으로 이동
k 현재 커서의 위치에서 한 글자 위로 이동
j 현재 커서의 위치에서 한 글자 아래로 이동
O, ^ 현재 라인의 맨 앞으로 코서 이동
$ 현재 라인의 맨 끝으로 커서 이동
w, e 한 단어 오른 쪽으로 이동, 단어의 구분은 알파벳 이외의 문자
W, E 한 단어 오른쪽으로 이동, 단어의 구분은 공백
b 한 단어 왼쪽으로 이동, 단어 구분은 알파벳 이외의 문자
B 한 단어 왼쪽으로 이동, 단어 구분은 공백
Back Space 한글자 왼쪽으로 이동
1+G 편집하고 있는 파일의 맨 첫 글자로 이동
G 편집하고 있는 파일의 맨 마지막 라인으로 이동
Enter 다음 라인의 첫글자로 이동
Ctrl+f 한 화면 앞으로 이동
Ctrl+d 반 화면 앞으로 이동
Ctrl+b 한 화면 뒤로 이동
Ctrl+u 반 화면 뒤로 이동
) 한 문장 앞으로 이동, 문장의 구분은 엔터
( 한 문장 뒤로 이동, 문장의 구분 엔터
{ 한 문단 앞으로 이동, 문단의 구분은 공백
} 한 문단 뒤로 이동, 문단의 구분은 공백

삽입, 수정, 삭제 명령

o 다음라인부터 입력모드
O 현재 윗라인부터 입력모드
x 한글자 삭제
u 복구
dw 단어 삭제
D, d$ 현재 위치부터 라인끝까지 삭제
dd 라인전체 삭제
cw 단어 삭제후 입력 대기 (입력후 ESC)
C, c$ 현재 위치부터 라인끝까지 삭제후 입력대기 (입력후 ESC)
R 글자 덮어쓰기
r 글자 덮어쓰기
yy  라인 복사하기 (복사할 위치에서 p )
j 현재 라인에 다음라인 연결하기
/ 단어 검색
? 단어 검색
1,$ s/VGA/G VGA라는 단어가 G라는 단어로 자동 변경
:set number, :set nu 라인번호 표시하기
:set nonumber, :set nonu 라인번호 제거하기
:.= 커서가 위치한 라인 번호 표기
!ls 편집기 내에서 ls 명령어 실행

'초보의 아웅다웅 설계하기 > Ubuntu' 카테고리의 다른 글

RSA, AES, ARIA, SHA256 암호 예제 C  (0) 2016.05.23
Ubuntu - Mount  (0) 2011.03.23
Ubuntu - Vi 편집기  (0) 2011.03.22
Ubuntu - 컴파일  (0) 2011.03.21
Android - Ubuntu 명령어  (0) 2011.03.14
Android - Samba to Window  (0) 2011.03.06
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2011.03.21 01:16

 

example.c

 

example.exe

 

example1.c

 

example1.exe

 

 

컴파일 과정
hello.c -> hello.i(헤더 파일 삽입, 매크로 치환 및 적용) -> hello.s(어휘 분석, 구문 분석, 의미 분석, 중간언어 생성, 최적화, 목적코드) -> hello.o(기계어로 어셈블) -> collect2 링커 -> hello(실행 파일 표준 C라이브러리와 링크)

gedit example.c

//------------------------

/*
두 값의 곱셈을 계산하는 프로그램
*/

#include <stdio.h>
int a,b;
double product(int, int);

main()
{
    double c;

    printf("Input 1 ~ 100 : ");
    scanf("%d", &a);
    printf("Input 1 ~ 100 : ");
    scanf("%d", &b);

    c = product(a,b);
    printf("%d spuare %d result %g \n\n",a,b,c);
}

double product(int x, int y)
{
    double p;

    p = x*y;
    return p;
}

//----------------------------------
#include <stdio.h>

void main()
{
    double  Num1, Num2, Result;

    printf("Input Fst Num\n");
    scanf("%lf", &Num1);
    printf("Input Snd Num\n");
    scanf("%lf", &Num2);
    Result = Num1 * Num2;
    printf("Num1 * Num2 = %g\n", Result);
}   
//----------------------------------

gcc -o example example.c
./example


gedit hello.c
//----------------------------------
#include <stdio.h>

void main(void)
{
    printf("Hello World\n");
}
//----------------------------------

gcc -o hello hello.c
./hello
  -o -> output 파일의 이름 설정

gcc -E hello.c -> 전처리 과정의 결과를 화면에 보이는 옵션(전처리 과정에서 발생하는 오류 찾을 때 유용하게 쓰임)

gcc -v --save-temps -o hello hello.c -> -v 컴파일 과정 화면 출력, --save-temps 컴파일중 생기는 .i, .o 파일 저장

gcc -s hello.c -> 어셈블리 과정까지 진행후 멈춤 .s 파일까지만 생성

gcc -c hello.c -> 기계어 어셈블까지 진행후 멈춤 .o 파일까지만 생성


#include <stdio.h>

void main(void)
{
    int iNum1, iNum2;
        char chMark;
    int iAns;

    printf("Input calculat num\n ex) 1*2\n");
    scanf("%i %c %i", &iNum1, &chMark, &iNum2);

    switch(chMark){
        case '+' : iAns = iNum1 + iNum2; break;
        case '-' : iAns = iNum1 - iNum2; break;
        case '*' : iAns = iNum1 * iNum2; break;
        case '/' : iAns = iNum1 / iNum2; break;
        default : break;
    }
    printf("%d\n", iAns);
}


#include <stdio.h>
#include <stdlib.h>

void main(void)
{
    char *s = "abcdefg", *tmp = (char *)malloc(strlen(s)*sizeof(char));
    int i = 1;

    while(s[i-1])
    {
        tmp[i-1]=s[strlen(s) - i];
        i++;
    }
    tmp[i-1] = 0;

    printf("The reversed string is \"%s\" \n",tmp);

}


//---------------------------------------------------------------
메이크 파일 만들기
gedit cal_func.h
int cal_func(int, int, char);

gedit cal_func.c
#include "cal_func.h"

int    cal_func(int a, int b, char ch)
{
    int i;
    switch(ch)
    {
        case '+' : i = a+b; break;
        case '-' : i = a-b; break;
        case '*' : i = a*b; break;
        case '/' : i = a/b; break;
        default : break;
    }
    return i;
}

gedit calculator2.c
#include <stdio.h>
#include "cal_func.h"

void main(void)
{
    int na, nb;
    char chMark;
    int iAns;
   
    printf("ex) 1 + 2\n");
    scanf("%i %c %i", &na, &chMark, &nb);
    iAns = cal_func(na, nb, chMark);
    printf("%d\n", iAns);
}

gedit Makefile
#Makefile

CC = gcc

SRC = calculator2.c cal_func.c

BINARY = calculator

BINARY :
        $(CC) -o $(BINARY) $(SRC)

clean :
        rm -rf $(BINARY)

설명

CC = gcc 컴파일러 지정하는 부분
SRC = calculator2.c cal_func.c 컴파이될 소스
BINARY = calculator 컴파일 후 실행될 파일 이름
명령어를 입력하는 아래 두부분은 반드시 탭키로 시작해야함.
        $(CC) -o $(BINARY) $(SRC)
        rm -rf $(BINARY)

  %i 10진수 정수, %d 10진수 정수로 출력하겠다.

'초보의 아웅다웅 설계하기 > Ubuntu' 카테고리의 다른 글

RSA, AES, ARIA, SHA256 암호 예제 C  (0) 2016.05.23
Ubuntu - Mount  (0) 2011.03.23
Ubuntu - Vi 편집기  (0) 2011.03.22
Ubuntu - 컴파일  (0) 2011.03.21
Android - Ubuntu 명령어  (0) 2011.03.14
Android - Samba to Window  (0) 2011.03.06
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2011.03.14 13:02
apt-get install "package-name" 패키지 설치할 때 사용
apt-get remove "package-name" 패키지 삭제
apt-cache search "package-name" 설치된 패키지 확인
apt-get update "package-name" 설치된 패키지 업데이트
apt-get upgrade "package-name" 설치된 패키지 업그레이드

grep문
apt-cache search java6 | grep sun -> apt-cache search java6이거로 얻어진 결과에서 sun이 들어간 것만 찾기.

find . -name "filename" -> 현재 폴더부터 그 하위 모든 폴더를 검색해서 찾기

에디터 편집기
gedit
vim

touch -> make 0 size File

ls -t 만들어 진 순서대로 정렬

ls [kbc]* k,b,c로 시작하는 모든 파일과 디렉토리 표기

ls[b-e]* b에서 e로 시작하는 모든 파일과 디렉토리 표기

ls -aF 숨겨진 파일 포함 표기

cp -f 복사대상파일이 있으면 강제 삭제 후 복사

cp -a 모든 것을 복사

rm -f 삭제 여부 묻지 않고 바로 삭제

du 디렉토리 크기를 블록 단위로 표기

du -s 디렉토리 전체 크기
du -a 디렉토리내 모든 파일 크기

tar zcf
tar cvf 압축 명령

c 압축 시행
v 압축 시행 화면 표기
f 저장하라
r 다른 파일을 추가
x 압축 해제
z gzip과 관련 압축이나 해제를 한번에 함
t 내용을 확인
d 해당 파일 시스템간 차이점 확인

gzip 압축 명령

chmod 허가 사항 변경
--- 0
--x 1
-w- 2
-wx 3
r-- 4
r-x 5
rw- 6
rwx 7

umask 현재 허가상태 확인 또는 설정

cat 필 터 명령

cat -n 파일 앞에  라인 번호 표기

cat efile > trash   -> efile 내용을 trash 파일로 출력

cat -n << final   -> final이라는 단어와 일치할 때까지 리눅스 명령어 수행

cat -n << final >message   -> final이라는 단어와 일치할 때까지 리눅스 명령어 수행하여 message 파일로 저장

head  파일 시작부터 10라인까지 출력

head -5 파일 시작부터 5라인까지 출력

tail 파일 끝부터 10라인까지 출력

wc 라인, 단어, 문자수 표기
wc -l  라인
wc -w 단어
wc -c 문자

sort 정렬

nl 출력시 라인 붙여서 표시
nl -bp 문자열에 일치하는 라인만 번호 표시 nl -bpshadow efile


확장자가 tar.gz이면 tar zxvf
확장자가 tar.bz이면 tar xvfj
확장자가  .tar 이면   tar xvf
확장자가  .zip 이면   unzip


'초보의 아웅다웅 설계하기 > Ubuntu' 카테고리의 다른 글

RSA, AES, ARIA, SHA256 암호 예제 C  (0) 2016.05.23
Ubuntu - Mount  (0) 2011.03.23
Ubuntu - Vi 편집기  (0) 2011.03.22
Ubuntu - 컴파일  (0) 2011.03.21
Android - Ubuntu 명령어  (0) 2011.03.14
Android - Samba to Window  (0) 2011.03.06
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2011.03.06 21:32
http://realpc.tistory.com/40
http://realizm.tistory.com/36


sudo apt-get update
sudo apt-get install samba smbfs
mkdir sambastore
chmod 777 ~/sambastore/
ls -l
sudo cp /etc/samba/smb.conf /etc/samba/smb_o.conf
sudo rm -rf /etc/samba/smb.conf
sudo vi /etc/samba/smb.conf

/*-----------------------------------------
[global]
workgroup = WORKGROUP
encrypt passwords = yes
server string = Samba-store
security = share

dos charset = CP949
display charset = UTF8
unix charset = UTF8

[saas]
comment = My Documents
path = /home/hk/sambastore
readonly = no
browsable = yes
guest ok = yes
public = yes
/*-----------------------------------------

sudo service smbd restart

'초보의 아웅다웅 설계하기 > Ubuntu' 카테고리의 다른 글

RSA, AES, ARIA, SHA256 암호 예제 C  (0) 2016.05.23
Ubuntu - Mount  (0) 2011.03.23
Ubuntu - Vi 편집기  (0) 2011.03.22
Ubuntu - 컴파일  (0) 2011.03.21
Android - Ubuntu 명령어  (0) 2011.03.14
Android - Samba to Window  (0) 2011.03.06
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요