
랜섬웨어 분석에 초점을 맞춘 암호화 실험 유틸리티입니다.
암호화를 다루기 위한 유틸리티로, 랜섬웨어 분석에 중점을 둡니다.

CryptoTester에서 사용되는 모든 Hex 뷰는 몇 가지 향상된 기능을 제공합니다.
0D 0A)은 보라색으로 표시됩니다.많은 뷰(예: Input 및 Output)에서 오프셋 행(해당 뷰 위의 00 01 02 03...)을 클릭하면 디코딩된 뷰와 함께 바이트를 보여주는 대화상자가 열립니다.
정수를 입력받는 대부분의 입력란은 특수 값과 함수도 허용합니다.
예시:
x10 -> 16len -> 400block -> 16 (선택한 알고리즘의 블록 크기)up(60, 16) -> 64down(60, 16) -> 48이러한 함수와 함께 간단한 산술 연산을 사용할 수 있습니다.
up(len-x100, b) - 입력 길이에서 256을 뺀 후, 선택한 알고리즘의 가장 가까운 블록 크기(예: AES의 경우 16)로 올림합니다.음수 값은 len - value, 즉 입력의 끝을 기준으로 한 상대값으로 간주됩니다.
기본 패널에는 입력에 암호화 기본 요소를 사용하기 위한 도구가 포함되어 있습니다. Input Hex 뷰는 바이트를 직접 붙여넣거나 File 메뉴를 사용하여 파일, 텍스트, Base64 인코딩 바이트 등을 불러올 수 있습니다. 또한 파일을 뷰에 직접 드래그 앤 드롭할 수 있습니다.
다양한 형식의 키를 지정할 수 있으며, 여러 해싱 및 키 유도 함수 옵션이 포함되어 있습니다. 이 필드는 현재 선택된 알고리즘과 지원 가능한 항목에 따라 조정됩니다.
참고: 키는 UI에 표시된 순서대로 처리됩니다. 먼저
Format에 따라 키가 디코딩되고, 그 다음Hash매개변수를 사용하여 해싱된 다음, 마지막으로Derive매개변수를 사용하여 유도된 후 암호화 알고리즘에 전달됩니다. v1.7.0.0부터는Hash와Derive처리 순서를 바꿀 수 있습니다.
키의 최종 출력 길이는 입력 상자 위에 표시됩니다. 이를 클릭하면 별도의 대화상자에 최종 계산된 키가 표시됩니다.

암호화 알고리즘과 지원되는 경우 해당 매개변수를 선택할 수 있습니다.
참고:
IV Bytes(또는 알고리즘에 따라Nonce)가 비어 있으면 알고리즘에 적합한 길이의00바이트로 자동 채워집니다.
입력은 "범위"와 "청크" 두 가지 모드로 선택할 수 있습니다.
Offset에서 시작하여 Length 바이트를 가져오는 간단한 범위입니다.
Lock Parameters 체크박스가 선택되어 있지 않으면 Input이 변경될 때마다 Length가 자동으로 업데이트됩니다.
Length 필드에서 계산을 수행한 후 입력의 실제 길이로 되돌리려면 Reset Length 버튼을 누르면 됩니다.
Splice Remaining Bytes가 선택되어 있으면 Offset 이전의 모든 바이트가 Output 앞에 추가되고, Offset+Length 이후의 모든 바이트가 뒤에 추가됩니다.

Take 바이트를 가져온 다음 Skip 바이트를 건너뛰고, 다시 Take 바이트를 가져오고 Skip 바이트를 건너뛰는 식으로 Input 끝까지 반복합니다. 이는 실제로 평문 청크 사이에 "인터리브"된 암호문에 사용할 수 있습니다. 암호화 알고리즘은 결과 청크에 대해 하나의 연속적인 청크로 실행되며, 키/IV/논스 등은 리셋되지 않습니다.
Splice Remaining Bytes가 선택되어 있으면 Skip 섹션의 모든 바이트가 Output에 다시 인터리브됩니다.

이 섹션은 파일 크기, 감지된 MIME(파일인 경우), 총 엔트로피, 16(일반적인 블록 크기)으로 나누어지는지 여부와 같은 Input의 기본 정보를 표시합니다.
Input 및 Output 뷰는 동기화된 스크롤을 지원합니다. 비활성화하려면 두 뷰 사이의 Syncronized scrolling 체크박스를 해제하세요.
Input과 Output 사이의 🡨 버튼은 Output을 Input 뷰로 이동하는 데 사용할 수 있습니다.
Input 또는 Output은 각 뷰 아래의 드롭다운을 사용하여 해시할 수 있습니다. Output에는 확인 알고리즘(ECDSA 제한적 지원)을 실행할 수도 있습니다.
이 패널은 암호화된 파일을 원본과 비교할 수 있습니다. 두 뷰 모두 드래그 앤 드롭을 지원하며, File -> Open File을 사용하여 순서대로 Original과 Encrypted를 열 수 있습니다.
Original 뷰는 File -> Input 옵션을 사용하여 채울 수도 있습니다. 예를 들어 특정 길이의 널 바이트나 Windows 샘플 사진 Chrysanthemum.jpg와 비교할 수 있습니다.
Original 및 Encrypted 뷰는 동기화된 스크롤을 지원합니다. 비활성화하려면 두 뷰 사이의 Syncronized scrolling 체크박스를 해제하세요.
Original과 Encrypted 뷰 사이의 ⇆ 버튼은 내용을 바꾸는 데 사용할 수 있습니다.
두 뷰 간에 차이가 있는 바이트는 진한 빨간색으로 표시됩니다.

각각 Original 및 Encrypted 뷰의 기본 정보를 표시합니다.
두 뷰가 모두 채워지면 두 파일에 대한 빠른 분석이 실행됩니다.
Original의 해시가 Encrypted에 있는지 확인합니다.Encrypted에 CryptoAPI BLOB이 있는지 확인합니다.Encrypted에 있는지 확인합니다(UTF-8 또는 UTF-16).Encrypted에서 원본 파일 크기를 확인합니다(다양한 형식 및 인코딩).Encrypted의 시작 또는 끝에 ASCII(또는 Base64) 마커가 있는지 확인합니다.이 패널은 몇 가지 압축 알고리즘을 기본적으로 사용할 수 있으며, Encrypt/Decrypt 패널과 유사한 기능을 제공합니다.
CryptoAPI BLOB 및 CNG BLOB을 분석하는 도구입니다.
BLOB은 지원되는 경우 바이너리, Base64, PEM, XML 및 ASN.1 형식으로 가져오거나 내보낼 수 있습니다.

적용 가능한 지원 BLOB 유형에 대해서만 활성화되는 추가 BLOB 관련 도구입니다.
CryptoAPI BLOB을 생성합니다. Bit Length는 선택한 aiKeyAlg에 대해 지원되는 값으로 자동 업데이트됩니다. 일부 bType과 aiKeyAlg 조합은 유효하지 않으며 CryptoAPI 공급자에서 오류를 발생시킵니다.

참고: 키는 내부적으로 CryptGenRandom을 사용하여 생성되지만, 이 유틸리티에서 생성된 키를 사용하는 것에 대한 암호화 보안을 보장할 수 없습니다.
RSA 키를 분석/계산하는 도구입니다. 키의 개별 매개변수가 표시되며 10진수 또는 16진수로 표시할 수 있습니다. 충분한 매개변수가 있으면 키의 나머지 부분을 계산할 수 있습니다.
키는 CryptoAPI BLOB, CNG BLOB, PEM, XML, ASN.1 등 다양한 형식으로 파일, 클립보드 또는 메인 창(암호화/복호화)으로 내보낼 수 있습니다. 또한 메인 창으로 내보낼 경우 Raw RSA 알고리즘에 대해 원시 정수를 내보낼 수 있습니다.

파일에서 여러 형식의 암호화 키를 검색하는 도구입니다.
지원되는 형식의 예:

알려진 다양한 PRNG 알고리즘을 테스트하는 도구입니다.

PRNG의 시작 Seed를 설정합니다.
PRNG Algorithm, 생성할 출력 Length, 각 출력에 적용할 선택적 Modulus를 설정합니다. 예를 들어 Modulus를 xFF로 설정하면 각 출력을 바이트로 캐스팅할 수 있습니다.
Alpha가 선택된 경우:
Alpha 출력의 경우 생성된 출력의 엔트로피도 표시됩니다. 이는 PRNG를 직접 공격하지 않고 출력을 맹목적으로 브루트포싱하기 위한 엔트로피(또는 가능성 수)의 대략적인 추정치입니다.
다양한 Base 인코딩을 사용하는 도구입니다. 표준 프리셋 문자 집합을 지원하거나 사용자 정의 문자 집합을 제공할 수 있습니다.
체크섬(예: 비트코인의 Base58Check)을 사용하는 인코더를 제외하고, 디코딩은 패딩을 확인하지 않고 수행되므로 부분적이거나 손상된 인코딩도 원시 디코딩됩니다.

텍스트 또는 바이트를 ASCII, UTF-8 및 UTF-16으로 동시에 볼 수 있는 도구입니다.

타원 곡선 점을 검증하는 도구입니다. ECPoint(압축되지 않거나 압축된 형식), PEM 또는 CNG BLOB에서 가져오거나 내보낼 수 있습니다.

현재 패널을 기반으로 수행할 다양한 연산입니다.
Compare 패널에서 Original과 Encrypted를 가져와 XOR 또는 AND 연산을 적용하고 스트림을 표시합니다.
Encrypt/Decrypt 패널의 알고리즘 정보를 사용하여 지정된 길이의 키스트림을 생성하고 파일로 저장합니다.
Compare 패널의 픽셀 간 차이를 그래픽 차트로 표시합니다.

제공된 키 자료, Encrypt/Decrypt 패널의 Input, 주어진 예상 출력을 사용하여 Encryption Options 섹션의 모든 가능한 옵션을 열거하여 일치 항목을 찾습니다.
이 도구는 알려진 키 목록 또는 폴더를 지정된 암호 매개변수를 사용하여 Input에 대해 테스트하는 데 사용할 수 있습니다.
Byte Count 바이트씩 읽기 등.키가 성공적으로 일치하면 Select 버튼이 활성화되어 키와 해당 매개변수를 기본 창에 전달할 수 있습니다.

선택한 암호의 블록 크기를 사용하여 가능한 모든 블록을 열거하고 지정된 키를 사용하여 복호화를 시도합니다.
예: RSA-2048 개인 키와 0x1000 바이트의 가능한 암호문 BLOB이 Input으로 있습니다. 이 연산을 사용하면 Input[0x00:0x100], 그 다음 Input[0x01:0x101], 그 다음 Input[0x02:0x102] ... 식으로 복호화를 시도합니다.
참고: 이 연산은 현재 RSA 알고리즘만 지원합니다. 또한 최대 10000바이트의 입력으로 제한됩니다.
내부적으로 리틀 엔디언을 사용합니다(알고리즘이 지원하는 경우).
선택한 알고리즘이 지원하는 경우 사용자 정의 매개변수를 설정할 수 있습니다. 예를 들어 Salsa20 계열 알고리즘은 사용자 정의 라운드, 상수, 위치 또는 원시 행렬 입력을 지원합니다.
텍스트나 Base64에서 입력하거나 알려진 평문에서 IV를 복구하는 등 IV에 대한 옵션입니다.
OpenSSL과 같은 특정 암호화 체계에 대한 프리셋입니다.
변환을 위한 작은 도구들입니다.
정수를 DWORD로 변환하거나 DWORD 바이트를 정수로 변환합니다.

16진수 바이트를 정수 목록으로 변환하거나 정수 목록을 바이트로 변환합니다. 출력에 공백 및 쉼표를 선택적으로 설정할 수 있습니다.
