• OD使用教程12


    载入程序输入关键字:

    双击进入程序
    仔细看发现并没有跳转直接跳到这个mov,往上看发现retn上面有一个push,在这种编写手法当中这种组合相当于一个jmp,
    跳到离它最近的一个值(在这就是004A5841)给它下个注释
    然后在这两个地方下断点,尝试了一下执行发现不能断在这里,所以看看上面的程序
    往上一直走然后发现又出现push和retn组合,给它做个注释
    刚刚一路走上来发现了很多有用的东西,现在再回去看看,走到这下一个断点,因为前面一部分都是提示我们要需要输入哪些注册框
    重新载入程序,点击about任意注册一个,发现断在了刚刚下的那个断点处
    然后f8继续走,然后跳出错误窗口
    在这条命令上方下一个断点,然后把这条命令Nop掉。
    然后在test那里再下一个断点,重新载入程序看看能不能跳过这里,然后发现可以走过,然后f8继续走
    然后跳过一个跳转,往下走又有一个跳转不过是往上跳的,猜测这可能是一个循环,所以用断点和f9跳过这个循环
    跳过之后取消断点,f8继续走,来到一个跳转,第一个是一定要跳过的,第二个不可以,因为跳转成功之后就直接退出了,错过了我们要到的注册成功的位置
    跳转到的地方
    所以修改这个跳转变成无条件跳转
    然后f8继续走,跳过Error的跳转可以跳过,然后又到了一个跳转,会直接跳过注册成功
    所以把它Nop掉
    然后f8继续走,最后就成功了,保存重新打开,成功啦~~~~~~~
    本节要点,这种语言(Delphi)写出的程序存在很多call语句迷乱人的视听,如果不小心进入了一个call想知道是从哪进去的可以按减号键退一步看看,但是程序是已经执行进去了是不能对外面进行修改的,同理要是想看看一个call里面是什么可以按加号键,但不是进入只是看看,可以按减号键回来。push+rten=jmp组合是它的经典搭配
  • 相关阅读:
    Go语言实现:【剑指offer】复杂链表的复制
    Go语言实现:【剑指offer】字符串的排列
    Go语言实现:【剑指offer】机器人的运动范围
    Delphi10.3的DBGrid美化(03)
    uniGUI学习之uniButton设置图标+扁平化CSS(34)
    UniGUI学习之hBox布局(33)
    Bug集锦
    ImageNamed、imageWithContentsOfFile、SupportingFiles、Images.xcassess
    MVC设计模式
    [转]iOS开发之视图控制器(UIViewController)
  • 原文地址:https://www.cnblogs.com/chenxiaoqi/p/4986521.html
Copyright © 2020-2023  润新知