吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3103|回复: 6
收起左侧

[其他转载] 32位内联64位代码

[复制链接]
JuncoJet 发表于 2020-9-21 14:54
改进自楼下这个代码,适合内联进C/C++等编译器
[原创]SysWOW64的奇技淫巧
https://www.52pojie.cn/thread-1232264-1-1.html
(出处: 吾爱破解论坛)


演示程序 MASMPlus + FASM
TIM图片20200921145407.png
[Asm] 纯文本查看 复制代码
.386.model flat, stdcall  ;32 bit memory model
option casemap :none  ;case sensitive

Include user32.inc
IncludeLib user32.lib
Include kernel32.inc
IncludeLib kernel32.lib
Include libc.inc
IncludeLib msvcrt.lib

.data
	strTitle db 'Helloworld!',0
	fmt db '%08X %08X',0
	buf db 200 dup(?)
.code
start:
	invoke MessageBox,0,addr strTitle,addr strTitle,0
	push eax
	push offset sys64_start
	mov DWORD ptr[esp+4],033h
	jmp FWORD ptr[esp]
sys64_start:
	;这里插入64位代码
	db 48h,0C7h,0C2h,0FFh,0FFh,0FFh,0FFh,52h,67h,8Bh,04h,24h,67h,8Bh,5Ch,24h,04h,5Ah
	push eax
	push offset sys32_start
	mov DWORD ptr[esp+4],023h
	jmp FWORD ptr[esp]
sys32_start:
	invoke sprintf,addr buf,addr fmt,eax,ebx
	invoke MessageBox,0,addr buf,addr strTitle,0
	invoke ExitProcess,0
end start

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
610100 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

c03xp 发表于 2020-9-21 15:05
其实就是编译器认为你的代码是32位的,你写rax它看不明白,
所以把64位汇编指令翻译成机器码的字节序列,
当做数据放在那个位置,运行跳转到这里的时候会按照64位指令执行

免费评分

参与人数 2吾爱币 +4 热心值 +2 收起 理由
610100 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
JuncoJet + 1 + 1 解释很贴切,不过重点还是CS段选择子

查看全部评分

一个需要钱的人 发表于 2020-9-21 15:53
tzhv_9w6 发表于 2020-9-25 09:33
wsf5201314 发表于 2021-2-5 19:23

谢谢分享   学习了 涨知识了
davidhee 发表于 2022-1-29 19:55
本帖最后由 davidhee 于 2022-1-29 20:20 编辑

谢谢分享。

tohyueyun 发表于 2022-5-23 22:32
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 08:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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