トリッキーな方法無制限のトライアルソースinsight3.5

    今週は逆Si3.5(バージョン3.5.66.0)されている、暗号化アルゴリズムには、それらを復元することですが、彼らは怠け者であるため、RIを書きたくはありません。フィルモアには休憩SIを意味しない、実際には、ありませんので、私は、トリッキーな方法で無制限に使用するSIの多様性を試すことができます。

    アクティブ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

SIコール_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

私は、その後、実行SIを聞かせてODが04A72B1で減算命令を修正する使用しようと、SIは、すでにショーを延長が実際に35日間の試用期間があります。

=>

ああ、実際には、このステージには成功したひび割れと考えられています。しかし、すべての時間はあなたが圧力を期限切れにすぐに総ソフトウェアを与え、日SI合計数十人だけでなく、ディスプレイを開きます。もしそうなら、変更、とても利用できる残りの日数が大きいこと。これは、より少ない被減数と減数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