|
[求助]mov dword ptr [ecx], edx发生错误
你在“选项->调试选项->异常”中不要选择忽略内存访问异常,就会看到“非法访问内存”的提示了。 重定位项是重定位表中的一项,简单地说就是为了能够让模块加载到不同的基地址而存在的一个东西。这个不好一下解释清楚,要完全理解,你需要看一看PE文件的相关知道,以及连接器和加载器的相关知识。 |
|
[求助]关于ollyDBG对机器码的断句
这是OD对程序代码的反汇编分析受到了干扰,对指令边界识别错误了。 这不影响调试,一般情况下脱壳后就正常了(当然有意的干扰代码还是会干扰到OD的) 问号就是提示你反汇编结果可能不准确。 |
|
[求助]为什么OD的run跟踪有的代码记录不到?
你没有理解RUN跟踪的作用。 它是记录从开始跟踪到跟踪结束的过程中程序执行的过程,并不能记录开始跟踪之前的状态。 你中断在了MessageBox,然后跟踪,当然只跟到了从MessageBox开始的代码了。 |
|
[求助]mov dword ptr [ecx], edx发生错误
这个地址036DFA00是怎么来的?地址有效吗? OD提示的异常是不是“非法内存访问”? 直接这样硬编码一个内存地址,仅限于:该地址位于PE文件的数据section(严格说是至少具有R访问权限的section)内存范围之内,并且对于dll,需要在重定位项。 |
|
[求助]有没有这样一个插件,又是关于标签的问题,前几天论坛出问题上不来
标签只是代表一个立即数地址,局部变量不是直接寻址的,不适用。 局部变量的用途,只能自己给记下来,或写到注释里。目前1.10版的OD对局部变量,只能解析成local.1这样的形式,还无法用符号来表示 |
|
[求助]c++问题
怎么说的,我觉得hex-rays的结果还只能当汇编看,距离真正的“源码”还差很多 看上去,这个应该是个数组元素赋值的操作。 应该是在循环当中吧,v21是个指针,指向某数组,v8是索引值,大抵是做循环控制变量的 |
|
[求助]可以调用其它DLL不在输出表中的内部函数?
答案是肯定的,但需要一定的opcode hack的技巧。 最直观的办法,就是计算求导出函数的地址与某个已经导出的函数的地址的差,然后通过已经导出的函数来获得未导出的函数地址。 |
|
[求助]大家看看这个加密算法怎么分析
你连什么叫“动态分析”都还没搞清楚。 不知道你要问什么。 OD信息栏给出的信息,并不是计算出来的,只是显示出它本来的值。计算过程的分析是靠人来分析的! 你看你的问题 MOV DL,BYTE PTR DS:[ESI] ; 依次移入算好后的字符到dl 因为执行到这一句后,内存[0012ecb4]中的值就是0xA7,OD就提示你现在它的值是A7,这还有什么怎么来的不怎么来的? |
|
[求助]DLL脱壳方法是否与EXE的不一样,请指教!
你的概念中什么叫脱出来了? DLL文件没有修复重定位,当然会有内存错误了! 从内存镜像中DUMP出来只是脱壳的的第一步,修复完成,能运行了才叫脱壳出来了! |
|
[求助]下断点的一些方法
一般直接用MASM或TASM写的CrackMe,入口都十分简单,这种CrackMe主要是用来学习算法分析的,关键代码根本不用找,用OD载入后一眼望去,就几个函数而已,看一下就知道哪个是了。 通常,用汇编写的程序都是用DialogBoxParamA来启动界面的。所以只要往下翻到这个位置,然后看一下DlgProc参数指向哪里,然后直接到DlgProc函数里,找到if (uMsg == WM_COMMAND)那个位置,F2就行了。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值