0x02 Reverse Engineer(126)
-
공개용 Writeup PE Password
문제의도 PE PASSWORD Protector에 대해 이해를 하고 있는가? 패커가 언패킹이 되는 과정을 이해하고 있는가? 바이너리 열고 인증까지 소요시간 2017.12.01 ~ 2018.06.06 풀고 난 후 .. 패커를 직접 만들어 테스트를 해보고 싶어 졌다. 어셈블리어 코딩이 더 재밌어졌다. 보이는 것만 쫓아가다가는 때로는 진전이 없다. 풀기 위해 공부 한 것 PE Password Protector Simple Writeup Original과 Packed의 EntryPoint가 왜 달라져있는지를 생각해보아야 한다. 문제에서 패스워드를 입력하는 Dialog가 있다고 무조건 맹신하지 말자. breakpoint를 걸지 않고 Trace하면 Win32API의 특성에 의해 Message 큐 루틴을 벗어날 수 ..
2018.06.06 -
PEPassword
보호되어 있는 글입니다.
2018.06.06 -
공개용 CSharp Writeup
원리: ctor 즉 생성자 Form1에서 동적으로 MetMet 메서드를 호출하게 되는데 해당 메서드는 암호화 되어 있다가 프로그램이 실행 되면 복호화가 되어 망가져 있던 MetMet 메서드를 올바르게 정의하여 프로그램이 정상적으로 수행되게 된다. 출제 의도:C#의 생성자의 기능에 대해 잘 알고 있는지 ? 문제 풀기 위해 구글링 해본 것들 .ctor partial class IL ( Intermediate Language ) IL Disassembly using 지시어
2018.06.04 -
CSharp
보호되어 있는 글입니다.
2018.06.04 -
SimpleVM 풀기 전 공부 1
SimpleVM에서 EntryPoint를 복구하는 것이 첫 번째 시나리오 였기 때문에 EntryPoint를 복구하기 위해 삽질을 해본다. 우선, EntryPoint에 대해 복습을 해본다. EntryPoint는 제어가 운영체제에서 컴퓨터 프로그램으로 이동하는 것이라고 위키백과에 적혀있는데 쉽게 말하면 프로그램의 시작 지점이라고 생각하면 된다. 메인함수가 아니라 런타임 라이브러리의 한 부분이다. 엔트리포인트를 거쳐 쭉 내려가다 보면, 메인 함수를 만날 수 있다. 메인 함수에 접근하기 전 과정은 생략한다. 난 오늘은 PE가 아닌 ELF에 대해 공부하기 위해 이 글을 쓰고 있다. 이때까지 리버싱이나 포너블을 접할 때 ELF의 구조는 모르고 단순히 어셈블리로만 분석을 하다보니 이러한 문제를 만났을 때 멘탈이 한 ..
2018.06.01 -
SimpleVM
Adventure 풀다가 기본 실력이 부족한 것 같아서 SimpleVM으로 넘어왔다. 근데 이 놈도 만만치 않다. 시작하면 Access Deny가 뜨기 때문이다.. ㅠㅠ [바이너리 동적실행 결과] IDA로 정적분석을 시도하였다.[바이너리 IDA 실행 결과] 처음에 이 경고를 그냥 무시 때렸는데 반성한다. 이제부터 뜨는 경고는 왠만하면 무시하지 않아야겠다고 다짐해본다. 경고를 해석하면 해당 프로그램의 엔트리포인트가 잘못되었다고 한다. 엔트리포인트는 프로그램의 시작지점을 의미한다. PE에서는 pe view를 통해 바로 알 수 있는데 ELF는 어떻게 하는지 몰라서 공부를 진행해본다. 정리본은 다른 블로그에 흠 우선 FileSize변경은 아무 일도 일어나지 않았다.식 : (c023dc-c01000) = 13dc..
2018.06.01