编程黑洞网
首页
编程
数据库
代码审查
网络应用
Android
wordpress
软件推荐
软件工程
逆向工程
信息安全
软件质量测试
地理信息
密码学
网站管理员
元堆栈交换
网络工程
操作系统
Ubuntu
计算机
Unix和Linux
服务器故障
Vi和Vim
运维
物联网
机器人
树莓派
计算机图形学
信号处理
反转恶意软件时,如何在调试器中处理异常?
逆向工程
|
2020-12-30
|
编程黑洞网
|
0条评论
|
332 人阅读
我单步调试时遇到了一些引发异常的恶意软件。 IDA让我可以选择是否将异常传递给应用程序。这到底是怎么回事?什么时候我不想将异常传递给应用程序?
#1 楼
通常,恶意软件和/或混淆的代码(例如,解压缩存根)将执行以下操作:
设置异常处理程序。
引发异常。
/>查看异常处理程序是否捕获到异常。
如果异常处理程序未捕获到异常,则调试后的代码将知道已附加调试器并“吞噬”了异常,因此表明代码正在调试中。为了使调试器免于使用此类检测技术,在处理恶意软件和/或混淆的代码时,您始终希望将异常传递给应用程序。
评论
我从IDA看到的弹出窗口警告我可能会失去对应用程序的控制。您能否扩大答案以谈论可能发生的情况?我是否需要单步执行异常处理程序?
–user2142
13年6月12日在3:43
@ user2142这意味着,如果应用程序未正确处理异常,则可能会使应用程序崩溃。是的,如果您对它的处理方式感兴趣,则可能需要逐步进行。
– PSS
2013年6月12日在3:48
一个例外是一般规则,即分析师和/或调试器“导致”例外发生。例如,如果单步执行pushf指令,则将设置陷阱标志位。如果稍后弹出这些标志,则IDA可能会按照您描述的有关单步异常的内容发出警告。您不想将那个传递给应用程序。
–滚轴
2013年6月12日下午3:58
您并不总是希望传递该异常,因为除非存在调试器(例如CloseHandle(invalid)),否则可能不会生成该异常。在这种情况下,异常的存在就暴露了调试器(请参阅pferrie.host22.com/papers/unp2011.htm)。
–彼得·弗里
13年6月13日在0:12
使用IDA将jtag-openocd-gdb连接到arm11设备无法控制
物理审核在22mm工艺裸片上制造的处理器内部晶体管的布局
标签列表
java
(11)
r
(3)
r-faq
(3)
javascript
(17)
jquery
(3)
asynchronous
(2)
php
(17)
mysql
(7)
sql
(3)
html
(2)
regex
(2)
arrays
(2)
variables
(3)
warnings
(2)
language-agnostic
(2)
c++
(9)
c++-faq
(8)
parsing
(2)
debugging
(5)
c
(3)
error-handling
(3)
python
(10)
pandas
(3)
android
(3)
list
(3)
最近发表
IP地址错误的错误掩码
在Cisco IOS中自动进行配置备份(每分钟)
VRRP和HSRP有什么区别?
IP地址如何映射到MAC地址?
网站可以识别我的MAC地址吗?
在STP中如何选择根桥?
为什么要使用三根以太网电缆将交换机连接到路由器?
为什么10.1.255.255是无效的广播地址?
为什么将IP地址分配给每个接口而不是设备?这将意味着什么?
为什么Visual Studio 2013不愿意运行我的Web性能/负载测试?
对测试代码了解太多会不利吗?
如何隔离错误?
如何使用Selenium和WebDriver清除localStorage
评估测试项目
我如何说服管理层我们需要一个正式的质量保证部门?
FluentWait与WebDriverWait有何不同?
简历和求职建议-从开发到测试的职业转变
您如何等待Selenium 2中的jQuery Ajax调用完成
在持续开发下测试应用程序
Selenium的页面加载默认超时是多少?
IT项目中软件测试的真正商业价值是什么?
系统测试与系统集成测试(SIT)有何不同?
如何找到我们的“质量保证流程”的弱点?
测试人员应如何处理生产中发现的错误?
如果我不使用TDD但想过渡到敏捷,那我应该回去创建那些单元测试吗?
代码覆盖率和测试覆盖率有什么区别?
当团队想要忽略关键但难以重现的错误时,我应该如何应对
测试人员应该修复错误吗?
审核测试自动化代码的良好实践
质量检查人员应该能够编写测试代码吗?
随机文章
如今,“白痴”(开发人员)应该遵循哪些安全资源? [关闭]
什么时候使用_e和__进行翻译?
通用机器人UR5等工业机器人手臂中使用什么类型的伺服器?
GPT或MBR:我怎么知道?
在端到端测试中测量代码覆盖率?
结束网站的最佳方法是什么?
放置用户之间共享的文件的最合适的目录是什么?
无法通过USB电缆为Galaxy Tab充电
使用命令模式的输入处理系统
与固定缩放相比,以本机或半分辨率渲染时,GPU性能是否有所提高?
评论
我从IDA看到的弹出窗口警告我可能会失去对应用程序的控制。您能否扩大答案以谈论可能发生的情况?我是否需要单步执行异常处理程序?
–user2142
13年6月12日在3:43
@ user2142这意味着,如果应用程序未正确处理异常,则可能会使应用程序崩溃。是的,如果您对它的处理方式感兴趣,则可能需要逐步进行。
– PSS
2013年6月12日在3:48
一个例外是一般规则,即分析师和/或调试器“导致”例外发生。例如,如果单步执行pushf指令,则将设置陷阱标志位。如果稍后弹出这些标志,则IDA可能会按照您描述的有关单步异常的内容发出警告。您不想将那个传递给应用程序。
–滚轴
2013年6月12日下午3:58
您并不总是希望传递该异常,因为除非存在调试器(例如CloseHandle(invalid)),否则可能不会生成该异常。在这种情况下,异常的存在就暴露了调试器(请参阅pferrie.host22.com/papers/unp2011.htm)。
–彼得·弗里
13年6月13日在0:12