728x90
반응형
728x90
반응형
728x90
반응형

keypad CrackMe

 

Simple Reverse Engineering Challenge.

 

 

키 값을 찾아내야 하는 리버싱 문제다.

 

 

 

ollydbg로 열면, Wrong 문자열을 확인할 수 있다.

 

해당 문자열이 사용되는 부분의 주소는 0x6F17DF다.

 

 

IDA에서 0x4017DF 주소 영역이 포함될 것 같은 함수 sub_401740을 찾아서 코드를 확인 할 수 있다.

 

 

 

 

 

ida 코드상 46행에 해당하는 부분 0x4017CB  --> 올리디버거 부분 0x6F17CB, 0x6F1701, 0x6F1707에

breakpoint를 걸어서 변수 v6, v5에 어떠한 값이 들어가는지, 최종 값은 몇으로 나오는지를 확인을 했다.

 

입력은 1111로 했다.

 

 

v6에 해당하는 EAX에 1이 들어가 있다.

 

 

 

 

 

 

v5에 해당하는 EDI에 정수 10진수로 1111이 들어가 있으며, 바로 이전 코드에서 연산했던 -201527 * 1의 값이 eax에 들어가 있고, eax와 edi를 더한다.

 

 

 

 

더한 값을 195934910과 비교.

 

 

 

 

 

별 특별한 연산 없이 -201527*1 + 입력값 == 195934910 의 조건만 만족하면 된다는 것을 알 수 있다.

 

따라서 입력해야 할 값은 195934910 + 201527 = 196136437이 된다.

 

728x90
반응형

'WAR GAME > wargame.kr' 카테고리의 다른 글

Wargame.kr [crack crack crack it] 풀이  (0) 2020.01.06
Wargame.kr [lonely guys] 풀이  (0) 2020.01.06
Wargame.kr [ip log table] 풀이  (0) 2020.01.04
Wargame.kr [SimpleBoard] 풀이  (0) 2020.01.04
Wargame.kr [pyc decompile] 풀이  (0) 2020.01.04
728x90
반응형

root-me.org [CRACKING]

ELF - 0 protection 풀이


IDA로 까보면 된다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int __cdecl main(int argc, const char **argv, const char **envp)
{
  char *v3; // ST1C_4@1
  char *s1; // [sp+1Ch] [bp-Ch]@0
 
  puts("############################################################");
  puts("##        Bienvennue dans ce challenge de cracking        ##");
  puts("############################################################\n");
  printf("Veuillez entrer le mot de passe : ");
  v3 = (char *)getString(s1);
  if ( !strcmp(v3, "123456789") )
    printf("Bien joue, vous pouvez valider l'epreuve avec le pass : %s!\n""123456789");
  else
    puts("Dommage, essaye encore une fois.");
  return 0;
}
cs







ELF - x86 Basic


얘도 ida로 까보면 된다.






PE - 0 protection




얘도 아이다로 까서 문자열들을 찾은 뒤, 패스워드 검증 함수를 찾을 수 있다.



a2은 글자수, a1은 각 자리 문자값으로 보인다. dec2ascii





PE DotNet - 0 protection



JetBrains dotPeek 으로 열면 된다.






728x90
반응형
728x90
반응형

flag - 7 pt [writeup] 

Papa brought me a packed present! let's open it.


Download : http://pwnable.kr/bin/flag


This is reversing task. all you need is binary



리버싱 문제입니다.




exeinfope.exe 로 확인해 보면 upx로 패킹이 되어있다고 하네요.



분석을 위해서 언패킹을 진행합니다.


>>>>./upx -d ./flag

                       Ultimate Packer for eXecutables

                          Copyright (C) 1996 - 2017

UPX 3.94w       Markus Oberhumer, Laszlo Molnar & John Reiser   May 12th 2017


        File size         Ratio      Format      Name

   --------------------   ------   -----------   -----------

    883745 <-    335288   37.94%   linux/amd64   flag


Unpacked 1 file.



IDA로 깝니다.




strings들을 확인해보니 바로 플래그가 보이네요.




FLAG : UPX...? sounds like a delivery service :)

728x90
반응형

'WAR GAME > Pwnable.kr' 카테고리의 다른 글

pwnable.kr [random] 풀이  (0) 2018.02.26
pwnable.kr [passcode] 풀이  (0) 2018.02.26
pwnable.kr [bof] 풀이  (1) 2018.02.26
pwnable.kr [collision] 풀이  (0) 2018.02.25
pwnable.kr [fd] 풀이  (0) 2018.02.25
728x90
반응형

1. Welcome!!



flag : TWCTF{Welcome_To_TWCTF2017!!}





2. Rev Rev Rev


간단한 리버싱 문제다.




32bit ELF 파일이기 때문에 IDA 32bit로 열어보았다.




2개의 분기점을 통과한다. 피해야할 주소값과 가야할 주소값을 찾아서 angr을 이용해 풀었다.




exploit.py

1
2
3
4
5
6
7
8
9
10
11
12
13
import angr
 
 
def main():
= angr.Project("./rev",load_options={'auto_load_libs':False})
ex = p.factory.path_group()
ex.explore(find=0x804867c, avoid=(0x804860d0x804868e))
ex.run()
return ex.found[0].state.posix.dumps(0).split('\0')[0]
 
 
if __name__ == '__main__':
print (main())

cs






Flag : TWCTF{qpzisyDnbmboz76oglxpzYdk}


728x90
반응형

'CTF Write Up' 카테고리의 다른 글

[EKOPARTY CTF 2017] Malbolge  (1) 2017.09.17
CRC CTF 2017 Write-up  (0) 2017.09.13
[YISF CTF 2017 예선] For 100 , '프로젝트 유출'  (0) 2017.08.11
[YISF CTF 2017 예선] For 50 , '문제유출'  (0) 2017.08.11
[Bugs_Bunny CTF] Crypto-50  (0) 2017.07.31

+ Recent posts