财富快车中的几个比较有用的逆向代码

机器人快车roboexp 机器人快车(RoBoEXP)301是图形化编程的软件,比传统的文本编程更加高级,体现在于它的易用性、易读性,非常适合于培养编程思维,特别是适用于青少年的素质教育。 机器人快车采用基于工程c的图形化、模块化编程语言,全部功能模块使用图标表示,遵循自顶向下的编程逻辑思维过程。用户只需要简单地拖放相应的功能模块图标,绘制出流程图,机器人快车就能自动生成可视化c语言源代码,帮助您轻松完成编程,快速掌握如何控制机器人。 立即下载
是这几个:
FindPsLoadedModuleList
GetKernelModuleName
GetModuleBase

IRP HOOK的那几个我也逆出来了不过我看比较简单就不发了。

Copy code
PLIST_ENTRY PsLoadedModuleList;
extern DWORD      NtBuildNumber;
WCHAR              g_wszKrnlModuleName[128] = {0};
BOOL FindPsLoadedModuleList(PDRIVER_OBJECT DriverObject, PLIST_ENTRY *pList)
    {
    PLIST_ENTRY pListEntry = NULL;

    if (NtBuildNumber == 2195 )                          // win 2000
        {
        pListEntry = DriverObject->DriverSection;
        if (pListEntry == NULL )
            {
            DbgPrint("ModuleList is NULL!/n");
            return FALSE;
            }
        }
    else
        {
        __asm
            {
            mov    eax, 0FFDFF034h
            mov    eax, [eax]
            mov    eax, [eax+70h]
            mov    pListEntry, eax
            }
        if (pListEntry == NULL )
            {
            DbgPrint("ModuleList is NULL!/n");
            return FALSE;
            }
        }

    *pList = pListEntry;
    return TRUE;
    }

BOOL  GetKernelModuleName(void)
    {
    PLIST_ENTRY  KernelBase = NULL;
    PLIST_ENTRY  pListEntry = NULL;
    WCHAR      szName[128] = {0};
    WCHAR      *pPos = NULL;

    __asm
        {
        mov    eax, PsLoadedModuleList
        mov    ebx, [eax]
        mov    KernelBase, ebx
        mov    pListEntry, ebx
        }
    while(1)
        {
        if (((PLDR_DATA_TABLE_ENTRY)pListEntry)->SizeOfImage)
            {
            if (MmIsAddressValid(((PLDR_DATA_TABLE_ENTRY)pListEntry)->FullDllName.Buffer))
                {
                if (((PLDR_DATA_TABLE_ENTRY)pListEntry)->FullDllName.Buffer != NULL)
                    {
                    wcsncpy(szName,((PLDR_DATA_TABLE_ENTRY)pListEntry)->FullDllName.Buffer,((PLDR_DATA_TABLE_ENTRY)pListEntry)->FullDllName.Length / 2);
                    _wcslwr(szName);
                    if ( wcsstr(szName, L"krnl") )                            // krnl
                        break;
                    }
                }
            }
       
        __asm
            {
            mov    eax, pListEntry
            mov    ebx, [eax]
            mov    pListEntry, ebx
            }
        if (pListEntry == KernelBase)
            {
            DbgPrint("Not Found Kernel Module Nmae/n");
            return FALSE;
            }
        }

    pPos = wcsrchr(szName,'//');
    if ( !pPos )
        {
        DbgPrint("Not Found Kernel Module Nmae/n");
        return FALSE;
        }
    wcsncpy(g_wszKrnlModuleName,pPos + 1,((PLDR_DATA_TABLE_ENTRY)pListEntry)->FullDllName.Length / 2 - (pPos - szName) / 2);
    DbgPrint("%S/n", g_wszKrnlModuleName);
  return TRUE;
    }

ULONG GetModuleBase(WCHAR * szModuleName)
    {
    PLIST_ENTRY  KernelBase = NULL;
    PLIST_ENTRY  pListEntry = NULL;
    WCHAR      szName[128] = {0};

    DbgPrint("PsLoadedModuleList: %08x/n", PsLoadedModuleList);

    __asm
        {
        mov    eax, PsLoadedModuleList
        mov    ebx, [eax]
        mov    KernelBase, ebx
        mov    pListEntry, ebx
        }
    do
        {
        if (((PLDR_DATA_TABLE_ENTRY)pListEntry)->SizeOfImage)
            {
            if (MmIsAddressValid(((PLDR_DATA_TABLE_ENTRY)pListEntry)->FullDllName.Buffer))
                {
                DbgPrint("ModuleName: %S, Base: %08x, Length: %08x/n",
          ((PLDR_DATA_TABLE_ENTRY)pListEntry)->FullDllName.Buffer,
          ((PLDR_DATA_TABLE_ENTRY)pListEntry)->DllBase,
          ((PLDR_DATA_TABLE_ENTRY)pListEntry)->SizeOfImage);

                if (((PLDR_DATA_TABLE_ENTRY)pListEntry)->FullDllName.Buffer != NULL)
                    {
                    wcsncpy(szName,((PLDR_DATA_TABLE_ENTRY)pListEntry)->FullDllName.Buffer,((PLDR_DATA_TABLE_ENTRY)pListEntry)->FullDllName.Length / 2);
                    _wcslwr(szName);
                    if ( wcsstr(szName, szModuleName) )
                        return (ULONG)((PLDR_DATA_TABLE_ENTRY)pListEntry)->DllBase;
                    }
                }
            }
       
        __asm
            {
            mov    eax, pListEntry
            mov    ebx, [eax]
            mov    pListEntry, ebx
            }
        }while(pListEntry == KernelBase);

  return 0;
    } 
机器人快车(RoboExp) v6.0官方版 机器人快车(RoboExp) v6.0官方版,机器人快车(RoboExp)是一款由中鸣开发的机器人编程软件,通过机器人快车用户能够通过编程实现对机器人的控制,有需要的可以下载使用。更新日志   2020.07.21 新增M6RCU,增加点阵模块新功能,增加气压、磁敏和温湿度模块,修复已知问题 立即下载

相关推荐

RoboExp3.7General的cdkey

这是中鸣机器人快车最新版RoboExp3.7General的cdkey,保证有效。最新版里添加了QRCU。希望对你有帮助。

RoboEXP:项目的核心功能/场景

RoboEXP:项目的核心功能/场景 项目介绍 RoboEXP 是一个针对机器人操作任务中互动探索任务的官方实现系统。该系统通过互动探索,即机器人与环境的动态交互,来构建一个动作条件下的场景图(Action-Conditioned Scene Graph,简称 ACSG)。这一场景图能够帮助机器人更好地理解环境,优化其操作决策,从而在复杂环境中执行精确的抓取和操作任务。 项目技术分析 RoboEX...

gitblog_00964的博客 1007

机器人快车程序

机器人快车青少年比赛专用软件,程序稳定,安装简便,实用

RoboEXP项目在SAPIEN仿真环境中的部署实践

RoboEXP项目在SAPIEN仿真环境中的部署实践 项目背景 RoboEXP是一个开源的机器人探索学习框架,该项目为机器人自主探索和交互学习提供了完整的解决方案。在项目开发过程中,开发者不仅考虑了真实机器人环境的应用,也针对SAPIEN物理仿真引擎进行了适配开发。 SAPIEN环境适配要点 环境接口设计 RoboEXP项目通过robo_env.py文件提供了与SAPIEN环境的对接接口。这个接口...

gitblog_07477的博客 460

创意之星机器人大赛C语言编程实例

创意之星机器人大赛C语言编程实例。可以参考下,提高编程能力,实验室内部资料。

中鸣机器人快车升级库

中鸣机器人快车升级库,lib368,此文件可以让RCU识别到更多外设。

获取自身驱动的模块地址和大小长度

//功能:模块基址,模块大小 VOID GetKernelModuleBase(PULONG64 KrnlBase, PULONG64 KrnlSize) { NTSTATUS status; ULONG size; char* pDrvName; PSYSTEM_MODULE_INFORMATION moduleinfo; PSYSTEM_MODULE_INFORMATION_ENTRY moduleinfoentry; status = NtQuerySystemInformation(.

追逐光芒,追随内心 724

C# WinForms实战:5分钟用ScottPlot打造专业级示波器界面(附完整代码)

本文详细介绍了如何在C# WinForms应用中,利用ScottPlot.WinForms库快速构建一个专业级的软件示波器界面。通过从环境配置、静态波形绘制到动态数据实时更新的完整实战演示,帮助开发者高效实现高性能的波形显示功能,适用于工业监控、信号分析等多种场景。

weixin_29198045的博客 831

暴赚5000倍!详解约翰•邓普顿的“逆向投资”

约翰•邓普顿在全球投资圈是很多人膜拜的宗师级人物,《福布斯》杂志称他为历史上最成功的基金经理之一。有多成功呢?如果1940年你投资给他1万美元,50年后这笔钱会变成5500万美元。 "行情总在绝望中诞生,在半信半疑中成长,在憧憬中成熟,在希望中毁灭。最悲观的时刻正是买进的最佳时机,最乐观的时刻正是卖出的最佳时机。” 跟巴菲特经典的“别人贪婪时我恐惧”,有异曲同工之妙。 这是被誉为“全球投资之父”、“史上最成功的基金经理之一”和“20世纪全球十大顶尖基金经理人”的约翰·邓普顿爵士最广为流传的

m0_62038975的博客 994

01-认识脑电信号及相关信号的预处理过程

脑电信号处理过程脑电实验为什么要预处理预处理方法降采样如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 脑电实验 本博客主要是记录基于脑电信号的情绪识别方法的研究...

脑机交流者的博客 7661

YOLO11实战优化:长尾分布解决 | 引入Seesaw Loss配合YOLO11分类头,完美应对类别极其不平衡的现实业务场景

摘要: YOLO11在工业缺陷检测等长尾分布场景中面临尾部类别检测失效的问题,根源在于头部类别样本的负样本梯度压制了尾部类别的学习。传统方法如重采样、Focal Loss等效果有限。Seesaw Loss通过动态调整缓解因子和补偿因子,平衡类别间的梯度分布,结合YOLO11的解耦分类头、Anchor-Free设计和C2PSA/C3K2模块,显著提升尾部类别识别能力。文章详细解析了Seesaw Loss的数学原理,并提供了可直接集成到YOLO11的PyTorch实现代码,为长尾分布下的目标检测提供了实用解决方

2601_95807009的博客 256

(转载)为什么普通人难逃“20w定律”?

这不是个人意志的失败,当我们深入剖析消费主义的运作机制,会发现那串消失的数字背后,隐藏着某些平时少有人关注的真相。

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 308

STM32CubeIDE开发环境搭建与GPIO控制实战

嵌入式开发中,MCU开发环境构建是软硬件协同的起点,其核心在于工具链选型、外设抽象层级与调试可靠性。HAL库作为ST官方标准硬件抽象层,通过统一接口屏蔽芯片差异,显著提升工程可移植性;而STM32CubeIDE则以图形化配置+自动生成代码的方式,实现‘配置即代码’的确定性开发范式。该组合在教学验证、原型迭代和中小规模量产中具备高性价比技术价值,广泛应用于智能传感、工业HMI及IoT终端等场景。本文聚焦STM32CubeIDE 1.15.0环境部署、MyST账户与固件包管理、ST-LINK驱动校验,以及基于H

weixin_33531560的博客 81

几维安全签约宇通集团,赋能车联网企业安全

近日,几维安全在郑州宇通产业园同宇通集团签署协议,几维安全将提供最新一代物联网应用安全保护技术方案和安全咨询服务,对宇通移动业务系统和智能网联商用车系统保驾护航。 宇通集团是一家集客车产品研发、制造与销售为一体的大型现代化制造企业。作为中国客车行业的领军者,宇通客车以精湛的客车品质和持续的技术创新,赢得了广泛的赞誉,年销售量突破70,000台,领衔自主品牌占据中国客车市场95%,位列“中国上市企...

weixin_30284355的博客 250

CVPR 2026 即插即用 | 注意力篇 | MSEF:超轻注意力,空间-通道双分支并行融合,既增强特征又抑制噪声!

Multinex提出了一种超轻量级微光图像增强框架,其核心创新是MSEF模块。MSEF采用双分支并行架构,结合空间局部特征(深度可分离卷积)和全局通道注意力(改进SE),通过Tanh激活实现特征增强与抑制。相比传统注意力模块,MSEF在几乎不增加计算量的情况下显著提升性能,特别适合轻量级网络和边缘设备部署。实验表明,该模块能有效提升PSNR约3dB,同时保持极低的参数量(0.7K-45K)。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 605

教你写出高质量SQL(实践必备)

1、查询SQL尽量不要使用select * ,而是select具体字段。 //反例子 select * from sys_user; //正例子 select id,name from sys_user; 理由: 只取需要的字段,节省资源、减少网络开销;select * 进行查询时,很可能就不会使用到覆盖索引,就会造成回表查询; 覆盖索引:只需要在一棵索引树上就能获取SQL所需的所有列数据,无需回表,速度更快。 例如: 回表查询:先通过普通索引的值定位聚簇索引值,再通过聚簇索引的值定位行记..

ANGEL CITY 9996

【学习】理财书单

这里也是根据一个公众号推荐的书单,我这里做了一个链接,可以直接链接到京东查看,但是我放的都是自营,可能会有点贵,可以自行选择便宜的版本购买。 推荐次数 书名 购买链接 20 《富爸爸穷爸爸》 京东 17 《小狗钱钱》 京东 10 《邻家的百万富翁》 京东 9 《财务自由之路》 京东 ...

weixin_30498807的博客 1301

机器学习扩散模型简介

​ 扩散模型是生成模型,在过去几年中越来越受欢迎,这是有充分理由的。仅在 2020 年代发布的几篇开创性论文就向世界展示了 Diffusion 模型的能力,例如在图像合成方面击败 GAN[6]。最近,从业者将看到DALL-E 2(OpenAI 上个月发布的图像生成模型)中使用的扩散模型。

gongdiwudu的专栏 4271

范式变革与规律涌现:世界科技发展新趋势

来源:学习时报新科技革命与产业变革持续展开,以人工智能为代表的新兴使能技术驶入“快车道”,世界科技创新被认为正在进入“认知革命”的阶段——对生命过程的“精微刻画与操作”和对人类智能的“逆...

人工智能学家 1658

基于激光雷达与视觉融合的四旋翼无人机室内避障方法研究

本文研究了一种基于激光雷达与视觉融合的四旋翼无人机室内避障方法。针对单一传感器在室内环境中的局限性,提出通过激光雷达提供精确几何距离、视觉相机补充语义信息的融合方案。研究内容包括:搭建ROS硬件平台集成单目相机与2D激光雷达;设计基于扩展卡尔曼滤波的传感器融合模型;改进VFH算法结合视觉深度图进行路径规划。实验验证表明,该方法在复杂室内环境下具有较高的鲁棒性、实时性与避障成功率,为解决无GPS信号环境下的无人机自主导航问题提供了有效方案。

huanghm88的专栏 348

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

RoboEXP项目中的动态场景图构建与应用思考

RoboEXP项目中的动态场景图构建与应用思考 动态场景图在机器人交互中的价值与挑战 RoboEXP项目提出了一种创新的动态场景图构建方法,能够实时记录机器人与环境交互过程中的状态变化。这种基于动作条件的场景图(ACSG)不仅能够完整记录任务执行步骤,还能为后续任务提供有价值的参考信息。从技术实现角度来看,这种动态更新机制面临几个关键问题: 首先是如何有效利用历史交互数据。理论上,场景图中记录的步...

gitblog_07073的博客 543

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

APC注入

/*********************************** desc : This code was written for inject a dll named text.dll to the target process based on APC. time : 2013 coder: ejoywx **********************

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 761

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

blockchain-explorer(pg版) 区块浏览器部署及配置详解

前置工具: Git Node.js  8.11.X 高版本暂不支持 PostgreSQL  9.5 以上 此处使用10 本篇部署环境:Ubuntu 准备环境: 安装git sudo apt-get install git 安装node 8.11 因为版本限制,采用源码安装 #路径为 /usr/local cd /usr/local sudo wget https://np...

小清新的博客 5938

从内核模式启动进程

 从内核模式启动进程我想很多人都会有这样的问题,能否从内核驱动中启动用户应用程序呢?在Win9x(win95, 98, ME)中有专门的导出函数ShellVxd_ShellExecute,此函数能够启动应用程序。而在NT系统中没有专门的导出函数。单数不存在导出函数决不意味这种想法不可能实现。恰恰相反,这种想法是完全可能实现的。当然,您可能会觉得这有如恶梦一般,分析一大堆系统对象,仔细的研究它们的属

3011

云彬锅的GetKernelBase

[code="java"]pragma (lib, "gdi32.lib"); pragma (lib, "d3d9.lib"); pragma (lib, "winmm.lib"); pragma (lib, "ole32.lib"); import core.runtime; import win32.windows; import core.stdc.stdio; import...

u011278222的专栏 311
上一篇: shadow ssdt学习笔记
下一篇: 病毒分析技巧
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值