qiweizi 发表于 2020-8-6 13:01

一个Delphi软件的重启验证分析!!

本帖最后由 qiweizi 于 2020-8-6 13:04 编辑

一款售电系统,我用来练手,想去除注册窗口,我导入od后,把序列号前面的je改为jmp,假码注册失败前面的je改成了jmp,保存。
再次打开软件提示序列号录入注册成功,需要重启。
重启后还是要重复输入注册码,我再次输入,又提示注册成功,需要重启,循环反复。
经检测是注册表重启验证,我死活找不到那个关键重启验证的断点,单步下断点改了其他的jmp会导致软件报错,无法打开,求分析原因,谢谢
我没有求破,求大神分析思路,


软件在网盘:https://qiweizi.lanzouj.com/i3mocfcg1ze

苏紫方璇 发表于 2020-8-6 13:40

并不是注册表验证的,他把注册码写入数据库里,密码是yony2012
修改这些地方应该就可以进去了,具体为什么修改自己分析
Patches
地址       大小   状态      旧                              新                              注释
006DEB92   2.   激活      je short YYlocal_.006DEBB3      jmp short YYlocal_.006DEBB3
006DFEE3   6.   激活      je YYlocal_.006DFFAD            jmp YYlocal_.006DFFAD
006E018E   5.   激活      call <YYlocal_.sysutils.EncodeDanop
006E01BA   6.   激活      jg YYlocal_.006E0290            jmp YYlocal_.006E0290

byh3025 发表于 2020-8-6 13:36

你都说了是注册表的重启验证,那就下个注册表的断点,另外,它弹出注册窗口肯定是经过一个判断的

qiweizi 发表于 2020-8-6 14:17

苏紫方璇 发表于 2020-8-6 13:40
并不是注册表验证的,他把注册码写入数据库里,密码是yony2012
修改这些地方应该就可以进去了,具体为什么 ...

大神厉害,通过你的指点,软件一下就进去了,我搞了一个星期都没思路,太感谢了!!

qcz00622 发表于 2020-8-6 15:52

自己练习了下,发现有时候会走进死胡同,不过看到版主大大的回复,瞬间清晰了!主要问题在改了jmp后会弹出停止运行错误。原来需要把call那句给nop掉就OK了。
追加一点心得:
0066A1E3    jnz YYlocal_.0066A421   这一行改为nop后,任意输入密码都可以进入程序了!
确实学习到了不少东西!!

qiweizi 发表于 2020-8-6 17:31

qcz00622 发表于 2020-8-6 15:52
自己练习了下,发现有时候会走进死胡同,不过看到版主大大的回复,瞬间清晰了!主要问题在改了jmp后会弹出 ...

你也是大神,我学到了,呵呵

wangwh27 发表于 2020-8-7 12:04


006E0478=YYlocal_.006E0478 (ASCII "Jet OLEDB:Database Password=yony2012;Jet OLEDB:Engine Type=5;")
edx=00000000
YYDB.mdb的密码yony2012

qiweizi 发表于 2020-8-7 17:22

wangwh27 发表于 2020-8-7 12:04
006E0478=YYlocal_.006E0478 (ASCII "Jet OLEDB:Database Password=yony2012;Jet OLEDB:Engine Type=5;") ...

好的,懂了{:1_918:}
页: [1]
查看完整版本: 一个Delphi软件的重启验证分析!!