c-->汇编
来源:互联网 发布:数据字典的编写方法 编辑:程序博客网 时间:2024/05/28 16:03
课程链接
https://www.ichunqiu.com/course/50571
获取函数地址
#include "windows.h"#include "stdio.h"void main(){ HINSTANCE LibHandle = LoadLibrary("Kernel32.dll"); printf("Kernel32.dll address = 0x%x \n", LibHandle); // LoadLibrary地址 LPTSTR mAddr = (LPTSTR)GetProcAddress(LibHandle, "LoadLibraryA"); printf("LoadLibraryA address = 0x%x \n", mAddr); LibHandle = LoadLibrary("MSVCRT.DLL"); printf("MSVCRT.DLL address = 0x%x \n", LibHandle); // system地址 mAddr = (LPTSTR)GetProcAddress(LibHandle, "system"); printf("system address = 0x%x \n", mAddr);}
编写汇编
编写以下两句话的汇编
LoadLibrary(“msvcrt.dll”);
system(“start cmd”);
#include "windows.h"#include "stdio.h"void main(){ //LoadLibrary("msvcrt.dll"); //汇编 _asm { // 构建堆栈 push ebp // 栈底指针入栈 mov ebp, esp // 新的栈底指针 xor eax, eax // eax清零,异或,为存放参数作准备 push eax // 一个寄存器4个字节,“msvcrt.dll”字符串长度为10,需3个寄存器大小的栈空间 push eax push eax // 存放参数 mov byte ptr[ebp-0ch], 6dh // 'm'的ASCII码 mov byte ptr[ebp-0bh], 73h // 's' mov byte ptr[ebp-0ah], 76h // 'v' mov byte ptr[ebp-09h], 63h // 'c' mov byte ptr[ebp-08h], 72h // 'r' mov byte ptr[ebp-07h], 74h // 't' mov byte ptr[ebp-06h], 2eh // '.' mov byte ptr[ebp-05h], 64h // 'd' mov byte ptr[ebp-04h], 6ch // 'l' mov byte ptr[ebp-03h], 6ch // 'l' lea eax, [ebp-0ch] // eax 中为"msvcrt.dll"这个字符串的地址 push eax // esp指向eax // 调用函数 mov eax, 0x76074977 // LoadLibrary 函数的地址 call eax } //system("start cmd"); _asm { push ebp mov ebp, esp xor edi, edi push edi push edi push edi mov byte ptr[ebp-0ch], 73h // s mov byte ptr[ebp-0bh], 74h // t mov byte ptr[ebp-0ah], 61h // a mov byte ptr[ebp-09h], 72h // r mov byte ptr[ebp-08h], 74h // t mov byte ptr[ebp-07h], 20h // mov byte ptr[ebp-06h], 63h // c mov byte ptr[ebp-05h], 6dh // m mov byte ptr[ebp-04h], 64h // d lea edi, [ebp-0ch] push edi mov edx, 0x752bb177 call edx } exit(0);}
阅读全文
0 0
- 汇编c
- c-->汇编
- c反汇编学习汇编
- 汇编基础知识 - [C/C++]
- 汇编分析-改c
- 汇编与C....
- 汇编与C配合
- c语言汇编
- C语言调用汇编
- C调用汇编函数
- C 汇编混合编程
- 汇编调用C库函数
- C和汇编
- C内联汇编
- C调用汇编
- C 内联汇编
- c,汇编互调
- c语言汇编
- host header attack解决方案
- Vbox下增加磁盘
- FasterRCNN在ubuntu下编译走过几个小坑
- 简单的分页
- Gmapping 乱七八糟
- c-->汇编
- db_recovery_file_dest_size 修改大一点及删除归档日志
- 【Mybatis学习】Mybatis学习之调用Mysql存储过程(1传入2输出)
- 周中训练笔记17
- 2.4管理修改
- NOIP 2017 提高组游记
- 指针(一)——指针与二级指针
- java-异常
- 【测试】之认知