반응형
반응형
반응형

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 으로 열면 된다.






반응형
반응형

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}


반응형

'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