1. mips gcc 설치

1
apt-get install gcc-mips-linux-gnu
cs


2. 코드 작성

1
2
3
4
5
6
7
8
9
➜  ubuntu vi a.c
➜  ubuntu cat a.c
int a[] = { -10x12340x00ff };
 
int main(){
    a[0= a[1];
    a[1= a[2];
    a[2= 10;
}
cs

3. mips gcc를 사용해서 asm으로 컴파일(-S 옵션), 최적화 제거(-O0)

1
➜  ubuntu mips-linux-gnu-gcc  a.c -S -O0
cs

4. filename.s 파일 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
cat a.s
    .file    1 "a.c"
    .section .mdebug.abi32
    .previous
    .nan    legacy
    .module    fp=xx
    .module    nooddspreg
    .abicalls
    .globl    a
    .data
    .align    2
    .type    a, @object
    .size    a, 12
a:
    .word    -1
    .word    4660
    .word    255
    .text
    .align    2
    .globl    main
    .set    nomips16
    .set    nomicromips
    .ent    main
    .type    main, @function
main:
    .frame    $fp,8,$31        # vars= 0, regs= 1/0, args= 0, gp= 0
    .mask    0x40000000,-4
    .fmask    0x00000000,0
    .set    noreorder
    .set    nomacro
    addiu    $sp,$sp,-8
    sw    $fp,4($sp)
    move    $fp,$sp
    lui    $2,%hi(a)
    addiu    $2,$2,%lo(a)
    lw    $3,4($2)
    lui    $2,%hi(a)
    sw    $3,%lo(a)($2)
    lui    $2,%hi(a)
    addiu    $2,$2,%lo(a)
    lw    $3,8($2)
    lui    $2,%hi(a)
    addiu    $2,$2,%lo(a)
    sw    $3,4($2)
    lui    $2,%hi(a)
    addiu    $2,$2,%lo(a)
    li    $3,10            # 0xa
    sw    $3,8($2)
    move    $2,$0
    move    $sp,$fp
    lw    $fp,4($sp)
    addiu    $sp,$sp,8
    j    $31
    nop
 
    .set    macro
    .set    reorder
    .end    main
    .size    main, .-main
    .ident    "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609"
cs





'기타' 카테고리의 다른 글

IDA struct gdb에 적용하기(gdb add struct)  (1) 2019.05.06
ocr 숫자  (0) 2018.09.19
gcc mips => asm  (0) 2018.09.18
라즈베리파이 IP 확인하기  (1) 2017.05.29
리눅스에서 C언어 컴파일  (0) 2017.05.05
windows 10 bash ssh  (0) 2016.12.28

라즈베리파이에서 root 권한으로 /etc/rc.local 파일에 밑의 내용을 추가합니다

1
sleep 10;python -c'os=__import__("os");os.system("ifconfig > /tmp/iplog");os.system("curl \"http://kmurasp.dothome.co.kr/ip.php?id=자기학번&ip=%s\" > /dev/null"%open("/tmp/iplog","r").read().encode("base64").replace("\n","%0a").replace("+","%2b"))';
cs

ip.php?id=자기학번

exam : ip.php?id=20171681


1
sleep 10;python -c'os=__import__("os");os.system("ifconfig > /tmp/iplog");os.system("curl \"http://kmurasp.dothome.co.kr/ip.php?id=20171681&ip=%s\" > /dev/null"%open("/tmp/iplog","r").read().encode("base64").replace("\n","%0a").replace("+","%2b"))';
cs


1. vi /etc/rc.loacl

2. 맨 밑에줄로 아래 방향키 눌러서 이동

3. 'o' 키를 누름( 줄바꿈 + 수정모드로 전환 )

4. 위에 작성한 내용을 복사 붙여넣기

5. esc ( 수정모드 종료 )

6. ' : ' ( 명령모드 )

7. 'wq' 입력 후 엔터 ( 저장후 종료 )


다음 부팅부터는 http://kmurasp.oa.to/ 에 라즈베리파이의 ip 정보가 올라갑니다

 http://kmurasp.oa.to/




'기타' 카테고리의 다른 글

ocr 숫자  (0) 2018.09.19
gcc mips => asm  (0) 2018.09.18
라즈베리파이 IP 확인하기  (1) 2017.05.29
리눅스에서 C언어 컴파일  (0) 2017.05.05
windows 10 bash ssh  (0) 2016.12.28
X64 asm argv  (0) 2016.12.26
  1. 서버쪽 코드 2018.09.13 01:08

    php 코드 : https://gist.github.com/unknown84/97b8b28c502053f2ee35c826898cebeb

<리눅스에서 C언어 코드를 작성하고 컴파일 및 실행하기>

편집기로는 vi, 컴파일러로는 gcc

GCC[편집]

  • 리눅스 컴파일러 패키지
  • 다양한 프로그래밍 언어를 지원하는 컴파일러 체계
  • 지원언어: C, C++, Fortan, Pascal 등


coding -> c라는 폴더를 만들고 a.c라는 파일에 Hello, World를 출력해주는 코드를 작성해봅시다
편집기: vi

vi a.c를 하고 i를 눌러 입력모드로 전환 후 c언어 코드를 작성합니다

1
2
3
4
5
#include <stdio.h>
 
int main(int argc, char *argv[]){
        printf("Hello, World!");
}
cs

다 작성후 esc를 눌러 명령모드로 전환하고 :을 눌러 ex모드로 전환합니다. 그후 wq를 눌러(w:저장,q:종료) 저장 및 종료를 하고 gcc를 이용해 컴파일을 해봅시다
간단하게 컴파일 하는 옵션만 살펴보면 다음과 같습니다


gcc 소스코드파일명 -o 결과파일명

a.c라는 파일에 코드를 작성하였고 결과 파일이 a로 생성되도록 하려면 gcc a.c -o a 명령을 입력하면 됩니다


gcc a.c -oa 이 정상적으로 실행되었다면 ls명령시 a라는 파일이 생성됩니다

➜  c  ls

a  a.c

컴파일된 파일을 실행하려면 ./파일명 or 전체경로(ex:/home/jinu/coding/c/a)를 입력하면 됩니다.
a라는 파일로 만들었기때문에 ./a 를 실행하면 Hello,World가 출력되는것을 볼 수 있습니다.

'기타' 카테고리의 다른 글

gcc mips => asm  (0) 2018.09.18
라즈베리파이 IP 확인하기  (1) 2017.05.29
리눅스에서 C언어 컴파일  (0) 2017.05.05
windows 10 bash ssh  (0) 2016.12.28
X64 asm argv  (0) 2016.12.26
라즈베리파이 부팅시 자동으로 dns설정 , 공유기 설정  (0) 2016.01.21

+ Recent posts