Hacking

    PE DotNet - Basic Anti-Debug

    .NET 안티디버깅 문제였는데 나는 언인텐으로 연산으로 풀었다. dnspy로 까보며면 이렇게 나오는데 Form1_Load에서 안티 디버깅을 하는것 같았다. 그래도 일단 디버깅 해보니까 bytes랑 key값은 영향을 안받는것 같아서 그냥 연산으로 flag를 뽑았다. l = '''0x07 0x6F 0x66 0x54 0x12 0x7B 0x70 0x37 0x6D 0x44 0x06 0x00 0x1E 0x1D 0x06 0x2B 0x0D 0x72 0x5F 0x58 0x38 0x21 0x5F 0x50 0x38''' l = l.split() print(l) key = 'I_Gu3$$_Y0u_Ju5t_Fl4gg3d_!!!' flag = '' for i in range(25): flag+=chr(eval(l[i]) ^ or..

    ELF ARM - Basic Crackme

    ARM분석은 처음해봤는데 베이직이라 그런지 86, x64랑 딱히 다른건 없었다. 그냥 바이너리를 실행시키는데 환경설정이 조금 필요한 정도? 그냥 IDA로 까본다. 메인 로직인것 같다. s가 인풋인것 같고 v5가 0이 되는 값을 찾으면 되는것 같다. 위의 if ( status != 6 )에서 len이 6이 아니면 종료되므로 s[6]은 0이다. s[3]^0x72가 0이 되려면 자기 자신과 0x72랑 xor 해야하므로 s[3]은 0x72가 되어야 한다. 이제 s[3] = 0x72인걸로 퍼즐을 맞추면 된다. if ( s[3] + 1 != *s )이므로 s[0] = 0x73 if ( *s != s[5] ) 이므로 s[5] = 0x73 if ( s[2] + 4 != s[5] ) 이므로 s[2] = 0x6f if (..

    REV(Cracking) - ELF x86 - 0 protection, ELF x86 - Basic, PE DotNet - 0 protection, ELF x86 - Fake Instructions

    오늘부터 쉬운문제라도 3일에 한문제씩은 풀고 Write up을 블로그에 작성해보려고 한다. 물론 언제는 빼먹을수도 있다. Reversing.kr문제들은 너무 매워서 일단 Root-me문제들로 해보려고 한다. 근데 Root-me도 몇문제 풀어보니까 쉬운것 같지는 않다,, ELF x86 - 0 protection 걍 IDA로 까면 보인다. FLAG = 123456789 ELF x86 - Basic 이것도 걍 IDA로 까면 보인다. FLAG = 987654321 PE DotNet - 0 protection 이름부터 DotNet인데 dnspy로 까봤다. 패스워드가 틀리면 이런걸 띄우는데 그냥 이 문자열 검색해서 조건문을 보면 flag가 있다. FLAG = DotNetOP ELF x86 - Fake Instruc..

    YISF 본선 후기 겸 Write up

    어제 YISF가 끝났는데 나는 2문제를 풀면서 10위에 머물렀다. 그래도 한문제도 못풀줄 알았는데 리버싱과 웹에서 한문제씩이 엄청 쉽게 나오면서 몇문제는 풀수 있었다. 대회가 10시 시작인데 9시까지 순천향대학교로 가야되서 5시 50분에 나와서 7시 12분 KTX를 타고 갔다. 패턴이 꼬여서 2시에 일어나는 바람에 대회 12시부터 꾸벅꾸벅 졸았던것 같다;; ELF와 웹 php문제를 풀었는데 리버싱의 Path문제를 거의 6시간 잡고 있었다. 힌트에 어그로가 너무 끌리는 바람에 시간을 너무 썼던것 같다. Path문제도 대회가 끝나고 풀긴 했다. 대충쓰는 Write up ELF 일단 이문제는 퍼블 따고싶어서 야매로 정연산을 짜지도 않고 pwntools로 바이너리를 가져와서 풀었다. IDA로 까보면 이게 메인 ..

    본선 전에 쓰는 YISF 예선 후기 겸 Write up

    지금 글을 쓰는 날짜는 2021-08-21 9시 11분으로 YISF(순천향대 정보보호 페스티벌?) 본선 하루 전이다. 원래 예선이 끝나고 바로 후기 겸 Write up을 쓰려고 했는데 귀찮아서 미루다 미루다 본선 하루 전에 쓰게 된다. 지금은 사이트가 닫혀있지만 어차피 나는 폰이나 웹은 못 건드렸기 때문에 지금 Write up을 써도 딱히 상관없을 것 같다.(이라고 생각했으나 생각해보니까 미스크도 NC를 쓴 문제가 2문제쯤 됐다;) 나는 미스크 6문제, 립싱 한 문제를 풀면서 예선 5위로 본선에 진출했다. 물론 미스크 한 문제는 마이크 체크이다ㅎ 서버가 닫혀서 정말 간략하게 Write up을 정리한다. [MISC] MIC Check 마이크 체크부터 개 꼴 받게 나왔다. 1. 본 대회는 _ _ _ 으로 진..

    복습겸 쓰는 리버싱 기초 Write UP

    제일 위의 4문제는 전 포스팅에서 풀었으니 다음문제들부터 차근차근 작성해봐야겠다 문제 수가 생각보다 많아서 두세개로 끊어서 작성하게 될 것 같다. end or null? binary : whatisend / linux / 64bit 로직 자체가 굉장히 간단하다. 그냥 리스트 가져와서 xor역연산 해줬다. v6 = [67, 95, 0, 48, 43, 28, 13, 58, 58, 11, 10, 59, 54, 26, 44, 37, 31, 23, 29, 48, 48, 29, 45, 49, 27, 25, 0, 83, 63] flag = '' for i in range(33,127): flag = chr(i) for j in range(29): flag+=chr(ord(flag[j])^v6[j]) print(fla..

    리버싱 2일차

    어제 윤리교육, 어셈에 대해 배웠고 오늘은 x96dbg 사용법, 문제풀이를 하였다 그냥 숨겨진 Flag를 찾으면 되는 문제이다. DIE로 뜯어보면 이렇게 나온다 x32dbg에서 문자열 찾기를 하면 flag가 나온다 마찬가지인 문제이다. 이거는 HxD로 뜯어면 Flag가 나온다 대충 보면 먼가를 입력받고 그걸 Flag랑 비교하는 것 같다. 일단 비교를 하려면 Flag가 어딘가에 있어야 하니까 어셈에서 if문인 cmp를 유심히 보면 될것 같다. 일단 인풋에서 f2를 눌러서 Break Point를 만들고 f9를 눌러 프로그램을 시작한다. 그후에 input이 나올때까지 f8을 눌러 넘긴다. 계속 넘기다보면 이렇게 Input을 입력하라고 나오는데 아무거나 입력한다. 그리고 쭉 f8을 넘기면서 보면 반복되는 부분이..

    Webhacking.kr - 56

    일단 아무거나 막 검색해보다가 ~을 검색했는데 이게 검색되서 subject가 필터링 되나 했는데 hi를 검색하니 admin이 검색되서 내용 필터링인걸 알게 되었다. 그래서 파이썬으로 값을 계속 넣어서 admin이라는 값이 나오는 문자열만 모으면 될것 같다. import requests url = "https://webhacking.kr/challenge/web-33/index.php" cookie = {'PHPSESSID':'itbee38p8aae7p17kvchcr644b'} #a = requests.get(url, cookies=cookie) flag= 'FLAG{' for i in range(1000): for j in range(32, 128): if chr(j)=='%': continue sear..