• 抬起头,继续前进吧,去把这个不完美的故事,变成你成所期望的样子
  • 登山路上我们会放弃很多东西,但这些被我们丢掉在我们登上山顶之际,都会一一回来
  • 不论开发还是逆向,数学水平的高低直接决定了”你的饭碗里有没有肉”
  • 万丈高楼平地起,勿在浮沙筑高台

Windows软件逆向练习-第3篇

安全 菜鸟 2个月前 (05-05) 199次浏览 未收录 0个评论

一. 准备

工具:
        PEid 0.95
        x32dbg
环境:Win7 x64 sp1
安装包:pixtopianbook107.exe
目标: PixtopianBook.exe
要求:破解该软件,变为已注册版本

二. 分析

2.1 程序行为(未注册)。

a. 标题栏提示未注册信息
Windows 软件逆向练习-第 3 篇
b. About 中显示未注册信息
Windows 软件逆向练习-第 3 篇
c. 添加组无法超过 3 个
Windows 软件逆向练习-第 3 篇
d. 每个组里添加成员无法超过 4 个
Windows 软件逆向练习-第 3 篇

2.2 查壳,无。C++6.0 编译

Windows 软件逆向练习-第 3 篇

2.3 搜索字符串,定位

组限制

00408B05    | 83F8 03         | cmp eax,3                                |
00408B08    | 7C 2A           | jl pixtopianbook.408B34                  |
00408B0A    | 6A 10           | push 10                                  |
00408B0C    | 68 00F74800     | push pixtopianbook.48F700                | 48F700:"Please register PixtopianBook"
00408B11    | 68 B4F64800     | push pixtopianbook.48F6B4                | 48F6B4:"You've reached the limit of 3 groups.\n\nPlease register PixtopianBook today!"
00408B16    | 8BCB            | mov ecx,ebx                              |
00408B18    | E8 D0D70400     | call <pixtopianbook.sub_4562ED>          |
成员限制
00412DD0    | 83F8 04         | cmp eax,4                                |
00412DD3    | 7C 1A           | jl pixtopianbook.412DEF                  |
00412DD5    | 8B4C24 10       | mov ecx,dword ptr ss:[esp+10]            |
00412DD9    | 6A 10           | push 10                                  |
00412DDB    | 68 00F74800     | push pixtopianbook.48F700                | 48F700:"Please register PixtopianBook"
00412DE0    | 68 68FC4800     | push pixtopianbook.48FC68                | 48FC68:"You've reached the limit of 4 entries per group.\n\nPlease register PixtopianBook today!"
00412DE5    | E8 03350400     | call <pixtopianbook.sub_4562ED>          |

字符串中没有找到标题栏中的(UNREGISTERED VERSION)和 About 中的 Unregistered version。
切换到资源段内存,然后进行特征匹配

004E4BE6 28 00 55 00 4E 00 52 00 45 00 47 00 49 00 53 00 (.U.N.R.E.G.I.S. 
004E4BF6 54 00 45 00 52 00 45 00 44 00 20 00 56 00 45 00 T.E.R.E.D. .V.E. 
004E4C06 52 00 53 00 49 00 4F 00 4E 00 29 00 00 00 00 00 R.S.I.O.N.)..... 

004D4830 55 00 6E 00 72 00 65 00 67 00 69 00 73 00 74 00 U.n.r.e.g.i.s.t. 
004D4840 65 00 72 00 65 00 64 00 20 00 76 00 65 00 72 00 e.r.e.d. .v.e.r. 
004D4850 73 00 69 00 6F 00 6E 00 20 00 76 00 31 00 2E 00 s.i.o.n. .v.1... 

标题栏的信息,搜索字符串找到如下信息

0040C22F    | 81FD 07090000   | cmp ebp,907                              |
0040C235    | 75 1A           | jne pixtopianbook.40C251                 |
0040C237    | 68 74F94800     | push pixtopianbook.48F974                | 48F974:"This is an unregistered version of PixtopianBook. Please register today!"
0040C23C    | 8BCE            | mov ecx,esi                              |
0040C23E    | E8 BDFEFFFF     | call <pixtopianbook.sub_40C100>          |
在该例程首部会判断 906 然后做跳转,就会变更标题栏信息
0040C197    | 81FD 06090000   | cmp ebp,906                              |
0040C19D    | 8BF1            | mov esi,ecx                              |
0040C19F    | 0F85 8A000000   | jne pixtopianbook.40C22F                 |

三. 操作

1. 修改 0x004E4BE6 和 0x004D4830 处的信息

004D4830 4C 00 69 00 63 00 65 00 6E 00 63 00 65 00 20 00 L.i.c.e.n.c.e. . 
004D4840 62 00 79 00 20 00 78 00 75 00 65 00 78 00 69 00 b.y. .x.u.e.x.i. 
004D4850 20 00 20 00 20 00 20 00 20 00 76 00 31 00 2E 00  . . . . .v.1... 

004E4BE6 20 00 20 00 28 00 52 00 45 00 47 00 49 00 53 00  . .(.R.E.G.I.S. 
004E4BF6 54 00 45 00 52 00 45 00 44 00 20 00 56 00 45 00 T.E.R.E.D. .V.E. 
004E4C06 52 00 53 00 49 00 4F 00 4E 00 29 00 00 00 00 00 R.S.I.O.N.)..... 

2. 将 0x00408B08 和 0x00412DD3 处的指令为 jmp

00408B05    | 83F8 03         | cmp eax,3                                |
00408B08    | EB 2A           | jmp pixtopianbook.408B34                 |
00408B0A    | 6A 10           | push 10                                  |
00408B0C    | 68 00F74800     | push pixtopianbook.48F700                | 48F700:"Please register PixtopianBook"
00408B11    | 68 B4F64800     | push pixtopianbook.48F6B4                | 48F6B4:"You've reached the limit of 3 groups.\n\nPlease register PixtopianBook today!"
00408B16    | 8BCB            | mov ecx,ebx                              | ecx:"hhG", ebx:sub_40C190
00408B18    | E8 D0D70400     | call <pixtopianbook.sub_4562ED>          |

00412DD0    | 83F8 04         | cmp eax,4                                |
00412DD3    | EB 1A           | jmp pixtopianbook.412DEF                 |
00412DD5    | 8B4C24 10       | mov ecx,dword ptr ss:[esp+10]            | [esp+10]:"hhG"
00412DD9    | 6A 10           | push 10                                  |
00412DDB    | 68 00F74800     | push pixtopianbook.48F700                | 48F700:"Please register PixtopianBook"
00412DE0    | 68 68FC4800     | push pixtopianbook.48FC68                | 48FC68:"You've reached the limit of 4 entries per group.\n\nPlease register PixtopianBook today!"
00412DE5    | E8 03350400     | call <pixtopianbook.sub_4562ED>         

3. 修改 0x0040C19F 处的指令为 je

0040C197    | 81FD 06090000   | cmp ebp,906                              |
0040C19D    | 8BF1            | mov esi,ecx                              | ecx:"hhG"
0040C19F    | 0F84 8A000000   | je pixtopianbook.40C22F                  |

4. 保存

四. 测试

标题栏信息变更了
Windows 软件逆向练习-第 3 篇
About 信息修改了
Windows 软件逆向练习-第 3 篇
添加成员和组成功
Windows 软件逆向练习-第 3 篇


学习心得 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Windows 软件逆向练习-第 3 篇
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址