본문 바로가기

전체 글479

[해결] IDA 40343 Error 해결방법 Oops! internal error 40343 occured. IDA를 사용하려고 했는데 40343에러가 나왔다.. 40343 에러는 IDA 실행파일 또는 분석 파일이 영어로 된 경로가 아니면 뜨는 에러다. IDA 실행파일 과 분석 파일을 모두 경로가 영어로 되어있게 해주면 에러가 안뜬다. 2021. 10. 4.
[저장매체] ATA / PATA / SATA ATA(Advanced Technology Attachment) - 하드디스크, CD-ROM등 저장 장치의 표준 인터페이스 - IDE(Integrated Drive Electronics)라는 용어랑 혼재되어 사용 - 병렬 전송 방식을 사용하는 PATA(Parallel ATA) / 직렬 전송 방식을 사용하는 SATA(Serial ATA) 로 발전 PATA(Parallel ATA) - 40핀의 단자가 리본 케이블로 드라이브를 연결 - 16비트의 데이터를 한 번에 전송 - SATA 이전에 많이 쓰여졌다. SATA(Serial ATA) - 컨트롤러에 따라 5~8개 까지 연결 가능 - SATA1은 150MBps / SATA2 에서는 300MBps / SATA3 에서는 600MBps 전송률 지원 - 전원이 켜져 있.. 2021. 9. 29.
[저장매체] SSD(Solid State Drive) SSD - 주로 NAND 플래시 메모리 이용 - 하드디스크와 달리 반도체 메모리를 내장하여 하드디스크에 비해 외부 충격에 강하다. - 하드디스크에 비해 읽기, 쓰기, 접근 시간이 빠르고, 소비 전력, 소음, 발열이 낮다. - 저쟁매체로 일반 RAM을 탑재한 모델과 Flash Memory를 탑재한 모델이 존재 - TRIM, GC(Garbage Collection)과 같은 기능이 있어 이미징시 주의해야한다. * TRIM, GC(Garbage Collection) : 불필요한 데이터를 삭제해주는 기술 - 운영체제에서 파일을 삭제할 때 하드디스크는 덮어쓸 수 있지만, SSD는 덮어쓰기가 불가능하여 데이터를 지운 후 저장한다. (TRIM은 지워진 데이터의 공간을 미리 비워두는 역할을 하고, GC는 SSD의 컨트롤.. 2021. 9. 29.
[저장매체] 플래시 메모리(Flash Memory) 플래시 메모리(Flash Memory) - 전기적으로 데이터를 지우고 재기록이 가능한 비휘발성 기억 장치 - 소비 전력이 작다. - EEPROM과 다르게 여러 구역으로 구성된 블록안에서 지우고 쓰기가 가능 - 블록 단위 프로그래밍 방식을 사용해서 EEPROM보다 빠르다. 한계 - 블록 단위로 지워야 한다. - 덮어 쓸 수 없어 모든 블록을 지우기 전까지 해당 자료 변경 불가 종류 - NOR 플래시 메모리 / NAND 플래시 메모리로 구분 가능 NOR 플래시 메모리 - 임의 접근 방식으로 속도가 빠르다. - MMC 카드나 Compact 플래시 메모리, 휴대폰이나 셋탑박스에 사용 * Compact Flash Memory : 작은 반도체 칩 카드 - 제조사에서 출시 할 때 모든 셀(Cell)의 상태는 1로 세.. 2021. 9. 29.
[Forensic] HPA / DCO 정리?! HPA(Host Protected Area) - ATA(Advanced Technology Attachment)-4 표준에서 추가된 기능 - HDD에 의해 미리 예약된 영역으로 BIOS를 통해 접근할 수 없다. (OS에서 볼 수 없다) 사용처 - 시스템 부팅이나 진단 유틸리티 - CD, DVD 없이 시스템 복구를 위해 - 노트북 보안 유틸리티 저장 - 루트킷을 통한 악의적인 용도 및 데이터 은닉 HPA 명령어 - IDENTIFY DEVICE : 현재 BIOS를 통해 접근 가능한 영역 리턴 - SET MAX ADDRESS(EXT) : BIOS를 통해 접근 가능한 영역 설정 (HPA 생성) - READ NATIVE MAX ADDRESS(EXT) : 실제 디스크 전체 영역을 리턴 DCO(Device Confi.. 2021. 9. 29.
[운영체제] 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.