까다로운 방법 무제한 시험 소스 insight3.5

    이번 주 역 Si3.5 (버전 3.5.66.0)을하고있다, 암호화 알고리즘을 복원하는 것입니다,하지만 그들은 게으른 때문에, RI를 쓰고 싶지 않습니다. 나는 까다로운 방식으로 무제한 사용시의 다양한 시도 할 수 있도록 필 모어, 사실, 더 휴식 SI를 의미하지 않습니다.

    활성화시에 순서대로 재판 후, 모든 시작은, 재판에 남아있는 일 수를 표시합니다 :

빨간 부분은 문자열 상수는 IDA 개방이되는 문자열을 검색 할 수 있습니다 "% d 일에 만료되는 평가판 라이센스"는 모양해야한다 :

부호 그 코드의 조각을 찾기 위해 그것을 따르

.text:004A7263 loc_4A7263:                             ; CODE XREF: sub_4A7077+1D1↑j
...
.text:004A72AC                 mov     eax, totalTrialDays  ;si3.5试用版设定的试用天数
.text:004A72B1                 sub     eax, trialDays  ;已经试用的天数
.text:004A72B7                 mov     [ebp+remainDays], eax
.text:004A72BD                 push    0FFh            ; color
.text:004A72C2                 push    [ebp+hdc]       ; hdc
.text:004A72C5                 call    ds:SetTextColor    ;设置字体颜色
.text:004A72CB                 mov     [ebp+color], eax
.text:004A72D1                 cmp     [ebp+remainDays], 0
.text:004A72D8                 jle     short loc_4A72F6
.text:004A72DA                 push    [ebp+remainDays]
.text:004A72E0                 push    offset trialRemainDays ; "Trial License expires in %d days."
.text:004A72E5                 lea     eax, [ebp+String]
.text:004A72EB                 push    eax             ; char *
.text:004A72EC                 call    _sprint

시 통화 _sprint 형식 문자열, 지시

.text:004A72DA                 push    [ebp+remainDays]

스택에 자리 파라미터처럼 가변 [EBP + remainDays]가 % d. 정확하게 수정 변수 [EBP + remainDays] 근방 문 :

.text:004A72AC                 mov     eax, totalTrialDays  ;si3.5试用版设定的试用天数
.text:004A72B1                 sub     eax, trialDays  ;已经试用的天数
.text:004A72B7                 mov     [ebp+remainDays], eax

참고 totalTrialDays 및 TRIALDAYS는 데이터 세그먼트에서 글로벌 변수는 다음과 같습니다

.data:005E6F8C trialDays       dd ?                    ; DATA XREF: sub_445B93:loc_445BC4↑r
.data:005E6F8C                                         ; sub_448894+185↑w ...
.data:005E6F90 totalTrialDays  dd ?                    ; DATA XREF: sub_445B93+36↑r

나는 다음 실행시하자 OD가 04A72B1에서 빼기 명령을 수정 사용하려고, SI는 이미 쇼를 확장가 실제로 35 일 시험 기간이 있습니다 :

=>

아, 사실,이 단계에 성공적으로 금이 고려된다. 그러나 때마다 당신이 압력을 곧 만료 총 소프트웨어를 제공, 디스플레이뿐만 아니라 일시 총 수십를 엽니 다. 만약 그렇다면, 변경 가능한 일의 남은 수가 큰 그래서. 이것은 적은 피감수 및 감수 TRIALDAYS totalTrialDays을 변경하는 것보다 연산, 아무것도의 기초 지식입니다. IDA는 totalTrialDays / TRIALDAYS 번호를 참조하여 소프트웨어를 비교, 나는 그것을 잘라하기로 결정 그래서 totalTrialDays의 상대적으로 적은 수의 인용 발견했다.

보기 다시 totalTrialDays 참조, 눈에 띄는 명령 "mov 인 totalTrialDays, 23"발견

지침 23 진수 (35)는 그렇지 않아? 그것은 insight3.5 항상 그 집행 유예 소스인가? 음, 100 년 100 년 후, 어쨌든, 나는 코드를 볼 수 없습니다 변경, 큰 즉각적인 변화를 넣습니다.

发布了233 篇原创文章 · 获赞 106 · 访问量 56万+

추천

출처blog.csdn.net/lixiangminghate/article/details/88739718