본문 바로가기

WEP 암호화 WEP 전하고자 하는 데이터,메시지 M 체크섬 WEP의 경우 CRC32(M) 해서 뒤에 덧 붙임 이렇게 붙인 값이 평문 메시지 P이다. 암호화 하기 위한 값을 정해야 한다. 24bits 무작위의 IV(initialization Vector)를 생성해서 WEP키 앞에 붙여서 시드 값 S를 만든다. 이 S값으로 RC4 의 키스트림의 만들어서 전송한다. 실제 적으로는, 평문 메시지 P에 RC4로 만든 키스트림을 XOR한 암호문 C의 앞에 앞서 사용하였던, IV를 붙여서 전송하게 된다. 복호화는 반대의 순서로 하는 것이고, 이것이 WEP 방식의 암호화 이다. RC4 스트림 암호 방식 RC4는 키 스케줄링 알고리즘(KSA), 과 가상 랜덤 생성 알고리즘(PRGA)으로 구성된다. 256개의 배열인 S배열을 0-25.. 더보기
CodeEngn Basic RCE 20 18Byte를 읽는 함수임으로, 18Byte짜리의 파일이 필요하다. 이 부분이 시리얼키 확인 부분입니다. 분석 요약 키 파일의 바이트씩 읽음 41+n 과 XOR 그 값이 NULL이라면 끝냄 그 값을 DS:[4020F9]에 더해서 넣음, n++ DS:[4020F9]의 값과 키 데이터의 마지막 4Byte를 Little-Endian으로 읽어서 비교한다. 같다면, 크랙완료! 이렇게 다 풀고 나면, 18자중 사용하지 않은 Byte가 생기게 되는데, 그렇기 때문에, 답이 여러 개가 나올 수 있다. 그래서 CodeEngn.com에서 인증하기가 까다로운데, 질문자의 의도를 생각해 보자. 답이 금방나온다. :) 다 풀고 나면 나오는 그림 근데, , 왜 "오빠 짱인데?!" 일까? 리버싱은 남자의 학문인 걸까? ㅋㅋㅋ 의문.. 더보기
CodeEngn Basic RCE 19 AutoItCompile로 된 이 파일은 자동적으로 IsDebuggerPresent 함수로 보호가 되어있다. IsDebuggerPresent 의 리턴값을 0으로 수정하여, 탐지를 피하자. (3번째 줄을 Xor eax,eax 로 수정) 문제가 몇 밀리세컨드후에 종료되나 이었으므로 관련되어 보이는 함수에 브레이크포인트를 걸겠다. 모든 timeGetTime 과 스크릿샷에는 없지만 Sleep함수에 브레이크 포인트를 걸었다. 이 곳에서 멈추게 되는데, timeGetTime 과 Sleep이 있는 것으로 보아 이 곳인 것 같다. 확실하게 하기 위해서 분석을 해보자 MSDN에서 timeGetTime을 검색한 화면이다. 시스템이 시작했던 시간부터 지금까지의 시간을 밀리세컨드로 반환한다. 이 값은 DWORD이며, 0 ~ .. 더보기