5
delphi程序,当点击about-help时候,连续弹了4个窗口
摸索了一下,大概程序意思就是只要输入正确的注册码,
灰色的OK窗口才会显示。
拖入OD,只在字符串表中找到4个窗口的命令。至于有个OK的没有找到
尝试用查找资源文件
有点怀疑这是陷阱,怎么看都是name charge,跟随到地址看看
果然,在输入字符时直接断在了这里
单步执行,看看怎么回事
跳转实现,之后会在程序内一直循环,当再次输入字符时,又断在了刚才设置的断点处,尝试修改,不让其跳转
随便输入了一个字符,OK就显示出来了,但是点击OK无效果,看来还需要继续分析
4
发现,如果nop掉这个jnz那么 jmp 就会直接跳到进程结束了,不应该nop的 。
让其跳过jmp ,继续看下边代码
出现关键test al al ,前边有个call ,估计是对比注册码,然后返回一个值和al比较,那么就不能让其实现
nop掉之后,再试…还是不行
重新重新,删除断点,再分析一遍。这个程序破解成功的标志是消除ok 和cancel按钮,显示出logo。4个事件都要去分析,逐一下断点
刚刚在第一个框输入5,存放在EDX中,0442E5
442d12是关键跳转,前边进行了test判断
nop掉之后发现OK键可用,点击OK 再次进到断点。是对OK事件的判断
将jnz改成jmp 强行跳转
划下来看此处,和之前的验证类似,也是call之后伴随着test,不能让其跳转,NOP
运行之后,成功将OK键去除了!
cancella也是类似的做法!