了解汇编和对应的寄存器之后,我们完全的可以将存储字符串的地址块的首的地址交付给EBP (指令堆栈指针寄存器)当作指令执行。

所以我们的实现基于汇编,在c 代码中嵌入汇编即可:

那一段字符串必须是二进制的机器码,就像下面demo的字符串 hack那样的。然后在fvck函数执行完后,会跳到字符串hack内,把字符串hack当作汇编指令继续执行hack内把EAX赋值为0xdeadbeef,改变了fvck函数的返回值,最后ret 返回到主函数中。有vc6.0之类的可以运行看一下,gcc也是可以的,不过要把里面的_asm换了。

#include<cstdio>
char hack[] = {184,239,190,173,222,104,0,0,0,0,195,0};
int fvck()
{
char* p;
_asm mov p,ebp
p += 4;
hack[6] = *p;
hack[7] = p[1];
hack[8] = p[2];
hack[9] = p[3];
*(int*)p = (int)hack;
return 0;
}
int main()
{
int i=fvck();
printf("%x\n",i);
return 0;
}

这种的实现类似 虚拟机中的JIT.

实现将字符串转换为指令执行相关推荐

  1. 在上司面前硬不起来?教你如何快速将字符串转换为可执行代码

       老是因为活不好被上司欺凌?     在上司面前很没面子?     在上司面前硬不起来?     是时候分享一个可以快速将字符串转换为可执行代码的项目给你了 - YACEP !     不过,这不 ...

  2. js字符串转换为对象格式

    var str = '{"name":"小明","age":18}'; 将字符串转化json对象: var json = JSON.pars ...

  3. 如何在Bash中将字符串转换为小写?

    bash中有一种方法可以将字符串转换为小写字符串? 例如,如果我有: a="Hi all" 我想将其转换为: "hi all" #1楼 如果使用v4,则已烘焙 ...

  4. 如何在JavaScript中将字符串转换为布尔值?

    我可以将表示布尔值(例如" true"," false")的字符串转换为JavaScript中的固有类型吗? 我有一个隐藏的HTML表单,该表单会根据用户在列表 ...

  5. 汇编中的字符串操作指令

    每一种语言都有一些字符串操作函数,反汇编后的代码也不例外.网上讲的都比较零碎,我将它们收集起来,并配上自己的理解,形成本文. 一.字节操作指令:lodsb和stosb 1. lodsd需要寄存器esi ...

  6. 一个将字符串转换为整数的函数--atoi()

    需要的头文件 #include<stdlib.h> 函数原型 int atoi(const char *str) 参数 str : 要转换为整数的字符串. 返回值 该函数返回转换后的长整数 ...

  7. 1.2.4 计算机的工作过程(从源程序到可执行文件、指令执行过程的描述)

    文章目录 1.计算机工作过程分为三步骤 2.从源程序到可执行文件 (1)预处理阶段 (2)编译阶段 (3)汇编阶段 (4)链接阶段 3.指令执行过程的描述 举个例子 (1)取指令:PC->MAR ...

  8. 汇编语言--微机CPU的指令系统(五)(字符串操作指令)

    (11)字符串操作指令 字符串操作指令的实质是对一片连续存储单元进行处理,这片存储单元是由隐含指针DS:SI或ES:DI来指定的.字符串操作指令可对内存单元按字节.字或双字进行处理,并能根据操作对象的 ...

  9. php 字符型转变为数值,php怎么把字符串转换为数值?

    php怎么把字符串转换为数值?下面本篇文章给大家介绍一下PHP把字符串转换为数值的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. PHP中的字符串可以很容易地转换成数值(flo ...

最新文章

  1. linux除了eeprom其他的保存方法,linux的EEPROM的读写控制.doc
  2. Springmvc 中org.springframework.http.converter.json.MappingJackson2HttpMessageConverter依赖jackson包...
  3. Pytorch自定义Dataset和DataLoader去除不存在和空的数据
  4. YbtOJ-连通的图【结论,线性基】
  5. 面向犯罪编程,9名程序员锒铛入狱
  6. pillow是python的图像处理标准库_详解Python图像处理库Pillow常用使用方法
  7. Visual Studio Code 1.48 发布
  8. 异常为当IDENTITY_INSERT设置为OFF时 的解决
  9. 纽约出租车计费问题:如何加载千万行级的大数据集
  10. [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
  11. docker进阶与实战 3 理解docker镜像
  12. 十大漏洞破解网吧管理软件(1)
  13. 如何在jdk官网下载想要的版本
  14. 查看文件和文件夹大小
  15. 程序员为什么要写博客
  16. 用python制作动态二维码_用Python制作动态二维码
  17. 【文献阅读】 2019-IJCAI-Sequential Recommender Systems Challenges, Progress and Prospects
  18. 希腊字母表(直接输入希腊字母的方法)
  19. 《关键对话》如何高效能沟通之掌握关键对话
  20. 检样用计算机时间,怎么检查电脑用了多久?

热门文章

  1. hadoop的三大核心组件之HDFS和YARN
  2. MetaException(message:Hive Schema version 3.0.0 does not match metastore's schema version 1.2.0 Meta
  3. python查询天气
  4. c 语言 string类型转换,用标准c++实现string与各种类型之间的转换
  5. Java构建工具, ZeroC ICE, word2vec
  6. php一点按钮就下载功能源码,php实现强制文件下载方法的源码参考
  7. HTTPClient 出现Cannot inherit from final class
  8. Service Mesh服务网格:是什么和为什么
  9. jdk1.8 idea 项目报错spring验证不通过
  10. 每周.NET前沿技术文章摘要(2017-05-24)