command1 = f'objdump -M intel -d Binary{stage}'.split(' ')
command2 = 'grep -A30 <main>'.split(' ')

main_parse = subprocess.Popen(command1,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
obj_parse = subprocess.Popen(command2, stdin=main_parse.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
main_parse.stdout.close()

output = obj_parse.communicate()[0].decode().split('\n')[4]
buf_size = int(output.split(',')[1].strip(),16)

main_parse.kill()
obj_parse.kill()

'나 보려고 만든거' 카테고리의 다른 글

서브 도메인 설정(Apache2)  (0) 2021.07.21
Docker libc 가져오는법 정리  (0) 2021.07.19
방학동안 해야할거  (4) 2021.06.20
녹스, VMware, WSL2 hyper-v 끄고 키기  (0) 2021.05.20
Linux Named PIPE (FIFO)  (0) 2021.03.25

- hosting server : https://fun25.co.kr

- domain : https://hosting.kr

 

우선 서버는 http://sung.pw 를 사용중이다.

 

hosting.kr에서 DNS 세팅

 

fun25에서 1차 도메인과 서브 도메인도 지정해준다. 그래야지 default port를 사용할 수 있다. fun25는 좀 특이하게 내부아이피 이용으로 프락시서버 등록이랑 포트포워딩 자동화해놔서 ssh 접속할 때도 포트를 22가 아니라 외부포트를 지정해서 접속한다 ㅋㅋ;

 

fun25 세팅

 

리버스 프록시로 ctfd는 8000포트를 이용해서 ctf.sung.pw로 서브도메인을 사용하게끔하면 된다.

그리고 CustomLog를 설정할 수 있다. 이게 뭐냐면 ctf.sung.pw에서 발생하는 로그가 /var/log/apache2/access.log 경로에 작성되지 않고 ctf_log/access.log에 로그가 남게된다. 이건 구분할 수 있어서 유용하게 사용할 수 있고 좋은 점 같다.

그래서 $ tail -f /var/log/apache2/access.log로 확인해보면 sung.pw에서 발생하는 로그만 남게된다!

 

a2enmod proxy

a2enmod proxy_http

a2ensite 도메인이름(ex: blog.sung.pw)

systemctl reload apache2.service

 

 

그래서 지금은 구분해서 사용중ㅎㅎ;

 

Reference

https://www.tuwlab.com/ece/5863

https://writingdeveloper.blog/278

'나 보려고 만든거' 카테고리의 다른 글

Python subprocess PIPE로 연결하기  (0) 2023.05.08
Docker libc 가져오는법 정리  (0) 2021.07.19
방학동안 해야할거  (4) 2021.06.20
녹스, VMware, WSL2 hyper-v 끄고 키기  (0) 2021.05.20
Linux Named PIPE (FIFO)  (0) 2021.03.25

문제 만들다가 Libc 필요할 때 가져와야되는데 자주 쓸거같아서 정리해둠

앞으론 복붙해야지 크크

 

$ docker-compose up -d --build

$ docker ps -a

$ docker exec -it [CONTAINER ID] /bin/bash (docker attach)

$ apt install -y openssh-client openssh-server (scp 설치를 위해)

$ scp -P 11601 /lib/x86_64-linux-gnu/libc.so.6 root@sung.pw:/root/libc (Docker Container에서 서버로 전송)

32bit : /lib/i386-linux-gnu/libc.so.6

$ scp -P 11601 root@sung.pw:/root/libc/libc.so.6 . (서버에서 현재 디렉토리로 전송)

 

'나 보려고 만든거' 카테고리의 다른 글

Python subprocess PIPE로 연결하기  (0) 2023.05.08
서브 도메인 설정(Apache2)  (0) 2021.07.21
방학동안 해야할거  (4) 2021.06.20
녹스, VMware, WSL2 hyper-v 끄고 키기  (0) 2021.05.20
Linux Named PIPE (FIFO)  (0) 2021.03.25

- 선린인터넷고 소수전공 시스템해킹 강의준비
- 랩실 일
- Node.js 책 다 보기
- 디지털포렌식챌린지 풀기
- 백준 알골즘 풀기

- Django 공부하기

- 대회 이것저것..

할 수 잇겟지.?

'나 보려고 만든거' 카테고리의 다른 글

서브 도메인 설정(Apache2)  (0) 2021.07.21
Docker libc 가져오는법 정리  (0) 2021.07.19
녹스, VMware, WSL2 hyper-v 끄고 키기  (0) 2021.05.20
Linux Named PIPE (FIFO)  (0) 2021.03.25
c++ Explicit & Mutable  (0) 2021.01.06

bcdedit /set hypervisorlaunchtype auto 키기 -> WSL2 사용할 때

bcdedit /set hypervisorlaunchtype off 끄기 -> 녹스 사용할 때 

'나 보려고 만든거' 카테고리의 다른 글

Docker libc 가져오는법 정리  (0) 2021.07.19
방학동안 해야할거  (4) 2021.06.20
Linux Named PIPE (FIFO)  (0) 2021.03.25
c++ Explicit & Mutable  (0) 2021.01.06
c++ constructor member initializer list  (0) 2021.01.05
#include <sys/types.h>
#include <sys/stat.h>
int mkfifo ( const char *pathname, mode_t mode );

mkfifo 는 특수 파일인 FIFO 파일을 만들기 위해서 사용되며, pathname 이름을 가지며 mode 의 권한을 가지는 FIFO 파일을 만들어낸다. 주로 IPC 용도로 사용된다.

FIFO 파일은 pipe 와 매우 비슷하지만, pipe 와 달리 이름있는 파일을 통해서 통신을 할수 있도록 해준다는 점이 다르다. 그러므로 관계없는 프로세스들이라고 할지라도 FIFO 파일이름만 알면 통신이 가능하도록 만들수 있다.

일단 FIFO 파일이 만들어지면 open, write, read 등의 표준 함수를 이용해서 보통의 파일처럼 접근이 가능하다.

FIFO 는 First In First Out 의 뜻을가진다. 먼저들어온 데이타가 먼저 나가는 queue 방식의 입/출력을 지원한다.

 

ls -al 했을때 맨앞에 p로 시작하는 파일 -> PIPE파일

 

수신

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <string.h>

#define  FIFO_FILE   "/tmp/fifo"
#define  BUFF_SIZE   1024

int main( void)
{
    int   counter = 0;
    int   fd;
    char  buff[BUFF_SIZE];

    if(mkfifo(FIFO_FILE, 0666) == -1)
    {
        perror( "mkfifo() failed\n");
        return -1;
    }

    if (( fd = open( FIFO_FILE, O_RDWR)) == -1)
    {
        perror( "open() failed\n");
        return -2;
    }
    printf("FD=%d\n", fd);

    while( 1 )
    {
        memset( buff, 0x00, BUFF_SIZE);
        read( fd, buff, BUFF_SIZE);
        printf( "%d: %s\n", counter++, buff);
    }
    close(fd);
    return 0;
}

 

송신

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <string.h>

int main(){
        int fd = open("/tmp/fifo",O_WRONLY);
        char *data = "AAAAAAiqtgjvamgoxp";
        printf("fd = %d\n",fd);
        write(fd,data,strlen(data));
        close(fd);
        return 0;
}

'나 보려고 만든거' 카테고리의 다른 글

방학동안 해야할거  (4) 2021.06.20
녹스, VMware, WSL2 hyper-v 끄고 키기  (0) 2021.05.20
c++ Explicit & Mutable  (0) 2021.01.06
c++ constructor member initializer list  (0) 2021.01.05
iOS WebView Hook  (0) 2020.10.28

explicit : 명백한, 명시적

mutable : 변하는, 변하기 쉬운

 

explicit으로 생성자가 복사 생성자의 형태로 호출 x

class내에서 explict CLASS(int a); 선언

ex) Class obj = 5; -> X

ex) Class obj(5) -> O

 

mutable

#include <iostream>

class A {
private:
	mutable int t; // mutable을 선언해서 const함수 안에서 멤버변수의 값을 변경할 수 있음
    // mutable을 선언안하면 DomSomeThing에서 오류뜸
public:
	A(int a);
	void DoSomeThing(int x) const;
	void print() const;
};

A::A(int a) : t(a) {}

void A::DoSomeThing(int x) const {
	t = x; // if modify t? in const function -> using mutable variable!
}

void A::print() const {
	std::cout << t << std::endl;
}

int main() {
	A a(10);
	a.DoSomeThing(11);
	a.print();
}

 

 

 

'나 보려고 만든거' 카테고리의 다른 글

녹스, VMware, WSL2 hyper-v 끄고 키기  (0) 2021.05.20
Linux Named PIPE (FIFO)  (0) 2021.03.25
c++ constructor member initializer list  (0) 2021.01.05
iOS WebView Hook  (0) 2020.10.28
iOS Hooking  (0) 2020.10.25

생성자 멤버 초기화 리스트

- Class::Classs(var1 var2) : 멤버변수1(var1), 멤버변수2(var2) {}

 

class 사용할때 생성자 호출과 동시에 멤버 변수 초기화 됨

 

'나 보려고 만든거' 카테고리의 다른 글

Linux Named PIPE (FIFO)  (0) 2021.03.25
c++ Explicit & Mutable  (0) 2021.01.06
iOS WebView Hook  (0) 2020.10.28
iOS Hooking  (0) 2020.10.25
iOS 탈옥(JailBreak) 우회  (0) 2020.10.22

+ Recent posts