开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 160|回复: 4
收起左侧

[已解决] 汇编问题

 关闭 [复制链接]
结帖率:100% (15/15)
发表于 6 天前 | 显示全部楼层 |阅读模式   河北省唐山市
14精币

a1fd7f8c-1329-4ab6-9799-b55431e7bfc6.png NB模块远程HOOK里调用 汇编    这里应该怎么写 以前我看别人开源的都是写0  我调试了下这里改成0 不能行了  需要带上里边的东西  不知道是不是加密的东西
自己手撸了下汇编 这样写还是崩溃

最佳答案

查看完整内容

没去调试VX 看看能不能明白弟弟要表达的意思吧 [e=0].版本 2 .子程序 发送文本 .参数 wxid, 文本型 .参数 内容, 文本型 .局部变量 进程句柄, 整数型, , , 4 .局部变量 内存地址, 整数型, , , 8 .局部变量 代码, 字节集, , , c .局部变量 Call_地址, 整数型, , , 10 .局部变量 wxid结构, 整数型, , , 14 .局部变量 内容结构, 整数型, , , 18 .局部变量 寄存器地址, 整数型 .局部变量 局_汇编字节, 字节集 .局部变量 远程 ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:0% (0/1)

签到天数: 15 天

发表于 6 天前 | 显示全部楼层   广东省东莞市
没去调试VX 看看能不能明白弟弟要表达的意思吧
  
子程序名返回值类型公开备 注
发送文本  
参数名类 型参考可空数组备 注
wxid文本型
内容文本型
变量名类 型静态数组备 注
进程句柄整数型4
内存地址整数型8
代码字节集c
Call_地址整数型10
wxid结构整数型14
内容结构整数型18
寄存器地址整数型 
局_汇编字节字节集 
远程地址整数型 
如果真 (wxid = “” 内容 = “” VX_jz = 0)
返回 ()
进程句柄 = 进程一打开进程 (VX_进程id)
Call_地址 = VX_jz + 十六进制 (“13C9093”)
' 返回 ()
' wxid结构 = 写wx结构 (进程句柄, wxid)
' 内容结构 = 写wx结构 (进程句柄, 内容)
内存地址 = NB内存.申请内存2 (进程句柄, 1024)
NB内存.写整数2 (进程句柄, 内存地址 + 4, 1, )  ' ebp+4
NB内存.写整数2 (进程句柄, 内存地址 + 8, 2, )  ' ebp+8
NB内存.写整数2 (进程句柄, 内存地址 + 12, 3, )  ' ebp+c
NB内存.写整数2 (进程句柄, 内存地址 + 16, 4, )  ' ebp+10
NB内存.写整数2 (进程句柄, 内存地址 + 20, 5, )  ' ebp+14
NB内存.写整数2 (进程句柄, 内存地址 + 24, Call_地址, )  ' ebp+18
' 置入代码 ({ 96 })  ' pushad
' 置入代码 ({ 156 })  ' pushfd
' 置入代码 ({ 106, 0 })  ' push 0x0
' 置入代码 ({ 106, 0 })  ' push 0x0
' 置入代码 ({ 184, 0, 0, 0, 0 })  ' mov eax, 0x0
' 置入代码 ({ 106, 1 })  ' push 0x1
' 置入代码 ({ 106, 1 })  ' push 0x1
' 置入代码 ({ 80 })  ' push eax
' 置入代码 ({ 139, 69, 236 })  ' mov eax,dword[ebp-0x18]
' 置入代码 ({ 80 })  ' push eax
' 置入代码 ({ 139, 85, 232 })  ' mov edx,dword[ebp-0x14]
' 置入代码 ({ 139, 141, 200, 234, 255, 255 })  ' mov ecx,dword[ebp-0x1538]
' 置入代码 ({ 255, 85, 240 })  ' call dword[ebp-0x10]
' 置入代码 ({ 131, 196, 24 })  ' add esp, 0x18
' 置入代码 ({ 157 })  ' popfd
' 置入代码 ({ 97 })  ' popad
' 置入代码 ({ 195 })  ' ret
局_汇编字节 = { 96 }  ' |pushad
局_汇编字节 = 局_汇编字节 + { 156 }  ' |pushfd
局_汇编字节 = 局_汇编字节 + { 189 }到字节集 (到整数 (内存地址))  ' 申请的内存地址赋值给EBP
局_汇编字节 = 局_汇编字节 + { 106, 0 }  ' |push 0x00000000
局_汇编字节 = 局_汇编字节 + { 106, 0 }  ' |push 0x00000000
局_汇编字节 = 局_汇编字节 + { 184, 0, 0, 0, 0 }  ' |mov eax, 0x00000000
局_汇编字节 = 局_汇编字节 + { 106, 1 }  ' |push 0x00000001
局_汇编字节 = 局_汇编字节 + { 106, 1 }  ' |push 0x00000001
局_汇编字节 = 局_汇编字节 + { 80 }  ' |push eax
局_汇编字节 = 局_汇编字节 + { 139, 69, 12 }  ' |mov eax, dword [ebp+0xC] 内存地址+12
局_汇编字节 = 局_汇编字节 + { 80 }  ' |push eax
局_汇编字节 = 局_汇编字节 + { 139, 85, 16 }  ' |mov edx, dword [ebp-0x10] 内存地址+16
局_汇编字节 = 局_汇编字节 + { 139, 77, 20 }  ' mov ecx, dword [ebp+0x14] 内存地址+20
局_汇编字节 = 局_汇编字节 + { 255, 85, 24 }  ' |call dword [ebp-0x18] 内存地址+24
' 局_汇编字节 = 局_汇编字节 + { 131, 196, 24 }  ' add esp, 0x18取决于上面call地址里面RET弹出了多少咱们压入的参数 少弹了必须自己补 多弹了自己加
局_汇编字节 = 局_汇编字节 + { 157 }  ' |popfd
局_汇编字节 = 局_汇编字节 + { 97 }  ' |popad
局_汇编字节 = 局_汇编字节 + { 195 }  ' |ret
' 进程一调用汇编代码2 (进程句柄, 代码, )
远程地址 = NB内存.申请内存2 (进程句柄, 1024)
NB内存.写字节集2 (进程句柄, 远程地址, 局_汇编字节)
CreateRemoteThread (进程句柄, 0, 0, 远程地址, 0, 0, 0)
' NB内存.释放2 (进程句柄, wxid结构)
' NB内存.释放2 (进程句柄, 内容结构)
CloseHandle (进程句柄)

补充内容 (2024-11-16 16:04):
从你给的图片 看必须自己去清理栈的 局_汇编字节 = 局_汇编字节 + { 131, 196, 24 } 不能屏蔽

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:0% (0/1)

签到天数: 15 天

发表于 6 天前 | 显示全部楼层   广东省东莞市
从图上看只有一个add esp,18把堆栈搞坏了 寄存器 标志位还原都出错了
回复

使用道具 举报

结帖率:0% (0/1)

签到天数: 15 天

发表于 6 天前 | 显示全部楼层   广东省东莞市
代码人生 发表于 2024-11-15 12:04
从图上看只有一个add esp,18把堆栈搞坏了 寄存器 标志位还原都出错了

sub esp,18呢

补充内容 (2024-11-15 12:10):
最好上源码
回复

使用道具 举报

结帖率:100% (15/15)

签到天数: 14 天

 楼主| 发表于 6 天前 | 显示全部楼层   河北省唐山市
代码人生 发表于 2024-11-15 12:05
sub esp,18呢

补充内容 (2024-11-15 12:10):

.版本 2
.支持库 spec

.子程序 发送文本, , , QQ:2431179943
.参数 wxid, 文本型
.参数 内容, 文本型
.局部变量 进程句柄, 整数型, , , 4
.局部变量 内存地址, 整数型, , , 8
.局部变量 代码, 字节集, , , c
.局部变量 Call_地址, 整数型, , , 10
.局部变量 wxid结构, 整数型, , , 14
.局部变量 内容结构, 整数型, , , 18
.局部变量 寄存器地址, 整数型

.如果真 (wxid = “” 或 内容 = “” 或 VX_jz = 0)
    返回 ()
.如果真结束
进程句柄 = 进程一打开进程 (VX_进程id)
Call_地址 = VX_jz + 十六进制 (“13C9093”)
调试输出 (进制_十到十六 (Call_地址))
' 返回 ()
wxid结构 = 写wx结构 (进程句柄, wxid)
内容结构 = 写wx结构 (进程句柄, 内容)
内存地址 = NB内存.申请内存2 (进程句柄, 1024)
NB内存.写整数2 (进程句柄, 内存地址 + 100, 0, )
NB内存.写整数2 (进程句柄, 内存地址 + 200, 0, )
NB内存.写整数2 (进程句柄, 内存地址 + 204, 0, )
NB内存.写整数2 (进程句柄, 内存地址 + 208, 0, )
NB内存.写整数2 (进程句柄, 内存地址 + 300, 0, )
NB内存.写整数2 (进程句柄, 内存地址 + 400, Call_地址, )


' 置入代码 ({ 96 })  ' pushad
' 置入代码 ({ 156 })  ' pushfd
' 置入代码 ({ 106, 0 })  ' push 0x0
' 置入代码 ({ 106, 0 })  ' push 0x0
' 置入代码 ({ 184, 0, 0, 0, 0 })  ' mov eax, 0x0
' 置入代码 ({ 106, 1 })  ' push 0x1
' 置入代码 ({ 106, 1 })  ' push 0x1
' 置入代码 ({ 80 })  ' push eax
' 置入代码 ({ 139, 69, 236 })  ' mov eax,dword[ebp-0x18]
' 置入代码 ({ 80 })  ' push eax
' 置入代码 ({ 139, 85, 232 })  ' mov edx,dword[ebp-0x14]
' 置入代码 ({ 139, 141, 200, 234, 255, 255 })  ' mov ecx,dword[ebp-0x1538]
' 置入代码 ({ 255, 85, 240 })  ' call dword[ebp-0x10]
' 置入代码 ({ 131, 196, 24 })  ' add esp, 0x18
' 置入代码 ({ 157 })  ' popfd
' 置入代码 ({ 97 })  ' popad
' 置入代码 ({ 195 })  ' ret
代码 = { 96, 156, 106, 0, 106, 0, 184, 0, 0, 0, 0, 106, 1, 106, 1, 80, 139, 69, 232, 80, 139, 85, 236, 139, 141, 200, 234, 255, 255, 255, 85, 240, 157, 97, 195 }
进程一调用汇编代码2 (进程句柄, 代码, )
NB内存.释放2 (进程句柄, wxid结构)
NB内存.释放2 (进程句柄, 内容结构)
CloseHandle (进程句柄)
回复

使用道具 举报

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

本版积分规则 致发广告者

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

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

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