首页
社区
课程
招聘
[原创]突破封锁线:第二章--资源篇
发表于: 2006-4-28 23:37 13264

[原创]突破封锁线:第二章--资源篇

2006-4-28 23:37
13264

【文章标题】: 突破封锁线:第二章--资源篇
【文章作者】: Austin
【作者邮箱】: austiny.cn@gmail.com
【软件名称】: 神州数码网络客户登陆程序
【软件大小】: 不重要
【下载地址】: 自己搜索下载
【加壳方式】: UltraProtect 1.x
【保护方式】: 加壳 网络封禁
【编写语言】: VC6.0
【使用工具】: resHacker DT_FixRes ResFixer LordPE
【操作平台】: Windows2003
【软件介绍】: 神州数码小区宽带网络登陆客户端,诸多限制
【作者声明】: 技术交流中。。。
--------------------------------------------------------------------------------
【详细过程】
  一、(换台)前情回顾
  
  上一回讲到,神州数码(DIGI)确实已经脱光了,我们来做点什么。。。
  
  二、(YY中)。。。
  
  DIGI的主界面长得象这个样子:
   ________________________________________________
  |________________________________________________|
  |                                                |
  |                                                |
  |                                                |
  |                 L  O  G  O                     |
  |                                                |
  |                                                |
  |                                                |         弹出菜单象这个样子:
  |                                                |                ________________
  |________________________________________________|               |                |
  |               _____________________________    |               |  显示连接状态  |
  |    用户名:  |_____________________________|   |               |                |
  |               _____________________________    |               |  断开当前连接  |
  |    密  码:  |_____________________________|   |               |________________|
  |                                                |               |                |
  |           X 保存密码    自动加载  X 自动连接   |               |  属性...       |
  |________________________________________________|               |                |
  |                                                |               |  关于...       |
  |      --------      --------      --------      |               |________________|
  |     |  连接  |    |  退出  |    |  属性  |     |
  |      --------      --------      --------      |
  |________________________________________________|
  
  我们的主要任务是在主界面增加一个按钮,弹出菜单中增加一项,以调用我们自己的设置对话框。
  
  (所以准备把DIGI送去韩国,注意,不是泰国)
  
  整容后的DIGI应该长成这个样子:
   ________________________________________________
  |________________________________________________|
  |                                                |
  |                                                |
  |                                                |
  |                 L  O  G  O                     |
  |                                                |
  |                                                |
  |                                                |         弹出菜单象这个样子:
  |                                                |                ________________
  |________________________________________________|               |                |
  |               _____________________________    |               |  显示连接状态  |
  |    用户名:  |_____________________________|   |               |                |
  |               _____________________________    |               |  断开当前连接  |
  |    密  码:  |_____________________________|   |               |________________|
  |                                                |               |                |
  |           X 保存密码    自动加载  X 自动连接   |               |  高级...       |
  |________________________________________________|               |________________|
  |                                                |               |                |
  |   --------   --------   --------   --------    |               |  属性...       |
  |  |  连接  | |  高级  | |  退出  | |  属性  |   |               |                |
  |   --------   --------   --------   --------    |               |  关于...       |
  |________________________________________________|               |________________|
  
  注意我们加入的“高级”字样
  
  三、(热身)左三圈右三圈
  
  先用ResFixer(很厉害的资源修复工具,不过我们只用它来验验货而已)打开上一章得到的DIGI_DUMP_.EXE文件。
  
  果然,果然,红色的显示部分资源(主要是几个Icon和String还有VersionInfo)被放在了.perplex段,
  而大多数资源(Dialog和Menu,都是我们喜欢的),被放在了.rsrc段,
  果然是武林中最邪恶、最阴险的面目全非掌。这样的跨段资源在修复以前,是没法直接修改的。
  
  哎,我们只好使出失传已久的绝学--还~我~漂~漂~拳~。
  
  用DT_FixRes中的FixResDemo.exe(一代豪杰dREAMtHEATER的作品,真是,一个demo都这么帅)打开DIGI_DUMP_.EXE。
  不多说,直接用"Fix Resource"来修复。(显示Resource was fixed successfully,成功)
  
  用LordPE打开修复后的DIGI_DUMP_.EXE,我们可以看到程序中又多了一个.rsrc段。
  不过,别的段的名字都被抹掉了,不好看。
  
  没关系,我们再补一拳。在LordPE中将各段名字一一改回。
  
                 地址          长度
     .text       00410000     10000
     .rdata      00411000      4000
     .data       00415000    204000
     .oldrsrc    00619000      3000
     .perplex    0061C000     1D000
     .newimt     00639000      1000
     .rsrc       0063A000      3000
  
  (秋香,你变漂亮了耶)
  
  四、(行动)Action!
  
  用ResHack打开修复好的DIGI_DUMP_.EXE,找到ID为102的对话框,即是我们要找的对话框:
  
  //////////////////////////////////////////////////////////////////////////
  102 DIALOGEX 0, 0, 215, 196
  STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
  EXSTYLE WS_EX_APPWINDOW
  CAPTION "连接网络--DigitalChina weba client"
  LANGUAGE LANG_CHINESE, 0x2
  FONT 9, "宋体"
  {
     CONTROL "", 1042, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 51, 113, 151, 12
     CONTROL "", 1043, EDIT, ES_LEFT | ES_PASSWORD | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 51, 130, 151, 12
     CONTROL "保存密码", 1044, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 51, 147, 44, 8
     CONTROL "自动加载", 1045, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 102, 147, 47, 9
     CONTROL "自动连接", 1046, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 156, 147, 45, 8
     CONTROL "连接", 1001, BUTTON, BS_DEFPUSHBUTTON | BS_NOTIFY | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 67, 171, 41, 14
     CONTROL "退出", 2, BUTTON, BS_PUSHBUTTON | BS_NOTIFY | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 117, 171, 41, 14
     CONTROL "属性", 1000, BUTTON, BS_PUSHBUTTON | BS_NOTIFY | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 166, 171, 41, 14
     CONTROL "", 1026, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE, 7, 7, 15, 14
     CONTROL "", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 7, 99, 201, 62
     CONTROL "用户名:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 14, 117, 35, 11
     CONTROL "密  码:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 14, 133, 35, 11
     CONTROL "", -1, STATIC, SS_ETCHEDFRAME | WS_CHILD | WS_VISIBLE, 7, 7, 201, 87 , 0x00000020
  }
  //////////////////////////////////////////////////////////////////////////
  
  一堆代码,不习惯也没关系,ResHack有自带的可视化编辑器。最后改成这样:
  
  //////////////////////////////////////////////////////////////////////////
  102 DIALOGEX 0, 0, 215, 196
  STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
  EXSTYLE WS_EX_APPWINDOW
  CAPTION "连接网络--DigitalChina weba client"
  LANGUAGE LANG_CHINESE, 0x2
  FONT 9, "宋体"
  {
     CONTROL "", 1042, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 51, 113, 151, 12
     CONTROL "", 1043, EDIT, ES_LEFT | ES_PASSWORD | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 51, 130, 151, 12
     CONTROL "保存密码", 1044, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 51, 147, 44, 8
     CONTROL "自动加载", 1045, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 102, 147, 47, 9
     CONTROL "自动连接", 1046, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 156, 147, 45, 8
     CONTROL "连接", 1001, BUTTON, BS_DEFPUSHBUTTON | BS_NOTIFY | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 12, 171, 41, 14
     CONTROL "退出", 2, BUTTON, BS_PUSHBUTTON | BS_NOTIFY | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 112, 171, 41, 14
     CONTROL "属性", 1000, BUTTON, BS_PUSHBUTTON | BS_NOTIFY | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 162, 171, 41, 14
     CONTROL "", 1026, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE, 7, 7, 15, 14
     CONTROL "", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 7, 99, 201, 62
     CONTROL "用户名:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 14, 117, 35, 11
     CONTROL "密  码:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 14, 133, 35, 11
     CONTROL "", -1, STATIC, SS_ETCHEDFRAME | WS_CHILD | WS_VISIBLE, 7, 7, 201, 87 , 0x00000020
     CONTROL "高级", 1005, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 62, 171, 41, 14
  }
  //////////////////////////////////////////////////////////////////////////
  
  调整了各个按钮的位置,加入了"高级"按钮。
  
  用同样的方法,对menu资源进行修改:
  
  修改前:
  
  //////////////////////////////////////////////////////////////////////////
  282 MENU
  LANGUAGE LANG_CHINESE, 0x2
  {
  POPUP "托盘菜单"
  {
          MENUITEM "显示连接状态",  32771
          MENUITEM "断开当前连接",  32772
          MENUITEM SEPARATOR
          MENUITEM "属性...",  32773
          MENUITEM "关于...",  32774
  }
  }
  //////////////////////////////////////////////////////////////////////////
  
  修改后:
  
  //////////////////////////////////////////////////////////////////////////
  282 MENU
  LANGUAGE LANG_CHINESE, 0x2
  {
  POPUP "托盘菜单"
  {
          MENUITEM "显示连接状态",  32771
          MENUITEM "断开当前连接",  32772
          MENUITEM SEPARATOR
          MENUITEM "高级...",  32779
          MENUITEM SEPARATOR
          MENUITEM "属性...",  32773
          MENUITEM "关于...",  32774
  }
  }
  //////////////////////////////////////////////////////////////////////////
  
  改完之后,点击"Compile Script",然后用"Show Dialog"察看无误后保存。
  
  (正宗人造美女出炉!正是出水芙蓉~ == ~芙蓉? ~芙蓉?!~芙蓉!! @#$%^&*()_ 。。。) 120,谢谢。
  
  五、(闲暇)喝杯咖啡先
  
  再次运行整容好的DIGI_DUMP_.EXE,我们的"高级"按钮跃然“纸”上,菜单中也有了高级选项。(真是高级啊)
  
  阶段性成果,文件名改为DIGI_DUMP_RES.EXE。
  
  资源修改成功!!
  
--------------------------------------------------------------------------------
【经验总结】
  至此,已经成功的修改了脱壳后的神州数码的资源,为后续的破解和改善打开了局面。
  
  资源修改中的关键点有:
   1. 有些壳会将资源跨段存放,或者资源没有位于最后一段,为修改带来不便,应先修复再修改。
   2. 修改资源是很多工作(如汉化、功能增强等pediy)的基础。
   3. 资源修改是一件艺术工作多于是一件技术工作。
  
  突破封锁线:第二章--资源篇 [完]
  
  谢谢您耐心的看到这里,在下一章--网络篇中,将详细讲述如何跟踪和分析网络应用程序的工作原理:发挥我们的长处,弥
  补它的漏洞。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2006年04月28日 22:55:09


[注意]APP应用上架合规检测服务,协助应用顺利上架!

收藏
免费 7
支持
分享
最新回复 (31)
雪    币: 2506
活跃值: (1030)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
2
支持。呵呵,不过秋香好像还可以再整整容,那个.rdata和.oldrsrc段好像可以删掉。
2006-4-28 23:54
0
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
不错不错。期待下一篇
2006-4-29 09:28
0
雪    币: 333
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wan
4
好文啊,支持学习中。。。
2006-4-29 11:07
0
雪    币: 175
活跃值: (2621)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好文啊,期待下一篇
2006-4-29 11:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
写文章很风趣~

 三、(热身)左三圈右三圈
  
  先用ResFixer(很厉害的资源修复工具,不过我们只用它来验验货而已)打开上一章得到的DIGI_DUMP_.EXE文件。
  
  果然,果然,红色的显示部分资源(主要是几个Icon和String还有VersionInfo)被放在了.perplex段,
  而大多数资源(Dialog和Menu,都是我们喜欢的),被放在了.rsrc段,
  果然是武林中最邪恶、最阴险的面目全非掌。这样的跨段资源在修复以前,是没法直接修改的。
  
  哎,我们只好使出失传已久的绝学--还~我~漂~漂~拳~。
  
  用DT_FixRes中的FixResDemo.exe(一代豪杰dREAMtHEATER的作品,真是,一个demo都这么帅)打开DIGI_DUMP_.EXE。
  不多说,直接用"Fix Resource"来修复。(显示Resource was fixed successfully,成功)
  
  用LordPE打开修复后的DIGI_DUMP_.EXE,我们可以看到程序中又多了一个.rsrc段。
  不过,别的段的名字都被抹掉了,不好看。
  
  没关系,我们再补一拳。在LordPE中将各段名字一一改回。
  
                 地址          长度
     .text       00410000     10000
     .rdata      00411000      4000
     .data       00415000    204000
     .oldrsrc    00619000      3000
     .perplex    0061C000     1D000
     .newimt     00639000      1000
     .rsrc       0063A000      3000
  
  (秋香,你变漂亮了耶)
  
  四、(行动)Action!
2006-4-29 11:31
0
雪    币: 223
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
楼主很风趣啊
2006-4-29 11:44
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习!
2006-4-29 11:57
0
雪    币: 1022
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
收藏,期待下一篇
2006-4-29 12:07
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
不知道那个FixResDemo.exe是用的什么控件,知道的说声,也去下个玩玩,蛮漂亮的
2006-4-29 12:37
0
雪    币: 229
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
文风有趣啊~~~ 学习
2006-4-29 12:39
0
雪    币: 245
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
强烈期待下一篇。
2006-4-29 12:40
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
13
问一下楼主那个界面是你手敲的啊?
2006-4-29 13:07
0
雪    币: 2506
活跃值: (1030)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
14
最初由 WAKU 发布
问一下楼主那个界面是你手敲的啊?

ResHacker中添加对话框资源不用靠手敲,在对话框上右击就有插入控件等选项。
2006-4-29 13:15
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
15
不是....
我的意思是
|________________________________________________|
  |                                                |
  |                                                |
  |                                                |
  |                 L  O  G  O                     |
  |                                                |
  |                                                |
  |                                                |         弹出菜单象这个样子:
  |                                                |                ________________
  |________________________________________________|               |                |
  |               _____________________________    |               |  显示连接状态  |
  |    用户名:  |_____________________________|   |               |                |
  |               _____________________________    |               |  断开当前连接  |
  |    密  码:  |_____________________________|   |               |________________|
  |                                                |               |                |
  |           X 保存密码    自动加载  X 自动连接   |               |  属性...       |
  |________________________________________________|               |                |
  |                                                |               |  关于...       |
  |      --------      --------      --------      |               |________________|
  |     |  连接  |    |  退出  |    |  属性  |     |
  |      --------      --------      --------      |
  |________________________________________________|

这个用手敲的?
2006-4-29 13:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
强啊!!!!!!!!! 偶的偶像啊! 我稀饭!
2006-4-29 13:49
0
雪    币: 250
活跃值: (103)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
详细!不错!
2006-4-29 15:02
0
雪    币: 235
活跃值: (100)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
18
最初由 WAKU 发布
不是....
我的意思是
|________________________________________________|
| |
| |
........


嗯。。。不是,是用键盘敲的。:)
2006-4-29 15:12
0
雪    币: 142
活跃值: (96)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
最初由 viviann 发布
写文章很风趣~

[code] 三、(热身)左三圈右三圈

先用ResFixer(很厉害的资源修复工具,不过我们只用它来验验货而已)打开上一章得到的DIGI_DUMP_.EXE文件。
........

人家是引用了周星星的唐老虎点点秋香:连飘飘拳都出来了~此乃治命绝招~
秋香:好漂亮了耶
2006-4-29 15:38
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ywb
20
强人 如此 
2006-4-29 15:40
0
雪    币: 250
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
真是太感谢了,我们学校网络就是用的这个客户端,一直在研究破解,楼主的这个帖子给了我很多启示
2006-4-29 17:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
虽然有很多看不懂,不过还是谢谢楼主分享,写作风格很轻松有趣。
2006-4-29 21:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
2006-4-29 23:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
收藏,期待下一篇
2006-4-30 00:23
0
雪    币: 465
活跃值: (672)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
25
好文,顶一个,期待下一篇
2006-4-30 08:54
0
游客
登录 | 注册 方可回帖
返回
//