|
[求助]想问下关于寄存器的问题
不懂linux,呵呵, esp是堆栈指针寄存器,保存的总是堆栈指针,就是栈顶的地址,EIP是指向要执行的下一条指令的地址 子函数中通常会有push ebp;mov ebp,esp,经过这个指令以后,ebp也指向堆栈了,偶觉得这样做有两个原因,1是因为esp经常变,而ebp不变,访问变量更方便.哈哈 还有就是有些编译器会在子函数后面加上leave指令,这个指令会把ebp的值放进esp,能防止堆栈不平衡影响程序的运行. 猜的,要是问题很严重建议你查资料. |
|
[求助]一个很简单的汇编问题
rep stos dword ptr [edi] 就是把eax的值 写入到以[edi]开头的地址中,每次写入一个双字,循环ecx次 dword ptr [edi] 就是定义[edi]开始的内存变量为dword属性 byte ptr [edi]就是定义[edi]开始的内存变量为byte属性 word ptr ................ mov dword ptr [i],0,就是把[i]地址开始的第一个双字变成0 mov byte ptr [i],0 就是把[i]地址开始的第一个字节变成0 |
|
[原创]终于挺过来了!附:ASPR脱壳录像
学习 顶 哈哈 |
|
|
|
[求助]请教一句汇编!
[QUOTE=flong;339162]如果此时不希望eax是ASCII "3333",那该怎么修改呢?3333是加密了的,字串搜索不到。F11A24不是程序的地址啊,是内存的地址吧,我该怎么办呢?添加一个附加数据段,然后修改[40E8FC]为附加数据地址?[/QUOTE] 在命令行插件里面输入 d eax 或者0F11A24 就可以看到3333了 在内存中显示是33 33 33 33... 然后就可以修改了 我不懂你说的程序地址是什么意思 你看到的所有东西都在内存中吧,都是内存地址 F11A24这么大的地址就应该是程序自己申请的 呵呵 |
|
[求助]关于DLL插入指定进程??
没明白你什么意思 |
|
[求助]该内存不能为"written",如何解决?
呵呵,和这个有关系吗?buffer应该是个变量,他修改的应该是堆栈或者data段 |
|
[求助]该内存不能为"written",如何解决?
void xch(char *buffer ) { _asm { mov edi,buffer xor byte ptr [edi],al } } void main() { char buf[]="1133"; xch(buf); } 我这个怎么没出错 |
|
[求助]字符串在程序之外?
在程序中申请内存 然后再放进去的字符串 |
|
|
|
[求助]请教一句汇编!
你这样一说不就很好理解了 40E8FC中保存的是24 1A F1 00 因为是dword,所以就是 F11A24,这个就是字符串'333'的首地址 mov eax,[40E8FC]就等于 mov eax,F11A24 此时eax中保存的数据就是333的首地址 od中当然会显示333了 |
|
[求助]关于DLL插入指定进程??
我说的方法老兄没试吧 你把那个dll复制到和计算器程序在同一目录下. 就是system32目录下 就ok 了,我这里测试成功. 注入自己的dll一般都要先获取dll路径,再注入的. |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值