Golang 구조체의 Field 열거하기 / Iterate through Fields of the Struct

구조체는 리스트에 비해서 명확하고 코드의 가독성을 높여주기에 애용하는 편이다. 또한 여러 타입의 변수를 하나에 묶어둘 수 있다는 것도 장점이다. 귀찮은 점은 list 나 array는 for문으로 대충 쭉 훑는게 가능한데 구조체는 그게 간단하지가 않다. 하지만 그렇다고 전체가 필요할 때 구조체의 필드명을 하나하나 말하고 있으면 코드가 길어지고 확장성이 떨어진다. 이번 Golang으로 하는 작업 중에 Field를 열거해 줄 일이 있었다. Golang은 깐깐해 보이면서도 Interface라는 상당히 유연한 시스템을 가지고 있다. 먼저 다음의 코드를 살펴보자 ...

December 2, 2021 · EBeb

CyberSecurityRumble : baby-flag-checker

요즘은 일을 하다보니 CTF에 참가하는 일이 줄었고 참가해도 주로 가벼운 문제만 쓰윽하고 나오는 것 같다.. 우선 소스코드가 주어진 초심자용 문제이다. ebeb@DESKTOP-44QI01G:/mnt/e/CTF/CyberSecurityRumble/baby_flag_checker$ ./chall Flag not found, contact challenge authors. 일단 바이너리를 실행해보았다. 저번 출제에서도 든 생각인데 가끔 이러면 더미플래그도 같이 제공해야하나 고민이다. ebeb@DESKTOP-44QI01G:/mnt/e/CTF/CyberSecurityRumble/baby_flag_checker$ nc challs.rumble.host 53921 Enter the flag: aaaaaaaaaaaaaaa Wrong flag: aaaaaaaaaaaaaaa 입력하면 로컬의 FLAG파일과 비교하는 전형적인 문제이다. 주로 조건문 돌파나 스택에서 정보를 꺼내는 문제로 나오는 타입이다. Enter the flag: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HACKER! 오버플로우를 내면 싫어한다 ㅋㅋㅋ ...

November 29, 2021 · EBeb

AWS Batch demo따라 구현해보기

이 포스트는 실시간으로 “Fetch & Run” 포스트를 따라하고 일부를 번역하며 작성한 글입니다. 해당 포스트 이후 AWS의 변경점들이 있어 진행방식이 다를 수 있습니다. 진행방식 변경에 따라 해당포스트 대로 진행하면 수많은 에러를 볼 수 있습니다… 해당 포스트를 따라하기 위해서는 AWS계정이 필요하며 비용이 발생할 수 있음을 알려드립니다. 이 포스트는 결과적으로 batch기능을 이용하여 Docker의 실행까지는 성공하지만 Credential제공문제로 실패합니다 라고 적었지****만 결국엔 원인을 찾아서 성공합니다 AWS Batch란 AWS Batch는 Batch방식의 프로그램 실행을 도와주기 위한 서비스입니다. Batch 처리에 필요한 유동적 계산 Capacity와 Job manager 를 제공합니다. ...

November 26, 2021 · EBeb

Golang으로 Redshift로 보낸 Query의 return값 받기

Golang으로 Redshift 접속 후 쿼리실행까지 생각해보니 저번에 글을 쓰고 생성만 보여주고 정작 중요한 보낸Query의 Return값을 받는 방법을 안 썼다는 것이 생각났다 지금은 저번 Quick Start코드와는 완전 다른 무언가가 되어있지만 Quick Start 의 코드로도 충분하니 Quick Start 에 적힌 코드를 참고해보자 주목해야 할 곳은 104번째 줄 116번째 줄 그리고 130번째 줄에 적혀있는 redshiftclient.ExecuteStatement redshiftclient.DescribeStatement redshiftclient.GetStatementResult 이 3종류의 함수이다. 우선 ExecuteStatement는 Redshift에 Query 의 실행을 요청한다. 이 쿼리에는 Redshift가 Id를 부여하여 관리한다. 다만 Query는 처리 시간이 필요하다. 이 처리 상태와 처리 이후 결과의 상태를 확인할 수 있는 것이 DescribeStatement이다. ...

November 22, 2021 · EBeb

WaniCTF – BabyHeap : Basic tcache poisoning

Pwn challenge at WaniCTF2021 Difficulty : Normal Github for src, file, solver, short solution Pwn challenge ‘diva’ at the same CTF requires heap overwrite to get arbitrary write access. I made this challenge to give hint for the diva. When I first learn about heap, what I needed was an environment to perform malloc, free and write freely on the heap and check how it changes. ( Since I couldn’t understand without real experiment ) ...

November 21, 2021 · EBeb

WaniCTF - BabyHeap : Basic tcache poisoning

Pwn challenge at WaniCTF2021 Difficulty : Normal Github for src, file, solver, short solution Pwn challenge ‘diva’ at the same CTF requires heap overwrite to get arbitrary write access. I made this challenge to give hint for the diva. When I first learn about heap, what I needed was an environment to perform malloc, free and write freely on the heap and check how it changes. ( Since I couldn’t understand without real experiment ) ...

November 21, 2021 · EBeb

데이터베이스 정규화 툴

이걸 알았으면 저저번 학기 DB과제가 참 쉬웠을텐데 이번에 실습하면서 알게 되었네요 솔직히 커지면 귀찮고 자신없고 했어도 한번 더 확인하고 싶잖아요 데이터베이스 정규화 툴 - Griffith University 텍스트 화면이 나오면 아래에 링크가 있다 Table의 Attribute 와 Functional Dependencies를 지정해주고 여기서 원하는 도구를 골라주시면 됩니다 위의 테이블 같은 경우에는 총 3개로 찢어졌네요

November 11, 2021 · EBeb

Lambda에서 Golang으로 AWS redshift API ( data API )

이 포스트는 AWS로는 잘못된 사용으로 사고를 치고 Go라고는 써본 적도 없는 제가 인턴으로 구르면서 던져진 과제를 해결하는 과정을 담은 포스트입니다. 포스트의 내용이 부적절 할 수 있음을 미리 말씀드립니다. 왜 Go? 회의중 : 아무튼 C++이나 자바는 쓰기에 문법이 그렇고 Python은 느리다 -> Go를 쓰기로 했습니다 솔직한 감상으로는 어차피 쿼리를 보낸 후에 처리하는 작업은 redshift에서 해주는데 쿼리를 구성해서 보내줄 뿐인 프로그램의 처리속도가 과연 redshift의 처리속도에 비해 어느정도의 bottleneck이 되는가에 대해서는 회의적이네요 절대 Python이 편해서 투덜거리는게 아니에요 아무튼 그래요 ...

November 11, 2021 · EBeb

SublimeText3로 LaTeX환경구축

갑자기 레포트를 LaTeX로 제출하라는 말이 나왔다.. 일단 프로그래밍 환경은 전부 sublimetex로 작업하기에 라텍스도 SublimeText로 치고 싶어졌다. 그러나 문제는Tex가 처음이라 컴파일하고 결과를 확인해가면서 치고 싶고 또 여러 문법 보조장치가 있으면 좋겠다는 점이였다. 기본적으로 이 블로그 의 글을 참고하여 작업하였다. TexLive설치 먼저 TexLive의 설치이다. 빌드해주고 여러가지 해주는 프로그램 같다. 다만 윈도우10기준 설치시에 보안경고가 뜬다. 찾아보니 다들 그냥 무시하고 설치하라하니 그냥 설치했다 추가정보 -> 실행 TexLive 다운로드 페이지 기본적으로 인터넷설치로가서 Installer를 사용하여 다운로드했다. 사용 TexLive다운로드URL ...

October 26, 2021 · EBeb

우분투 에러 The repository does not have a Release file.

보통 docker를 쓸 일이 있으면 VM에서 하는데 이번에 WSL로 써야해서 WSL에 도커를 설치해야했습니다 근데 도커 CLI 설치과정이 참 번거롭기 때문에 코드를 긁어서 복붙하다가 실수를 했네요 무지성 복붙이 가져온 참사… The repository ‘https://download.docker.com/linux/ubuntu (lsb_release Release’ does not have a Release file. URL을 잘못등록했다 ㅜㅜ 문제는 이게 apt update를 해도 계속 에러를 내면서 거슬리게 하는데 sudo vim /etc/apt/sources.list 로 열어서 가장 아래에 해당 URL을 삭제하여 해결했다 얌전히 Docker Desktop을 깔러 가야겠다 ...

October 14, 2021 · EBeb