본문 바로가기

Reversing24

[Reversing] (Assembly) 어셈블리프로그래밍 - 별찍기 리눅스환경에서 실행됩니다 nasm 컴파일러를 이용해 컴파일 할껍니다. sudo apt-get install nasm nasm -f elf64 파일명.asm -o 파일명.o #64bit 파일 nasm -f elf 파일명.asm -o 파일명.o#32bit 파일 ld 파일명.o -o 파일명 -lc-dynamic-linker /lib64/ld-linux-x86-64.so.2 (ld 파일은 되는걸로 골라서 쓰자. 저게 안될수도 있다.) 섹션 우리가 만들 ELF 파일 섹션헤더에는 많은 헤더가 있는데, .data, .text 섹션이 핵심이다. .text 는 우리가 작성한 코드가 컴파일되어 들어가고 .data 에는 초기화된 전역변수, .bss 에는 초기화되지 않은 전역변수 등이 들어간다. nasm 으로 코딩할 때, 전.. 2021. 5. 31.
[Reversing] gdb debugging, no-symbol debugging, 실행 하는 법 간단한 .c 파일을 예제로 설명하겠다. gcc 로 컴파일 한다. gdb 명령어 다른 블로그에 좋은글이 많으니까 여기서는 자주 쓰는 것만 조금 정리할게요 r (run) : 바이너리를 실행한다. break point 가 없으면 끝까지 실행되고 종료된다 c (continue) : r 로 시작한 다음, break point 에서 멈추면 그 다음부터는 c 로 실행해야 한다. r 누르면 재시작 b *[주소 or 함수이름] (breakpoint) : 지정한 주소에 break point 를 건다. b *0x401000 b *main b *main+34 주로 이런식으로 사용 info b : break point 리스트를 보여준다. del [숫자] : break point 리스트에 고유번호로 break point 를 없앨.. 2021. 4. 9.
[Reversing.kr] CSHARP 풀이 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 private static void MetMetMet(string sss) { byte[] bytes = Encoding.ASCII.GetBytes(Convert.ToBase64String(Encoding.ASCII.GetBytes(sss))); AssemblyName assemblyName = new AssemblyName("DynamicAssembly"); TypeBuilder typeBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderA.. 2021. 3. 20.
[Reversing.kr] (Reversing) AutoHotKey2 풀이 ReadMe 파일부터 확장자가 없다. 알맞게 실행되게 수정하라한다. 아무것도 안했는데 EXE corrupted 가 뜬다. DIE 로 열어보면, UPX 패킹되어있다고 한다. upx.exe -d 으로 간편하게 언팩한 다음 열어보자. (아이다로) CRC 체크하는 부분이다. 언패킹한 파일 0x448265 쯤에 bp 걸어서, 플래그 조작해 점프 이렇게 뜬다. 언패킹해서 실행하면 오류가 뜬다는 것을 까먹었다. 문제파일을 다시 다운받고 실행해보자 패킹된 후 , EXE currupt 가 출력되는 조건문 함수를 디버깅하면 이곳에서 걸린다. v23 != v11 ^0xAAAAAAAA 이어서 LABEL_25 (0 이 아닌값을 리턴) 으로 가서 currpt 가 걸린다. checksum 값을 계산한 값과 ebp-0x10 에 있는.. 2021. 2. 28.