为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

32位程序实现64位函数的真正底层调用,syscall

三叶资源网 2022-07-19 21:16:41 易语言例程 934 ℃ 0 评论

前言:

  • 本源码直接使用syscall汇编实现底层的x64函数的调用,不走任何多余的流程(包括64位的ntdll也不走)

实现:

  • 其实实现起来也不困难:

32位程序实现64位函数的真正底层调用,syscall

用CE看ntdll最后走向内核的实现,无非都是很简单的:

32位程序实现64位函数的真正底层调用,syscall

  • 先把rcx值给r10,然后赋值eax内核调用号(SSDT函数序号),然后判断CPU是否支持快速调用,支持就直接使用syscall,不支持使用int 2E中断门。

  • 本源码相当于直接将64位这些函数的实现过程直接使用汇编写了出来,其实并不复杂,主要是64位传参和32位的约定不同,64位使用rcx,rdx,r8,r9传递前4个参数,从第五个参数开始才使用rsp堆栈传参,明白了这一点,实现64位的syscall其实并不困难。

  • 64位内存读写测试(可以看到在0x100000000处成功申请内存并实现读写和内存属性修改):

32位程序实现64位函数的真正底层调用,syscall测试:真正的系统驱动信息获取(利用NtQuerySystemInformation_x64实现,纯粹的32位NtQuerySystemInformation是不可能实现的,论坛上的驱动信息获取基本没有几个正确的,看驱动的入口点地址就看得出来,64位长的入口点地址才是64位系统下的驱动应该有的地址):

32位程序实现64位函数的真正底层调用,syscall

PS:

  • 更多功能可自行拓展

@ANormalUser


文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
封包组包组件移动例程jar打包PHP火山移动宽带拨号龙珠直播采集过滤手机号PCQQ源码聊呗网页端微信加人比心APP登录奇易浏览框scrcpy投屏气泡聊天框模块树形框换行符源码鼠标离开悬停
最新评论