본문 바로가기

전체 글

(171)
[Codegate final 2018] G0Crack 코드게이트 본선 대회장에서 가장 먼저 풀었던 첫번째 리버싱 문제 입니다 ㅎㅎ 제목으로 볼 수 있듯이 문제는 go 언어로 만들어진 바이너리 파일 입니다. IDA로 보면 일단 주요 함수는 main과, checkinput, checkValid, printFlag, error, init 등 이 있습니다. 먼저 main 에서 메뉴창을 출력하고 입력을 받은 후에 바로 checkInput 함수를 호출 함으로써 입력값을 확인하게 됩니다. 위 코드는 checkInput 함수의 모습인데 &1 연산을 통해 입력 길이가 홀수 인지 확인합니다.후에 표현할 수 있는 acsii table 33~126 (띄어쓰기 제외) 값인지 확인한 뒤에 checkValid함수을 호출해 유효한 입력값인지 확인 합니다. 이제 checkValid 함수..
[Codegate final 2018] betting 전형적인 버퍼오버플로우 문제입니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394int __cdecl main(int argc, const char **argv, const char **envp){ unsigned int v3; // eax unsigned int v4; // eax unsigned int v6; // [rsp+4h] [rbp-6Ch] int v7; // [rsp+8h] [rbp-68h] unsigned int v8;..
Peview 패치 Peview 쓰다가 불편한 점이 생겨서 패치를 했다.먼저 불편한 점 위 사진과 같이 PEview 를 켜놓고 hexeditor나 비슷한 프로그램으로 값 변경이 안된다..전에 프로젝트 개발할때 비슷한 경험이 있었는데 그때 이유가 파일 읽을때 only read로 읽어서 안됐었다.그래서 혹시 PEview에서 파일 open할때 only read로 읽나 싶어서 ollydbg로 까봤다! 파일 함수들을 보면 api 함수가 많다 전에 코드엔진에서 풀었던 문제들 보면 웬만하면 다 api 함수들을 사용했었는데 파일 읽을때 CreateFile 함수를 썼었다.그래서 찾아봤더니 위와 같이 존재하였다 역시ㅎ FILE_SHARE_READ 다. 이 부분을 FILE_SHARE_READ | FILE_SHARE_WRITE 둘다 되게 바꿔주..
[Codegate 2017] Goversing Go 언어로 만들어진 바이너리다.사용자 함수를보면 main_main, main_print_menu, main_Login, main_id_check, main_pw_check, main_id_pw_check, main_Print_FLAG, main_init 등이 있다.여기서 중요한 부분은 Print FLAG, 와 main_id_pw_check 이다.login을 하고 print flag를 선택하면 id_pw를 check 한 후에 id 와 pw 루틴이 해당 함수와 일치하면 플래그를 뿜는다.최근에 hexray를 자제하고 어셈이랑 좀 익숙해지고 친숙해지려고 어셈으로만 분석을 시작했다.사실 goversing 자체 바이너리는 go언어로 만들어진 바이너리가 그런지 hexray가 안되서 어차피 어셈으로 분석해야한다 ㅋㅋ..
[xcz.kr] chaos 보호되어 있는 글입니다.
[angstromctf 2017] Product Key [angstromctf 2017] Product Key - Re 200pt문제 내용을 보면 이름이 Artemis Tosini 일때와 이메일이 artemis.tosini@example.com 일때의 key를 구하라고 한다. [source]12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412..
Arm, mips, ppc등 cross compile and excution gcc compile 가능한 아키텍처 목록입니다 저는 그냥 multilib 만 깔아서 사용하였습니다. 명령어sudo apt-get install gcc-7-multilib-arm-linux-gnueabi -y;sudo apt-get install gcc-7-multilib-arm-linux-gnueabihf -y;sudo apt-get install gcc-7-multilib-mips64el-linux-gnuabi64 -y;sudo apt-get install gcc-7-multilib-mips64-linux-gnuabi64 -y;sudo apt-get install gcc-7-multilib-mipsel-linux-gnu -y;sudo apt-get install gcc-7-multilib-mips-l..
python ror, rol source 123456789101112def ROL(data, shift, size=32): shift %= size remains = data >> (size - shift) body = (data