小哥 不好意思 我以为你要文件呢
晚上看了一下
文件没有加壳 里面字符串加密了一部分
看看字符串明文的 有几个有用的产考
CODE:005295E4 _str_________________3 dd 0FFFFFFFFh ; _top
CODE:005295E4 ; DATA XREF: Idcoderheader::DecodeHeader(System::AnsiString)+259o
CODE:005295E4 dd 16 ; Len
CODE:005295E4 db '注册码已经作废!',0 ; Text
引用这个字符串的代码
CODE:00529357 mov eax, ds:maybe_hit
CODE:0052935C mov byte ptr [eax], 0
CODE:0052935F xor edx, edx
CODE:00529361 mov eax, offset _str_________________3.Text
maybe_hit 可能就是标示位 我改的名字 ( BSS:0054B074 )
程序没有限制 只是多加了点尾巴 所以优先看发送部分能搞定最好了
定位到 点击发送的按钮 这个函数
TForm1.btn_StartClick
0053CFD4
这个函数里面 这段引用了 maybe_hit
CODE:0053D124 mov eax, ds:maybe_hit
CODE:0053D129 cmp byte ptr [eax], 0
CODE:0053D12C jz short loc_53D176
CODE:0053D12E mov eax, 14h
CODE:0053D133 call unknown_libname_46 ; BDS 2005-2006 and Delphi6-7 Visual Component Library
CODE:0053D138 mov edx, ds:off_5472A4
CODE:0053D13E mov eax, [edx+eax*4]
CODE:0053D141 call sub_4045C0
CODE:0053D146 cmp eax, 0Ch
CODE:0053D149 jz short loc_53D16C
CODE:0053D14B mov eax, 14h
CODE:0053D150 call unknown_libname_46 ; BDS 2005-2006 and Delphi6-7 Visual Component Library
CODE:0053D155 mov edx, ds:off_5472A4
CODE:0053D15B mov eax, [edx+eax*4]
CODE:0053D15E call sub_4045C0
CODE:0053D163 cmp eax, 18h
CODE:0053D166 jz short loc_53D16C
CODE:0053D168 xor eax, eax
CODE:0053D16A jmp short loc_53D16E
CODE:0053D16C ; ---------------------------------------------------------------------------
CODE:0053D16C
CODE:0053D16C loc_53D16C: ; CODE XREF: _TForm1_btn_StartClick+175j
CODE:0053D16C ; _TForm1_btn_StartClick+192j
CODE:0053D16C mov al, 1
CODE:0053D16E
CODE:0053D16E loc_53D16E: ; CODE XREF: _TForm1_btn_StartClick+196j
CODE:0053D16E mov edx, ds:maybe_hit
CODE:0053D174 mov [edx], al
CODE:0053D176
CODE:0053D176 loc_53D176: ; CODE XREF: _TForm1_btn_StartClick+158j
CODE:0053D176 mov eax, ds:maybe_hit
CODE:0053D17B cmp byte ptr [eax], 0
CODE:0053D17E jnz short loc_53D1EB
od 载入调试 修改 标示位 改跳转 可以正常运行 保存文件发现 不能正常工作 可能有校验吧
用内存延时补丁可以解决
延时12秒 修改 试了一下可以用
樱花 补丁
yinghua15s1114.zip 肯定还有其他的地方可以破 从注册那块入手可能会分析可能工作量会大一点吧 吃饭了明天去过节了