본문 바로가기

Security_59

[운영체제] RAID 총 정리?! RAID(Redundant Array of Independent Disk) - 여러개의 하드 디스크에 일부 중복된 데이터를 나눠서 저장하는 기술 - 레벨이 높아질 수록 신뢰성과 성능 향상이 보여진다. - 데이터를 분할해서 복수의 장치에 대해 병렬로 데이터를 읽는 장치 또는 읽는 방식 JBOD(Just Bunch of Disks) : 여러 개의 디스크를 하나의 디스크처럼 보이도록 이어붙이는 기술 * 디스크 각각의 성능이 서로 달라도 전체 볼륨의 성능에는 영향을 미치지 않음 * 디스크 중 하나가 깨져도 그 디스크에 해당하는 부분만 손실 RAID 0 : 여러개의 디스크에 조각을 분배하여 저장하는 기술 * 스트라이핑(Striping)이라고도 한다. * 디스크 중 하나만 깨져도 전체 볼륨을 사용하지 못한다. * .. 2021. 9. 29.
[기타] 고정 소수점 / 부동 소수점 정리, 차이 고정 소수점 부호 비트(1bit)와 정수 부분으로 이루졌다 부호 비트 정수 부호 비트(1bit)는 양수 0, 음수 1로 표현 정수 부분 오른쪽에는 가상 소수점이 있다. 정수 데이터의 표현과 연산에 고정 소수점 방식을 이용 고정 소수점으로 음수를 표현하는 방법은 3가지가 있다. 1. 부호 비트 활용 : 부호 비트를 1로 세팅한다. (-127 ~ 127) 2. 1의 보수 : 양수 표현에 대하여 1의 보수를 계산한다. (-127 ~ 127) 3. 2의 보수 : 양수 표현에 대하여 1의 보수를 하고 1을 더한다. (-128 ~ 127) 2의 보수를 이용할 경우 다른 방법을 사용하는 것보다 더 많은 범위를 표현할 수 있다. 부동 소수점 부호 비트(1bit), 지수 부분, 가수 부분으로 이루어져있다. 부호 비트 지.. 2021. 9. 28.
[논리회로] 반가산기 / 전가산기 용어 정리 가산기 : 덧셈 연산을 수행하는 논리 회로 대부분의 가산기는 2진수의 합을 계산 2의 보수나 1의 보수를 이용하여 음수를 표현하는 경우, 가산기를 가감산기로 이용 반가산기 이진수의 한 자릿수를 연산하고, 자리올림수는 자리올림수 출력에 따라 출력 - 두 비트(A, B)를 더해 합(S)과 자리 올림수(C)를 얻는 회로 [진리표] A B 합(S) 자리 올림수(C) 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 XOR 게이트 AND 게이트 전가산기 이진수의 한 자릿수를 연산하고, 하위의 자리올림수 입력을 포함하여 출력 - 두 비트(A, B)와 자리 올림수(C0)를 더해 합(S)과 최종 자리 올림수(C1)를 얻는 회로 3입력 비트 - 피가수(augend), 가수(addend), 캐리(carry)로 이루.. 2021. 9. 28.
[운영체제] PSW(Program Status Word) PSW(Program Status Word) : 시스템 내부의 순간순간의 상태를 기록하고 있는 정보 CPU의 연산 결과에 따라 상태가 PSW에 저장되며, 이 중에 인터럽트를 알리는 비트 5bit가 있고, 5가지 ISR(인터럽트 서비스 루틴)이 운영체제 일부에 존재 인터럽트 처리 중 다른 인터럽트 발생 시, 운선순위에 의해 인터럽트 처리 [운영체제] 인터럽트 벡터(Interrupt Vector) / 인터럽트 벡터 테이블 (Interrupt Vector Table) 인터럽트 벡터(Interrupt Vector) : 인터럽트에 대한 ISR의 시작 주소 * ISR(Interruct Service Routine) : 실제 인터럽트를 처리하는 루틴 * 인터럽트 발생시 ISR이 레지스터와 PC를 저장하여 실행중이던 .. 2021. 9. 27.
[운영체제] 인터럽트 벡터(Interrupt Vector) / 인터럽트 벡터 테이블 (Interrupt Vector Table) 인터럽트 벡터(Interrupt Vector) : 인터럽트에 대한 ISR의 시작 주소 * ISR(Interruct Service Routine) : 실제 인터럽트를 처리하는 루틴 * 인터럽트 발생시 ISR이 레지스터와 PC를 저장하여 실행중이던 CPU 상태를 보존하고, 인터럽트 종료 시 원래 상태로 복귀 인터럽트 벡터 테이블(Interrupt Vector Table) : 인터럽트 발생시 처리해야 할 루틴의 주소를 보관하고 있는 테이블 인피니언, 마이크로침, Atmel, 프리스케일, AMD, 인텔 등 대부분의 CPU들은 인터럽트 벡터 테이블을 가지고 있다. 2021. 9. 27.
[보고서] 증거물 분석 보고서 기재요령 증거분석 보고서 의뢰일시 의뢰장소 의뢰사항 1. 증거 수집, 복구, 분석의 구체적인 방법 및 절차 2. 도촬 관련 흔적 3. 판매관련 흔적 4. 배포 및 유통시도 흔적 5. 기타 범행입증 자료 분석기간 참고사항 - 모든 증거는 재현가능한 분석 과정 및 결과를 화면캡쳐 등으로 상세하게 포함해야 함 - 각각의 증거 분석에 사용한 프로그램 이름과 버전, 구매처(제조사)또는 프로그램 다운로드 경로를 포함하여야 함 - 프로그램 자체를 복사하여 제출 하는 것이 저작권에 위배되지 않는 경우에는 보고서와 함계 프로그램을 복사하여 제출할 수 있으며, 직접 개발 또는 제작한 프로그램은 소스를 포함하여 제출하여야 함 의뢰자 소속 직급 성명 연락처 비고 ㅁ 분석 대상 디지털매체 정보 ㅇ ㅇ ㅁ 수집 및 분석 결과 ㅇ ㅇ ㅁ .. 2021. 9. 27.
[풀이] abex' crackme #5 abex' crackme #5 분석하기 전에 실행을 해보자. "Enter your serial" 문구가 있고 Check 버튼이 있다. Chcek를 누르면 "The serial you entered is not correct!" 문구가 나온다. OllyDbg를 열어서 분석을 해보자. 실행 후 조금 밑으로 내리면 4010F7부분을 볼 수 있다. strcat와 strcmp 함수를 쓴것으로 봐서는 4010F7에서 어떤 문자열과 비교를 하는지 확인하면 될 것 같다. "ABCD1234"를 입력하고 Check를 눌렀을때의 화면이다. "L2C-5781QU6762-ABEX"문자열과 비교를 하고 있댜. "Yep, you entered a correct serial!" Serial 생성 과정을 확인해보자.. GetVolum.. 2021. 9. 19.
[풀이] abex' carckme #4 abex' crackme #4 분석하기 전에 실행을 해보자. Serial을 입력하는 칸이 있고 Registered 버튼이 있다. 글을 써도 Registered는 활성화 되지 않는다. 올바른 Serial값을 입력해야 Registered가 활성화 될 것 같다. OllyDbg로 열어보자.. String으로 검색을 해보니 "Well done!", "Very good, you got it!" 등 문제 풀이에 도움이 될 부분이 나왔다. 하지만 String 부분을 확인을 해보니 성공과 실패를 구분하는 분기문을 찾을 수가 없었다. 사용된 함수를 보면 vbaStrCmp 함수가 있다... 확인해보자. vbaStrCmp 부분에 Bp를 걸고 실행한 뒤, Serial값에 A를 적어보니 Bp로 이동을하고, 인자로 내가 입력한 A.. 2021. 9. 19.
[풀이] abex' crackme #3 abex' crackme #3 분석하기 전에 실행을 해보자. "Click OK to check for the keyfile." 문구가 나온다. 확인을 누르니 "Hmmmmm, I can't find the file!" 문구가 나온다. keyfile을 생성한 뒤 key값을 파일 안에 넣는 문제일 것 같다.. OllyDbg로 열면 바로 나와있다. CreateFile 함수의 인자부터 알아보자. FileName : "abex.l2c" (영어 l) Access : GENERIC_READ (읽기 권한) ShareMode : 0 (모든 프로세스의 접근 차단) pSecurity : NULL (사용하지 않을경우 NULL) Mode : OPEN_EXISTING (파일이 존재할 경우에만 파일 열기, 존재하지 않을경우 에러 발.. 2021. 9. 16.
[정리] 함수 호출 규약 cdecl, stdcall, fastcall 함수 호출 규약 (Calling Convention) '함수를 호출할 때 파라미터를 전달하는 방식에 대한 약속' 주요한 함수 호출 규약은 아래와 같다. - cdecl - stdcall - fastcall *caller(호출자) - 함수를 호출한 쪽 callee(피호출자) - 호출을 당한 함수 main()에서 print()함수를 실행할 경우 main()[Caller], print()[Callee] cdecl 방식 c언어 에서 주로 사용되는 방식으로 Caller에서 Stack을 정리 main() 쪽에서 함수 호출뒤 ADD ESP. 8 을 실행 CALL 00401000 ADD ESP, 8 ; 함수 호출뒤 stack 정리 컴파일 뒤 어셈블리어를 확인하면 CALL 00401000 함수 호출 뒤 ADD ESP, 8.. 2021. 9. 16.
[보고서] 수집, 분석도구 기재요령 도구명 제조사 버 전 다운로드 경로 해시값(종류) 용도 WinHex X-Ways 18.4.2 http://www.x-ways.net/winhex/ MFT분석 FTK Imager Access Data 3.3.1 http://accessdata.com/productdownload 이미지 생성 Volatility 2.3.1 https:/code.google.com/p/volatility/ 메모리 분석 2021. 9. 16.
[풀이] abex' crackme #2 abex' crackme #2 분석하기 전에 실행을 해보자. Name과 Serial을 입력하는 칸이 있고 Check 버튼이 있다. Name과 Serial을 올바르게 입력하고 Check를 누르면 풀리는 문제일거 같다. Name과 Serial에 아무런 문자열을 넣고 Check를 누르니 Name을 4글자 이상으로 입력해달라고 나온다. 흠.. 틀렸다고 나온다.. OllyDbg를 실행시켜 분석을 시작해보자. 401E14를 PUSH하고 401232:ThunRTMain()을 호출하게 된다. 401E14의 메모리다. RT_MainStruct 구조체이고, ThunRTMain의 인자로 프로그램 실행에 필요한 구조체 정보가 담겨있다. CALL 00401232 이후 00401232를 보면 JMP [4010A0]으로 되어 있다.. 2021. 9. 15.
[풀이] abex' crackme #1 abex' crackme #1 분석하기 전에 실행을 해보자. "Make me think your HD is a CD-Rom." 문구가 출력된다. 확인을 누르면 "Nah.. This is not a CD-ROM Drive!" 문구가 나온다. OllyDbg를 실행하여 분석을 진행해보자. * OllyDbg 기본 명령어 [Ctrl +F2] : Restart - 다시 처음부터 디버깅 시작 (현재 진행 중인 프로세스 종료 후 재시작) [F7] : Step Into - 하나의 OP Code 실행 (CALL 명령을 만나면 함수 내부로 들어감) [F8] : Step Over - 하나의 OP Code 실행 (CALL 명령을 만나면 함수 자체를 실행) [Ctrl + F9] : Execute till Return - 함수 코.. 2021. 9. 15.
[Themida / WinLicense] OllyDbg 오류 해결 정리! 흐아.. 오랜만에 OllyDbg를 열었더니 오류가 많다.. OllyDbg는 공인인증서 관련 프로그램이나, 백신의 충돌때문에 종종 오류를 일으킨다. 해결을 해보자 .. ! Ctrl + Alt + Del 을 눌러서 작업관리자를 열자 그러면 오류를 출력하고 있는 프로그램들을 확인할 수 있다. * 캡처는 올리디버거가 실행중이지만, 올리디버거를 종료해야 삭제가 원활히 된다. 해당 프로세스 우클릭 → 파일 위치 열기(O) → uninstall 실행 * 캡처는 올리디버거가 실행중이지만, 올리디버거를 종료해야 삭제가 원활히 된다. 하지만.. 폴더에 unistall 실행파일이 없다면 프로그램 추가/제거를 들어간다. 검색을 하면 쉽게 찾을 수 있다. 제거를 해주자 :D * 캡처는 올리디버거가 실행중이지만, 올리디버거를 종.. 2021. 9. 14.
[Reversing] Radare2 설치 및 사용 방법 총 정리 [예제 포함] 더보기 목차 [궁금한게 있다면 Ctrl+F로 검색하면 빠르다.] Radare2? Radare2설치 바이너리 정보 확인 Radare2 실행 바이너리 분석을 위한 명령어 바이너리 내의 함수 목록 출력 바이너리 내의 함수 이름 변경 함수의 디스어셈블리 출력 탐색 위치 변경 바이너리 그래프 모드 출력 Hexdump 값 출력하기 Flagspaces확인 데이터/코드 참조 찾기 문자열 검색하기 디버그 모드 Radare2 살향 디버깅 시작 설정된 BreakPoint 리스트 확인 BreakPoint 설정 BreakPoint 해제 레지스터 상태 출력 변수의 상태 확인하기 다시 시작 (올리디버거의 Ctrl+f2) 프로그램 종료 확인 바이너리 패치 모드 Radare2 실행 Hex 값 변경하기 명령어 변경하기 rax2 radi.. 2021. 8. 5.