精易论坛

标题: 动态置入代码 置入汇编 [打印本页]

作者: 万象梦境    时间: 2025-2-26 02:05
标题: 动态置入代码 置入汇编
众所周知。自带的置入代码只能写死,运行时改了也没用写了个新的置入代码(三个子程序配合使用)
可以是字节集数据或汇编代码或二进制文件名文本
里面调用了一个模块,是我以前写的,开源的
模块源码帖子:汇编代码转机器码    https://125.confly.eu.org/forum.php?mod=viewthread&tid=14849050    (出处: 精易论坛)



置入代码_初始化()  整个程序只需要调用一次,不要多次调用
置入代码_设置()  可以用来设置汇编代码、机器码、二进制文件
置入代码_执行()  占位用的子程序,需要写在 置入代码_设置()的下面,置入代码_设置()会将下方的 置入代码_执行()替换成jmp xxxx
置入代码_清理()   有bug,希望有缘的大佬可以修修
源码里写的示例,可以把示例删掉编译成模块不能写在计次循环中

不够完美
汇编基础有限,有些地方玩不明白
有两处置入代码每次都需要粘贴过去,用来定位子程序位置
希望有大佬改的完美些

不能熬夜敲代码了(HP-1)(MP+1)([color=rgba(0, 0, 0, 0.88)]头发-10086




动态置入代码.zip

197.78 KB, 下载次数: 39, 下载积分: 精币 -2 枚

售价: 1 枚 精币  [记录]

源码+模块


作者: 笨来无一悟    时间: 2025-2-26 02:42
本帖最后由 笨来无一悟 于 2025-2-26 02:44 编辑

整复杂了 可以简化一下
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
' 置入代码 ({ 184, 168, 0, 0, 0, 195 })
' MOV EAX,168
' RET
' 给 EAX 赋值 168
子程序1 ()
子程序名返回值类型公开备 注
子程序1  
变量名类 型静态数组备 注
机器码字节集 
测试整数型 
机器码 = { 184, 168, 0, 0, 0, 195 }  ' 拿 fasm 把汇编代码转换成机器码 再赋值给机器码字节集变量 可以动态更新算法 不过需要确保规格统一
' 设计的时候是通过某某算法 返回某个整数 动态置入 如果有返回值 就需要确保类型和设计之初一致
' 动态置入的原则是 不能改变入口参数数量 出口结果类型 只能动态更新 条件到结果的运算过程
置入代码 ({ 139, 117, 252, 131, 198, 8, 255, 214, 137, 69, 248 })  ' Call 机器码 再把 EAX 写到测试变量
' MOV ESI,[EBP-4]
' ADD ESI,8
' CALL ESI
' MOV DWORD [EBP-8],EAX
调试输出 (测试)  ' 如果没问题的话 这里应有 168



i支持库列表   支持库注释   
spec特殊功能支持库




作者: 笨来无一悟    时间: 2025-2-26 04:19
流程简化了一下
@Suky @萧楚楠
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
A整数型ebp-4
V整数型ebp-8
机器码字节集ebp-12
fasm_加载DLL ()  ' 汇编模块从本帖一楼压缩包中获取
A = 0
V = 10086
调试输出 (A, V, “初始”)
fasm_汇编转机器码 (“mov dword [ebp-4],”到文本 (V)#换行符“ret”, 机器码, , , )  ' 本层引用 直接写本层地址
置入代码 ({ 139, 117, 244, 131, 198, 8, 255, 214 })
' MOV ESI,[EBP-12]
' ADD ESI,8
' CALL ESI
调试输出 (A, V, “结束”)
调试输出 (“-我-是-分-隔-符-”)
A = 0
V = 166888
调试输出 (A, V, “初始”)
执行机器码 (“mov eax,[ebp]”#换行符“mov dword [eax-4],”到文本 (V)#换行符“ret”)  ' 下层引用 [EBP] 里面保存的就是上层的 EBP 回退一层再写
调试输出 (A, V, “结束”)
子程序名返回值类型公开备 注
执行机器码  
参数名类 型参考可空数组备 注
汇编码文本型
变量名类 型静态数组备 注
机器码字节集 
fasm_汇编转机器码 (汇编码, 机器码, , , )
置入代码 ({ 139, 69, 252, 131, 192, 8, 255, 208, 201, 194, 4, 0 })
' MOV EAX, DWORD PTR SS:[EBP-0X04]
' ADD EAX, 0X08
' CALL EAX
' LEAVE
' RET 0X04
' 回退层数参考以下内容↓
' 踩坑记录 终于摸明白访问上层函数参数变量的正确姿势了~~~
' [url]https://125.confly.eu.org/forum.php?mod=viewthread&tid=14829470[/url]
' (出处: 精易论坛)



i支持库列表   支持库注释   
spec特殊功能支持库


作者: pshq123    时间: 2025-2-26 06:23
66666666666666666666666666
作者: 非善类    时间: 2025-2-26 06:29
感谢分享,很给力!~
作者: 豆豆灰常开心    时间: 2025-2-26 07:05
感谢分享,很给力!~
作者: 查过    时间: 2025-2-26 07:09
已经顶贴,感谢您对论坛的支持!
作者: a019872140    时间: 2025-2-26 08:23
66666666666666666666666666666666
作者: haoyun5918    时间: 2025-2-26 09:16
感谢分享
作者: 神一样的人猫腻    时间: 2025-2-26 09:32
感谢分享
作者: wmv520    时间: 2025-2-26 11:14
        感谢分享,很给力!~
作者: 白云飘飘    时间: 2025-2-26 11:43
感谢分享,很给力!~
作者: hezeyu    时间: 2025-2-26 13:04

66666666666666666666666666
作者: qqmqqg    时间: 2025-2-26 13:36
666666666666666666
作者: hbqjb    时间: 2025-2-26 16:07
值得收藏,谢谢楼主!
作者: 一指温柔    时间: 2025-2-26 16:31
#在这里快速回复#感谢分享,支持开源!!!
作者: qq73s5456    时间: 2025-2-26 16:47
#在这里快速回复# 计次循环有问题一般是破坏了ECX寄存器导致的   
作者: 曦月    时间: 2025-2-26 17:15
论坛有你更精彩
作者: 胖子葛格    时间: 2025-2-26 18:30
感谢大神分享~!
作者: 卡卡1111    时间: 2025-2-26 18:36
支持开源~!感谢分享
作者: ttggnn    时间: 2025-2-26 20:49
感谢分享
作者: xtavoxing    时间: 2025-2-26 21:10
已经很厉害了
作者: 豆豆灰常开心    时间: 2025-2-27 07:15
感谢分享,很给力!~
作者: 查过    时间: 2025-2-27 07:20
感谢您对论坛的支持!
作者: 杨明煜    时间: 2025-2-27 07:54
感谢分享,真好!......
作者: year1970    时间: 2025-2-27 07:55
感谢分享
作者: kyo9766    时间: 2025-2-27 08:57
这样可以很方便看出来 置入代码的 数据了,感谢分享
作者: By未命名    时间: 2025-2-27 11:06
那问题来了,置入代码是什么,一直看不懂,后面一串数字又是怎么来的
作者: 豆豆灰常开心    时间: 2025-2-28 07:10
下个学习一下
作者: 查过    时间: 2025-2-28 07:14
感谢您对论坛的支持!
作者: please    时间: 2025-2-28 09:37
感谢分享,支持开源!!!
作者: please    时间: 2025-3-1 09:39
感谢分享,支持开源!!!




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4