二进制炸弹string_not_equal函数比较字符串是否相等的反汇编,并逐条解释
时间: 2024-03-02 07:48:10 浏览: 28
好的,下面是二进制炸弹第一阶段的`strings_not_equal`函数比较字符串是否相等的反汇编代码及逐条解释:
```assembly
08048c4b <strings_not_equal>:
8048c4b: 55 push ebp
8048c4c: 89 e5 mov ebp,esp
8048c4e: 83 ec 18 sub esp,0x18
8048c51: 8b 45 08 mov eax,DWORD PTR [ebp+0x8]
8048c54: 8b 55 0c mov edx,DWORD PTR [ebp+0xc]
8048c57: 89 04 24 mov DWORD PTR [esp],eax
8048c5a: e8 71 ff ff ff call 8048bd0 <strcmp@plt>
8048c5f: 85 c0 test eax,eax
8048c61: 0f 94 c0 sete al
8048c64: 0f b6 c0 movzx eax,al
8048c67: c9 leave
8048c68: c3 ret
```
1. `push ebp`:将当前函数的栈底指针 `ebp` 压入栈中,为当前函数建立栈帧。
2. `mov ebp, esp`:将当前栈顶指针 `esp` 的值赋给栈底指针 `ebp`,为当前函数建立栈帧。
3. `sub esp, 0x18`:在栈上分配 `0x18` 字节的空间,用于存储局部变量。
4. `mov eax, DWORD PTR [ebp+0x8]`:将第一个参数的值(即调用该函数时传入的第一个字符串)存储在寄存器 `eax` 中。
5. `mov edx, DWORD PTR [ebp+0xc]`:将第二个参数的值(即调用该函数时传入的第二个字符串)存储在寄存器 `edx` 中。
6. `mov DWORD PTR [esp], eax`:将第一个字符串的指针存储在栈顶指针 `esp` 指向的位置上。
7. `call 8048bd0 <strcmp@plt>`:调用 `strcmp` 函数,比较两个字符串是否相等。
8. `test eax, eax`:将 `eax` 寄存器的值与自身进行按位与操作,用于判断 `eax` 是否为零。
9. `sete al`:将 `al` 寄存器的值设置为 `1` 或 `0`,表示比较的结果是否相等。
10. `movzx eax, al`:将 `al` 寄存器的值(即比较结果)零拓展,存储到 `eax` 寄存器中。
11. `leave`:撤销当前函数的栈帧。
12. `ret`:从当前函数返回,并弹出栈顶元素。
以上是二进制炸弹第一阶段的`strings_not_equal`函数比较字符串是否相等的反汇编代码及逐条解释。该函数的作用是比较两个字符串是否相等,如果相等则返回0,否则返回非零值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)