内存。汇编显示EBP,这种数值怎样找
陈大花 :
我找到怪物血值的来源。。。竟然是显示一种的。。。。。。。。。。。。
mov eax, dword ptr ss:[eax + 0x120]
mov eax, dword ptr ss:[EBP + 0x130]
遇到这种情况 要怎么找
冬去春来 :
@陈大花 你的方法不对
陈大花 :
在怪物血地址 下内存访问断点 然后依次找到来源。。这样不对吗
冬去春来 :
这样也没有问题,关键是你的执行力
类人猿 :
找数据,个人感觉还是 很多靠经验的
多看教程,看不同人的教程,不同人的分析技巧才行的
=======================================================
稳定。 :
地址的值 + 偏移值 = 下一级地址
缩句:值 + 值 = 下一级地址。
方括号 [ ],表示获取地址里面的值。
[eax + 0x120],代表寄存器eax存放的,是一个地址的值。
0x120是偏移值。
地址的值 + 偏移值 = 下一级地址,
方括号 [ ],代表获取这个“下一级地址”的值。
mov eax, **** //获取这个“下一级地址”的数值,再传递给eax。
=======================================================
mov eax, dword ptr ss:[EBP + 0x130]
原理相同。
EBP 代表栈底指针。EBP存放的是栈单元地址。可以这样说,EBP存放的是栈地址。
栈单元地址里面,又存放有内容。
子函数的调用,ESP永恒指向栈顶,而获取栈单元内容的任务,就交给EBP 来处理,通过[EBP + 0x**]、[EBP - 0x**] 来获取栈单元内容。
0x130是偏移值。
栈底指针~指向的值 + 偏移值 = 下一级地址,
方括号 [ ],代表获取这个“下一级地址”的值。
mov eax, **** //获取这个“下一级地址”的数值,再传递给eax。
=======================================================
打开OD窗口,查看OD右下角的栈窗口,查看EBP的值,
再往下,可以查看到EBP+0x130 这个地址。
[ ],表示取某个地址的值。
注意:地址的值 + 偏移值 = 下一级地址
缩句:值 + 值 = 地址。
陈大花 :
我找到怪物血值的来源。。。竟然是显示一种的。。。。。。。。。。。。
mov eax, dword ptr ss:[eax + 0x120]
mov eax, dword ptr ss:[EBP + 0x130]
遇到这种情况 要怎么找
冬去春来 :
@陈大花 你的方法不对
陈大花 :
在怪物血地址 下内存访问断点 然后依次找到来源。。这样不对吗
冬去春来 :
这样也没有问题,关键是你的执行力
类人猿 :
找数据,个人感觉还是 很多靠经验的
多看教程,看不同人的教程,不同人的分析技巧才行的
=======================================================
稳定。 :
地址的值 + 偏移值 = 下一级地址
缩句:值 + 值 = 下一级地址。
方括号 [ ],表示获取地址里面的值。
[eax + 0x120],代表寄存器eax存放的,是一个地址的值。
0x120是偏移值。
地址的值 + 偏移值 = 下一级地址,
方括号 [ ],代表获取这个“下一级地址”的值。
mov eax, **** //获取这个“下一级地址”的数值,再传递给eax。
=======================================================
mov eax, dword ptr ss:[EBP + 0x130]
原理相同。
EBP 代表栈底指针。EBP存放的是栈单元地址。可以这样说,EBP存放的是栈地址。
栈单元地址里面,又存放有内容。
子函数的调用,ESP永恒指向栈顶,而获取栈单元内容的任务,就交给EBP 来处理,通过[EBP + 0x**]、[EBP - 0x**] 来获取栈单元内容。
0x130是偏移值。
栈底指针~指向的值 + 偏移值 = 下一级地址,
方括号 [ ],代表获取这个“下一级地址”的值。
mov eax, **** //获取这个“下一级地址”的数值,再传递给eax。
=======================================================
打开OD窗口,查看OD右下角的栈窗口,查看EBP的值,
再往下,可以查看到EBP+0x130 这个地址。
[ ],表示取某个地址的值。
注意:地址的值 + 偏移值 = 下一级地址
缩句:值 + 值 = 地址。