开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 370|回复: 7
收起左侧

[精币悬赏] 关于汇编代码写入E语言

[复制链接]
结帖率:79% (19/24)
发表于 2025-2-13 12:50:01 | 显示全部楼层 |阅读模式   江西省南昌市
5精币
mov edx,00FAB6FF
xor eax,eax
数据包存放:movzx ecx,byte ptr [eax+我的数据包存放地址]
inc eax
mov [edx],ecx
inc edx
cmp eax,12
jl 到 上面的数据包存放地方
add edx,FFFFFFEe
call 我的程序集
ret
有大佬可以给个例子吗? 这个在e语言中怎么写.

结帖率:100% (26/26)

签到天数: 9 天

发表于 2025-2-13 13:06:55 | 显示全部楼层   上海市上海市
  
.支持库Extension
// 定义一些变量
字节数据 = []
目标地址指针 = 0
源地址指针 = 0
目标地址 = "00FAB6FF" // 根据实际情况修改
源地址 = "我的数据包存放地址" // 根据实际情况修改
程序集地址 = "我的程序集" // 根据实际情况修改
// 分配内存(模拟 mov edx, 00FAB6FF)
目标地址指针 = 整数_从十六进制文本 (目标地址)
// 分配内存空间
分配的内存 = API.分配内存 (目标地址指针, 100) // 分配 100 字节的内存
源地址指针 = 整数_从十六进制文本 (源地址)
源数据 = 读取内存 (源地址指针, 12) // 读取 12 字节数据
目标地址指针 = 整数_从十六进制文本 (目标地址)
// 将源数据写入目标地址
API.写入内存 (目标地址指针, 源数据)
目标地址指针 = 目标地址指针 + 12
// 调整指针(add edx, FFFFFFEe,等同于目标地址指针 - 18)
目标地址指针 = 目标地址指针 + (-18)
// 调用我的程序集
API.调用函数 (程序集地址)
// 最后返回


i支持库列表   支持库注释   
eAPI应用接口支持库

点评

kimi写的   上海市上海市  发表于 2025-2-13 13:07
回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 5 天

发表于 2025-2-13 13:20:39 | 显示全部楼层   河北省张家口市
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 11 天

发表于 2025-2-13 13:47:46 | 显示全部楼层   河南省郑州市
  
窗口程序集名保 留  保 留备 注
程序集1   
变量名类 型数组备 注
数据包存放地址字节型12"  ' 假设原始数据包存放 
目标地址字节型30"       ' 预留足够空间(12 

子程序名返回值类型公开备 注
_启动子程序整数型 
变量名类 型静态数组备 注
eax整数型 
edx指针整数型 
' 初始化指针(假设目标地址从第7个字节开始)
edx指针 = 取变量数据地址 (目标地址) + 6  ' 对应 00FAB6FF 的模拟
' 清空计数器
eax = 0
' 开始循环复制数据
判断循环首 (eax < 12)
' 读取源数据并写入目标地址
目标地址 [eax + 6] = 数据包存放地址 [eax]  ' +6 对应 edx 初始位置
eax = eax + 1
判断循环尾 ()
' 调整指针位置(edx = edx +12 -18 = edx -6)
edx指针 = edx指针 - 6
' 调用处理程序
我的程序集 (edx指针)
返回 (0)
子程序名返回值类型公开备 注
我的程序集  
参数名类 型参考可空数组备 注
内存指针整数型
' 这里添加处理内存数据的代码


回复

使用道具 举报

结帖率:88% (14/16)
发表于 2025-2-13 14:05:17 | 显示全部楼层   河南省洛阳市
.版本 2

.子程序 数据包处理, 公开
.局部变量 目标地址, 整数型
.局部变量 源数据, 字节集
.局部变量 计数器, 整数型

' 设置目标地址
目标地址 = &H00FAB6FF

' 假设源数据是一个12字节的数据包
源数据 = 字节集 ({1,2,3,4,5,6,7,8,9,10,11,12})  ' 这里用示例数据

' 复制数据
计数器 = 0
.判断循环首 (计数器 < 12)
    内存写入字节型 (目标地址 + 计数器, 取字节集数据 (源数据, 计数器 + 1))
    计数器 += 1
.判断循环尾

' 调整目标地址
目标地址 += -18  ' FFFFFFEe 是 -18 的补码

' 这里可以调用您的程序集
' 调用动态链接库 ("您的DLL.dll", "函数名", 参数...)

返回 ()
.子程序结束       cursor  写的
回复

使用道具 举报

结帖率:50% (1/2)

签到天数: 1 天

发表于 2025-2-13 15:37:39 | 显示全部楼层   云南省楚雄彝族自治州
在易语言中,直接编写汇编代码是不支持的,但可以通过调用外部DLL或使用易语言的内置函数来实现类似的功能。以下是一个简单的例子,展示如何在易语言中实现类似的功能。

假设我们要将一段数据包的内容复制到另一个内存地址,并调用一个子程序。以下是一个可能的实现:

easy
复制
.版本 2

.程序集 程序集1

.子程序 _启动子程序, 整数型, 公开
    .局部变量 数据包存放地址, 整数型
    .局部变量 目标地址, 整数型
    .局部变量 计数器, 整数型
    .局部变量 数据包内容, 字节型, , "12"

    ' 假设数据包存放地址为0x1000
    数据包存放地址 = 十六进制 (“1000”)
   
    ' 假设目标地址为0x00FAB6FF
    目标地址 = 十六进制 (“00FAB6FF”)
   
    ' 初始化计数器
    计数器 = 0
   
    ' 循环复制数据包内容
    .循环判断首 ()
        ' 读取数据包内容
        数据包内容 [计数器] = 读内存字节型 (数据包存放地址 + 计数器)
        
        ' 将数据包内容写入目标地址
        写内存字节型 (目标地址 + 计数器, 数据包内容 [计数器])
        
        ' 增加计数器
        计数器 = 计数器 + 1
        
        ' 判断是否完成复制
    .循环判断尾 (计数器 < 12)
   
    ' 调整目标地址
    目标地址 = 目标地址 + 十六进制 (“FFFFFFEe”)
   
    ' 调用子程序
    调用子程序 (我的程序集)
   
    ' 返回
    返回 (0)

.子程序 我的程序集
    ' 这里可以编写你的程序集代码
    信息框 (“程序集被调用”, 0, )
解释:
数据包存放地址:假设数据包存放在内存地址 0x1000。

目标地址:假设目标地址为 0x00FAB6FF。

计数器:用于循环计数,确保复制12个字节。

读内存字节型 和 写内存字节型:易语言中的内存读写函数,用于读取和写入内存中的字节数据。

调用子程序:调用一个子程序,模拟汇编中的 call 指令。

注意事项:
易语言本身不支持直接操作内存地址,因此需要使用外部DLL或API来实现内存读写操作。

上述代码中的内存地址和操作是假设的,实际使用时需要根据具体情况进行调整。

如果你有更复杂的需求,可能需要使用C/C++等语言编写DLL,然后在易语言中调用。
回复

使用道具 举报

结帖率:60% (3/5)
发表于 2025-2-14 15:26:33 | 显示全部楼层   吉林省松原市
用CEAA     易语言 直接开启 CE 汇编窗口 就进去了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表