首页
社区
课程
招聘
[带壳调试并定位Delphi注册按钮]--XX速查手册 V2006
发表于: 2006-2-5 19:40 4587

[带壳调试并定位Delphi注册按钮]--XX速查手册 V2006

cyto 活跃值
31
2006-2-5 19:40
4587
带壳调试并定位Delphi注册按钮--XX速查手册 V2006 Build 0125

1.基本情况:
点击各个合同内容,跳出注册框,输入后消失,无提示。

PEID:ASPack 2.1 -> Alexey Solodovnikov [Overlay]
脱壳后PEID:Borland Delphi 4.0 - 5.0,运行无内容,带壳调试。

2.断点:
Spy capture查得注册框的class: TFrmPassw
eXeScope打开脱壳后的程序在RCDATA的TFrmPassw找到:
object btnOK: TAdaFlatButton
      Left = 171
      Top = 72
      Width = 65
      Height = 23
      Anchors = [akRight, akBottom]
      Caption = 'OK'
      Color = clBtnFace
      OnClick = btnOKClick
      ColorDown = clBtnFace
      ShowCaption = True
      ShowHint = True
      ParentShowHint = False
    end
Winhex打开脱壳后程序,搜索btnOKClick:
00485369  EC 53 48 00 0A 62 74 6E 4F 4B 43 6C 69 63 6B 11  煊H..btnOKClick
好了,地址:004853EC。

3.调试
OD载入未脱壳程序,运行到OEP(有没有必要没试验过),然后F9运行程序,点击你要看的内容,跳出输入用户名密码的框:用户名:CYTO,密码:87654321
转到OD,下断004853EC:
004853EB     90                         nop
004853EC     C780 34020000 01000000     mov dword ptr ds:[eax+234],1
004853F6     C3                         retn

点击确认后断下,F8一直往下,返回n次,中间还到USER32.dll里逛了下:
00447E6B     E8 40F2FBFF       call 合同速查.004070B0                  ; jmp to user32.DispatchMessageA
00447E70     EB 07             jmp short 合同速查.00447E79

然后继续,路太长了,几乎以为断错了,就在要放弃的时候看到了可爱的用户名:
0048BF2A     8D55 DC          lea edx,dword ptr ss:[ebp-24]
0048BF2D     A1 E8E44800      mov eax,dword ptr ds:[48E4E8]
0048BF32     8B00             mov eax,dword ptr ds:[eax]
0048BF34     8B80 18030000    mov eax,dword ptr ds:[eax+318]
0048BF3A     E8 59DFF9FF      call 合同速查.00429E98              ; 用户名
0048BF3F     8B45 DC          mov eax,dword ptr ss:[ebp-24]
0048BF42     8D4D E0          lea ecx,dword ptr ss:[ebp-20]
0048BF45     8B15 54E54800    mov edx,dword ptr ds:[48E554]       ; 合同速查.0048FC18
0048BF4B     8B12             mov edx,dword ptr ds:[edx]
0048BF4D     E8 2E9EFFFF      call 合同速查.00485D80              ; 计算核心
0048BF52     8B45 E0          mov eax,dword ptr ss:[ebp-20]       ; (ASCII "D9A2572446CA4F")
0048BF55     50               push eax
0048BF56     8D55 D8          lea edx,dword ptr ss:[ebp-28]
0048BF59     A1 E8E44800      mov eax,dword ptr ds:[48E4E8]
0048BF5E     8B00             mov eax,dword ptr ds:[eax]
0048BF60     8B80 1C030000    mov eax,dword ptr ds:[eax+31C]
0048BF66     E8 2DDFF9FF      call 合同速查.00429E98
0048BF6B     8B55 D8          mov edx,dword ptr ss:[ebp-28]       ; 输入的密码
0048BF6E     58               pop eax                             ; ASCII "D9A2572446CA4F"
0048BF6F     E8 B480F7FF      call 合同速查.00404028              ; 比较
0048BF74     75 02            jnz short 合同速查.0048BF78
0048BF76     B3 01            mov bl,1
0048BF78     84DB             test bl,bl
0048BF7A     74 52            je short 合同速查.0048BFCE

用户名:CYTO
密码:D9A2572446CA4F
每次重启程序都要输入,郁闷!

4.总结:
本文关键在于断点的寻找:
程序是Delphi的,普通断点断不下,注册确认后无提示,加壳,脱壳后处理OVERLAY也比较麻烦。
还好加的是Aspack壳,定位Delphi注册确认按钮的方法好几种,本破文介绍的这种我认为很方便,对Delphi写的程序屡试不爽。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 202
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wdx
2
谢谢,请问Spy capture是什么?
2006-2-5 21:58
0
雪    币: 273
活跃值: (250)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
3
菜鸟受教了。。谢谢!!
2006-2-6 01:07
0
雪    币: 186
活跃值: (49)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
先收藏,再学习,一种新的思路
2006-2-6 16:11
0
雪    币: 277
活跃值: (37)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
每次重启程序都要输入?注册版的也是这样吗?怀疑是中了暗桩了
2006-2-6 16:34
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
今天一上来,就学了一超
2006-2-7 16:20
0
游客
登录 | 注册 方可回帖
返回
//