OD常见问题

1. 乱码
     现象:如果反汇编面板中显示的都是db之类的数据,那就说明OD把代码当成数据了,没有进行反汇编。
     解决方法: 1)在反汇编面板上选择右键菜单里的 “ Analysis / Analyse code” (或其快捷键 Ctrl + A)强制OD重新把此处当
                              成代码来进行分析即可。
                       2)或 在反汇编面板中选择右键菜单 “Analysis / Remove analysis from module” 。
                       3) 或 在OD的UDD目录中删除相应的 .udd文件。

2. 快速返回到当前程序的EIP所指向的指令
     现象:在反汇编面板中上下翻阅反汇编指令时,如果离开了当前CPU的EIP所指向的指令,可以双击寄存器面板中的EIP,
                或工具栏中的对应对应按钮。

3. 如何设置EIP为某指令地址
     选择反汇编面板中的某条指令,如何选择右键菜单中的 “New origin here” (或其快捷键Ctrl + 数字键盘上的*)。

4. .udd是什么文件
    OD把与所调试的exe 和 dll相关的消息保存在一个独立的文件中,并在exe程序重新加载时继续使用。这些消息包括
     注释、标号、断点等。
5. 为什么删除了断点,OD重新加载程序时,这些断点都又会重新出现
     打开文件ollydbg.ini  修改Backup UDD files 值为1,即Backup UDD files =1。
6. 在OD的反汇编面板中键入汇编代码时,输入“push C000”会提示未知标识符。
     原因:OD的反汇编引擎不知C000中的C是数字还是字母。
     解决方法: 在字母前加0表示这是数字,即“push 0C000”
7. OD出现假死想象
     想象:用OD调试一些加壳程序,当程序跑到断点(包括硬件断点)时,OD会出现假死想象。
     解决方法: 打开文件ollydbg.ini,把 “Restore windows”值修改为0,即:“Restore windows = 0”。
8. 如何在反汇编窗口或内存窗口上下翻动一个字节
    按 “Ctrl + 上箭头键” 和 “Ctrl + 下箭头键”。
9. 执行复制到可执行文件时,提示错误 “Unable to locate data in executable file”
    原因:这个要修改的地方不在exe的RawSize范围内。
    解决方法:修改PE,使其 “RawSize=VirtualSize”。
10. 把 ”Call 地址” 中地址改成函数名
    先按 ”Ctrl + G”并输入地址值来到此地址处,再按 “Ctrl + ;”并在弹出的对话框中输入函数名。



 

### 华为OD主管职位的常见面试问题 #### 技术管理类问题 在华为OD主管的技术管理类面试中,通常会涉及候选人对团队管理和项目执行的理解以及实际操作能力。以下是可能遇到的一些典型问题: 1. **如何设计并优化一个大型分布式系统的架构?** 这一问题旨在考察候选人在复杂系统中的设计能力和实践经验[^1]。 2. **描述一次你在技术决策过程中解决冲突的经历。** 此类开放性问题不仅关注解决方案本身,还评估候选人的情商和沟通技巧[^2]。 3. **如果下属提交了一个存在明显缺陷的设计方案,你会怎么处理?** 考察管理者指导员工改进的能力及其领导风格。 4. **请解释一下微服务架构的核心优势与挑战是什么?** 微服务作为现代软件开发的重要趋势之一,在华为这样的大公司里应用广泛。 #### HRBP(人力资源业务伙伴)相关问题 HRBP部分主要侧重于企业文化适应性和人际交往技能等方面: 1. **谈谈你对公司文化的理解以及它是如何影响日常工作的?** 显示应聘者是否认同华为的企业文化及价值观[^3]。 2. **当面临跨部门合作困难时,你是怎样协调各方达成一致意见的?** 测试其解决问题的实际经验和方法论。 3. **假如发现某位优秀工程师有离职倾向,你会采取哪些措施挽留他/她?** 探讨候选人保留人才的具体策略。 #### 上机考试和技术考核题目示例 针对具体技术岗位可能会设置编程测试环节,例如下面一道关于字符串运算的经典算法题: ```python def add_large_numbers(A, B): result = [] carry = 0 i, j = len(A)-1, len(B)-1 while i >=0 or j>=0 or carry>0: digit_a = int(A[i]) if i >=0 else 0 digit_b = int(B[j]) if j >=0 else 0 sum_digits = digit_a + digit_b + carry carry = sum_digits //10 current_digit = sum_digits %10 result.append(str(current_digit)) i -=1 j -=1 return ''.join(reversed(result)) print(add_large_numbers("987654321", "123456789")) # 输出:"1111111110" ``` 此代码实现了两个超长数字相加的功能,适用于类似场景下的笔试或在线评测环境[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值