|
求解一个反汇编的问题
果断插入 |
|
关于64位汇编指令机器码求助
找个64位机器:开始运行里面输入DEBUG并确认执行,这时候打开一个黑色的DOS窗口,提示符是-,你可以在-后面输入命令,你输入A并回车之后就可以输入汇编指令,最后按几次回车就推出输入汇编语句的界面,回到-提示符号,这时候你输入U并回车就可以查看你刚才输入的汇编语句的机器代码,我用这个方法查看XOR AX,AX代码的过程如下: -a 0AFC:0100 xor ax,ax 0AFC:0102 -u 0AFC:0100 31C0 XOR AX,AX 或者写个程序dump下 方法二、 查阅CPU手册,每一个CPU都有相应的机器代码手册,详细说明每一条机器指令的编码规则。 不知道你要哪个体系结构的。纠结 |
|
[求助]关于内存搜索的问题
在梁肇兴 的编程高手里面 有这个的例程。可以参考下。 |
|
txt加密的文件,请解密
这个信息不能解密吧 |
|
[注意]微软杯Exploit Me安全调试技术挑战赛 比赛结果
我的乖乖。早知道情况这样子。我也能混本新书。失败 |
|
[求助]密码学里面的碰撞是什么意思?
数学语言表示,即对函数f(x),找到了x1,x2,且x1不等于x2,有f(x1)=f(x2)。但不一定限于hash之类的函数而言,例如对AES密钥的碰撞攻击(http://www.cnki.com.cn/Article/CJFDTOTAL-SDDX200704001.htm)。但其思想都和数学描述相同。 |
|
[转帖]再谈“我是怎么招聘程序员的”(下)
两种人我都遇到过! |
|
|
|
[讨论][讨论]大家谁来讲讲跨站提取cookie的原理啊
可以了解下 XSS 和XSRF |
|
|
|
[求助]关于memcahce的应用
对于第一个问题:http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps3/ 第二个问题:目前个人找不到加密的理由,作为内存数据,为提高访问数据库效率,频繁访问、频繁解密对性能也是有影响的。 |
|
[讨论]5年,脱胎换骨.特立帖为证!
:):加油 |
|
[原创]腾讯面试日记
就是函数调用约定了。 stdcall调 用约定声明的语法为(以前文的那个函数为例): int __stdcall function(int a,int b) stdcall的调用约定意味着:1)参数从右向左压入堆栈,2)函数自身修改堆栈 3)函数名自动加前导的下划线,后面紧跟一个@符号,其后紧跟着参数的尺寸 以上述这个函数为例,参数b首先被压栈,然后是参数a,函数调用 function(1,2)调用处翻译成汇编语言将变成: push 2 第二个参数入栈 push 1 第一个参数入栈 call function 调用参数,注意此时自动把cs:eip入栈 而对于函数自身,则可以翻译为: push ebp 保存ebp寄存器,该寄存器将用来保存堆栈的栈顶指针,可以在函数退出时恢复 mov ebp,esp 保存堆栈指针 mov eax,[ebp + 8H] 堆栈中ebp指向位置之前依次保存有ebp,cs:eip,a,b,ebp +8指向a add eax,[ebp + 0CH] 堆栈中ebp + 12处保存了b mov esp,ebp 恢复esp pop ebp ret 8 而在编译时,这个函数的名字被翻译成_function@8 注意不同编译器会插入自己的汇编代码以提供编译的通用 性,但是大体代码如此。其中在函数开始处保留esp到ebp中,在函数结束恢复是编译器常用的方法。 从函数调用看,2和1依次被push进堆 栈,而在函数中又通过相对于ebp(即刚进函数时的堆栈指针)的偏移量存取参数。函数结束后,ret 8表示清理8个字节的堆栈,函数自己恢复了堆栈。 cdecl调用约定 cdecl调用约定又称为C调用约定,是C语言缺省的调用约定,它的定义语法是: int function (int a ,int b) //不加修饰就是C调用约定 int __cdecl function(int a,int b)//明确指出C调用约定 在写本文时,出乎我的意料,发现cdecl调用约定的参数压栈顺序是和stdcall是一样的,参数首先由有向左 压入堆栈。所不同的是,函数本身不清理堆栈,调用者负责清理堆栈。由于这种变化,C调用约定允许函数的参数的个数是不固定的,这也是C语言的一大特色。对 于前面的function函数,使用 cdecl后的汇编码变成: 调用处 push 1 push 2 call function add esp,8 注意:这里调用者在恢复堆栈 被调用函数_function处 push ebp 保存ebp寄存器,该寄存器将用来保存堆栈的栈顶指针,可以在函数退出时恢复 mov ebp,esp 保存堆栈指针 mov eax,[ebp + 8H] 堆栈中ebp指向位置之前依次保存有ebp,cs:eip,a,b,ebp +8指向a add eax,[ebp + 0CH] 堆栈中ebp + 12处保存了b mov esp,ebp 恢复esp pop ebp ret 注意,这里没有修改堆栈 MSDN中说,该修饰自动在函数名前加前导的下划线,因此函数名在符号表中被记录为_function,但 是我在编译时似乎没有看到这种变化。 由于参数按照从右向左顺序压栈,因此最开始的参数在最接近栈顶的位置,因此当采用不定个数参数时,第一个 参数在栈中的位置肯定能知道,只要不定的参数个数能够根据第一个后者后续的明确的参数确定下来,就可以使用不定参数,例如对于CRT中的sprintf函 数,定义为: int sprintf(char* buffer,const char* format,……) 由于所有的不定 参数都可以通过format确定,因此使用不定个数的参数是没有问题的。 fastcall fastcall调用约定和 stdcall类似,它意味着: 函数的第一个和第二个DWORD参数(或者尺寸更小的)通过ecx和edx传递,其他参数通过从右向左的顺序 压栈 被调用函数清理堆栈 函数名修改规则同stdcall 其声明语法为:int fastcall function(int a,int b) thiscall thiscall是唯一一个不能明确指明的函数修饰,因为 thiscall不是关键字。它是C++类成员函数缺省的调用约定。由于成员函数调用还有一个this指针,因此必须特殊处理,thiscall意味着: 参数从右向左入栈 如果参数个数确定,this指针通过ecx传递给被调用者;如果参数个数不确定,this指针在所有参数压栈后被压入堆 栈。 对参数个数不定的,调用者清理堆栈,否则函数自己清理堆栈。 |
|
|
|
[求助]请教各位在安全公司的大牛。
IT杯具 ╮(╯▽╰)╭。这么看 |
|
[原创]PHPwind7.5GBK版漏洞简单分析!
好久没上了,发现这热闹些了 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值