반드시 지적해야 할 것은 (서구) 법의 관점에서 개를 해독하는 것과 독립 프로그램을 디버깅하는 데는 미묘한 차이가 있다는 것이다. 후자는 완전히 합법적이지만 전자는 독일에서 불법으로 판정되었다 (정품 소프트웨어를 구입하더라도). 미국의 디지털 밀레니엄 저작권법 (DMCA) 에는 유명하지만 논란의 여지가 있는 반회피 조항 (12065438+) 이 있다. 사실, 암호화 강아지의 암호 해독은 매우 엄격하게 제한되어 있지만 소비자와 일부 제조업체들에 의해 강력하게 반대되었습니다. 이에 따라 2000 년 10 월 28 일 120 1a 조항은 7 가지 예외를 규정하고 있습니다. 합리적인 사용을 전제로' 디지털 밀레니엄 저작권법' 제 120 1A 조의 암호화 개 연구를 삭제하다. 그래서 저는 적어도 미국에서는 소프트웨어 개를 연구하고 복제하는 것이 합법적이라는 것을 이해합니다. 나는 우리의 법률이 어떻게 규정되어 있는지 모르지만, 다행히도 우리는 국산 소프트웨어에 대해 토론하지 않는다.
다음은 사용자 설명서, 앱 인터페이스 (API) 등 관련 자료를 다운로드하거나, 암호화 개 기술의 최신 발전에 대해 알아볼 수 있는 유명한 암호화 개 업체들의 공식 사이트입니다.
예를 들어 레인보우 회사에서 제공하는 API 문서에서 Sentinel Superpro (이하 sspro) 에 대한 정보를 얻을 수 있습니다. Sspro 에는 64 개의 스토리지 장치가 있으며, 이 중 56 개는 사용자가 사용할 수 있으며, 이들 각각은 알고리즘, 데이터 값 및 카운터의 세 가지 유형 중 하나로 사용될 수 있습니다.
알고리즘은 sproQuery(queryData) 함수를 사용하여 액세스하는 기술입니다. 여기서 queryData 는 쿼리 값이고 위의 함수에는 반환 값이 있습니다. 암호화된 프로그램은 이러한 쿼리/반환 값 쌍 세트를 알고 위의 함수를 사용하여 암호화해야 하는 개의 존재와 진실성을 확인합니다. 합법적인 사용자라도 알고리즘으로 지정된 단위를 소프트웨어에서 읽고 수정할 수 없습니다. 나는 이 기술이 프로그램의 복잡성을 증가시키는 것 외에 주로 시뮬레이터 기술을 이용하여 해독에 대처한다는 것을 이해한다.
데이터 값과 카운터를 더 쉽게 이해할 수 있습니다. 데이터 값은 사용자가 읽기 및 쓰기 셀에 저장할 수 있는 숫자로, 사용자가 자신의 정보를 저장하는 데 사용할 수 있습니다. Counter 는 소프트웨어 개발자가 자신의 소프트웨어에서 sproDecrement 함수를 사용하여 해당 값을 1 으로 줄일 수 있는 단위입니다. 카운터가 비활성화 알고리즘과 연관된 경우 카운터가 0 이면 해당 알고리즘이 비활성화됩니다.
다음은 sspro 의 모든 API 함수입니다.
RNBOsproActivate () 는 RNBOsproQuery () 함수에서 사용할 수 있도록 알고리즘을 활성화 또는 비활성화합니다.
RNBOsproDecrement () 는 카운터 또는 읽기 및 쓰기 단위를 1 씩 줄입니다.
RNBOsproExtendedRead () 는 숨겨지지 않은 모든 셀의 값과 액세스 코드를 읽습니다.
RNBOsproFindFirstUnit () 은 지정된 개를 찾습니다.
RNBOsproFindNextUnit () 은 같은 ID 를 가진 다음 개를 찾습니다.
RNBOsproFormatPacket () 은 다른 API 함수보다 먼저 호출해야 하는 데이터 구조를 초기화합니다.
RNBOsproGetVersion () 은 드라이버 버전을 반환합니다.
RNBOsproInitialize () 드라이버 초기화.
RNBOsproOverwrite () 는 예약된 셀 00–07 을 제외한 모든 셀의 값과 링크 코드를 수정할 수 있습니다.
RNBOsproQuery () 는 쿼리 값을 제공하고 암호화된 반환 값을 응용 프로그램에 반환합니다.
RNBOsproRead () 는 숨겨지지 않은 셀의 값을 읽습니다.
RNBOsproWrite () 는 셀의 값을 변경합니다.
DesKey 의 API 함수는 더 간단합니다. Dk2DriverInstalled 는 드라이버가 설치되어 있는지 확인합니다.
Dk2 개가 설치되어 있는지 확인하십시오.
Dk2readmemory 는 DK2 에 있는 셀의 내용을 읽습니다.
Dk2readdowncounter 카운터 값 읽기
Dk2decrementDowncounter 카운터 감소 1.
특정 기능에 대한 자세한 내용은 sspro 및 Deskey 의 개발자 안내서 (이 사이트에서 다운로드 가능) 에서 찾을 수 있습니다.
위의 함수를 이해 한 후 IDA 를 사용하여 목표를 분석 한 다음 해당 SIG 기호 테이블 (사이트 다운로드) 을 적용 할 수 있습니다. IDA 는 디스 어셈블리 결과에서 위의 함수 (있는 경우) 를 찾은 다음 어셈블리 언어 쿵푸와 아이디어가 명확한지 확인할 수 있습니다.