吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4301|回复: 7
收起左侧

[原创] 怎么去用x64dbg的脚本判断当前运行到的行(rip)异常?

[复制链接]
冥界3大法王 发表于 2022-1-22 10:29
本想发求助贴的,我们在实验室里一折腾突然自己明白了,所以还是分享下经验吧:怎么去用x64dbg的脚本判断当前运行到的行(RIP)异常?
试验过程如下:
我们随便打开一个64位的程序
image.png
把汇编窗口第二行,随便改成CCCCCCCC
来触发异常

msg {ex.firstchance()}        //结果是1           //最后一个异常是否是首次偶发异常
msg {ex.addr()}                 //这个得到的是最后一个异常地址=====》有用
msg {ex.code()}                //这个得到的是异常的代码==>感觉不实用!
msg {ex.flags()}               //结果是0
msg {ex.infocount()}       //结果是1          //最后一个异常信息计数
msg {ex.info(index)}       //结果是???


所以,貌似得用 ex.addr() 这个来做比较了~~~
这样写对吧?  cmp rip,ex.addr()     //rip是谁? 当前运行到的VA地址前啦
后面的 ex.addr()  就是最后一次异常的地址啊 ~~
所以想想,貌似有问题啊  ~~
我们把选中的 00007FF7C5A367EC 行直接给NOP了,它就变成了 5行(5个异常的行啦)
当我们在第二行原样按F8的时候 ,就会触发异常 ,rip = 00007FF7C5A367EC (也就是运行到了00007FF7C5A367EC)
再按一下F8 ,rip=00007FF7C5A367ED, 第一次异常地址 是00007FF7C5A367EC

看到没?  发现问题了吧?
所以,我们只要再定义一个变量来存储上一次的那个rip的地址,再和我们的变量做比较这个问题就解决了啊。
所以遇到问题不要慌张,做试验和对比,自己就能不求人自己找到解决办法了。
后面异常小节就可以愉快的使用skin命令来自动化的跳过了。
image.png

免费评分

参与人数 4吾爱币 +5 热心值 +3 收起 理由
lgc81034 + 1 谢谢@Thanks!
liyitong + 1 + 1 你这么厉害,会过S的反调试吗
aa530416 + 1 + 1 热心回复!
福仔 + 2 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

18296522075 发表于 2022-1-24 16:36

可以,学习学习
cydiansu 发表于 2022-1-25 08:29
DrillAnn 发表于 2022-1-26 08:53
seeker908 发表于 2022-1-27 22:33
学习学习中。
头像被屏蔽
hua111 发表于 2022-2-17 11:22
提示: 作者被禁止或删除 内容自动屏蔽
aq1232007 发表于 2022-2-21 01:44
skin命令,这个怎样使用呢?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-25 14:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表