编程黑洞网
首页
编程
数据库
代码审查
网络应用
Android
wordpress
软件推荐
软件工程
逆向工程
信息安全
软件质量测试
地理信息
密码学
网站管理员
元堆栈交换
网络工程
操作系统
Ubuntu
计算机
Unix和Linux
服务器故障
Vi和Vim
运维
物联网
机器人
树莓派
计算机图形学
信号处理
在IDA Pro中将独立代码视为功能
逆向工程
|
2020-12-30
|
编程黑洞网
|
0条评论
|
608 人阅读
在进行逆向工程程序时,我经常会发现以下功能。该功能尤其具有一组嵌套的if / else块(粉盒),通常很容易遵循。但是,当代码在蓝色框执行时,代码将变得凌乱,并且可以采用两个独立的代码路径(紫色或黄色)。如果开发人员为紫色或黄色代码块使用了一个函数(或未使用内联函数),则此代码将易于逆向工程。作为一个函数,我可以对代码块进行重命名和注释,从而使整个程序更易于阅读。
遇到这种函数时,我通常的技巧是将颜色应用于代码块就像您在下图中看到的一样。 IDA是否有办法将任意代码块集合视为未调用的函数,和/或有没有更好的方法来处理内联代码和独立代码块?
#1 楼
听起来您需要的是节点组。自从第一个实现(5.0)开始,IDA的图形视图就允许将多个节点分组为一个具有自定义标题的“超级节点”。只需按住Ctrl键并单击即可选择要分组的节点,然后从上下文菜单中选择“分组节点”。
有关更多信息,请参见IDA帮助中的“图形节点组”或在线。
评论
单独说明,这将有助于您将输入内容放在on-topic-ness / off-topic-ness上,这里meta.reverseengineering.stackexchange.com/q/7/189
–asheeshr
13年3月27日在1:37
我的问题或答案可能与主题无关?
– amccormack
13年3月27日在1:51
@amccormack的问题,因为它本身不涉及逆向工程,而是“如何使用RE工具”。但是我想我们可以在主题上提出这样的问题。请在这里添加您的想法。
–伊戈尔·斯科钦斯基♦
13年3月27日在1:54
@IgorSkochinsky:尽我所能(和您所知道的;))指出,这不应该太偏向于特定工具,我认为这些问题应该是话题性的。我在此添加了“评论”,并希望其他许多人也可以。顺便说一句:您已经履行了我的期望,很快就会成为您的职位;)...另请参见:meta.reverseengineering.stackexchange.com/questions/7
– 0xC0000022L♦
13年3月27日在16:55
@IgorSkochinsky:我不确定本身是什么,但是在大多数东南网站上,人们常常皱眉,只发布链接而不引用至少重要部分。
– 0xC0000022L♦
13年3月27日在16:56
您如何搜索unicode字符串?
Windows更新安全补丁的内部如何工作?
标签列表
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但想过渡到敏捷,那我应该回去创建那些单元测试吗?
代码覆盖率和测试覆盖率有什么区别?
当团队想要忽略关键但难以重现的错误时,我应该如何应对
测试人员应该修复错误吗?
审核测试自动化代码的良好实践
质量检查人员应该能够编写测试代码吗?
随机文章
什么是厨师自动化
简单的命令行HTTP服务器
直接在Mac OS X Finder中挂载Android设备
C ++中的Euler 001项目
将时钟显示在网站上会提高SEO吗?
在Windows 10(版本1903)命令提示符下键入“ python”将打开Microsoft商店
如何在php5中安装curl?
在这些比较中,Swift如何比Objective-C快得多?
关于数据资源管理器的有趣查询
什么时候可以在Gmail过滤器中使用“标签:”,“中:”或“是:”?
评论
单独说明,这将有助于您将输入内容放在on-topic-ness / off-topic-ness上,这里meta.reverseengineering.stackexchange.com/q/7/189
–asheeshr
13年3月27日在1:37
我的问题或答案可能与主题无关?
– amccormack
13年3月27日在1:51
@amccormack的问题,因为它本身不涉及逆向工程,而是“如何使用RE工具”。但是我想我们可以在主题上提出这样的问题。请在这里添加您的想法。
–伊戈尔·斯科钦斯基♦
13年3月27日在1:54
@IgorSkochinsky:尽我所能(和您所知道的;))指出,这不应该太偏向于特定工具,我认为这些问题应该是话题性的。我在此添加了“评论”,并希望其他许多人也可以。顺便说一句:您已经履行了我的期望,很快就会成为您的职位;)...另请参见:meta.reverseengineering.stackexchange.com/questions/7
– 0xC0000022L♦
13年3月27日在16:55
@IgorSkochinsky:我不确定本身是什么,但是在大多数东南网站上,人们常常皱眉,只发布链接而不引用至少重要部分。
– 0xC0000022L♦
13年3月27日在16:56