标签:VBA,类模块,用户窗体 本示例演示,当用户单击用户窗体中的命令按钮时,会弹出该命令按钮名称信息。 这个示例来源于ozgrid.com,有兴趣的朋友可以研究。...图1 当单击某个命令按钮时,会依次显示该命名按钮名称和标题信息,如下图2所示。...图2 在VBE中,插入一个类模块,将其重命名为“clsFrmCtls”,输入下面的代码: Public mName Public mFrm As Object Public WithEvents mCommandbutton...mCommandButton_Click() RaiseEvent mFrm.SelectedChange(mName) End Sub 然后,插入一个用户窗体,添加控件,如上图1所示,在该用户窗体代码模块中
bin/env python # -*- coding:utf-8 -*- __author__ = 'shouke' import sys def get_cur_info(): # 获取被调用函数名称..._getframe().f_code.co_name) # 获取被调用函数在被调用时所处代码行数 print(sys...._getframe().f_back.f_lineno) # 获取被调用函数所在模块文件名 print(sys.
代码: // 首先需要导入path模块 const path = require('path'); // 导入fs模块,用于操作文件 const fs = require('fs'); /* 路径操作...读取文件出错误了;', err.message) } else { console.log('读取文件成功了:', data) } }) /* path.basename()获取文件名...&&拓展名 */ const filePath = './007-path.basename()方法的使用.js'; // 只传路径,获取到的是带文件拓展名的string const fullName...filePath); // 传入路径、拓展名,得到的是不带拓展名的文件名string const nameWithOutExt = path.basename(filePath, '.js'); // 获取文件拓展名
address”命令可列出进程的地址空间信息,如下是用户模式下从地址0x00000000开始到0x80000000的信息,只给出部分: ?...可以看到用户进程空间中一般包含主模块、共享模块、堆栈资源等,相应的虚拟内存页也都有着各自的属性状态。 那么对于这样的进程是如何从无到有创建起来的呢?...我们可以由此技术大体了解下PE Loader的功能,首先是查找kernel32等模块中的特定函数,即获取模块基址和处理PE格式,而后申请空间写入节数据、处理输入表和重定位表等,最后跳转到执行入口,即模拟原先操作系统的加载...我们可以简单看下如何获取kernel32模块的基址,这里由查找LDR链实现,即FS:[30] -> _PEB_LDR_DATA -> _LDR_DATA_TABLE_ENTRY: ?...这样我们就获取了kernel32模块的基址,接着就可以解析PE格式来继续后面的操作了。
/bin/kind: go1.16 或者也可以获取该二进制所依赖的模块信息: ➜ kind git:(master) ✗ go version -m ./bin/kind ....程序头 通过 readelf -l 可以看到其程序头,包含了若干段(Segment),内核看到这些段时,将调用 mmap syscall 来使用它们映射到虚拟地址空间。...节头的名称是硬编码在代码中的 //src/cmd/go/internal/version/exe.go#L106-L110 for _, s := range x.f.Sections { if...mod = mod[16 : len(mod)-16] } else { mod = "" } 总结 我在这篇文章中分享了如何从 Go 的二进制文件中获取构建它时所用的 Go 版本及它依赖的模块信息...另外,你可能会好奇从 Go 的二进制文件获取这些信息有什么作用。
Windbg帮助文档翻译 安装Windbg 由于目前微软官网上并没有单独提供Windbg的下载安装包,可以通过以下两个途径获取: 下载安装WDK 有网友提供了单独的MSI安装包,可以通过Goole搜索获取...可以看到已经加载的模块,以及这些模块所在的内存区域。比如可以看出testforme.exe的模块位置在内存0x400000~ 0x410000。...调试器中断,这时还没有真正去执行testforme的代码,并且可以通过Windbg命令去设置断点,查看已加载模块的信息等操作。...Windbg工作空间 Windbg的工作空间主要表示调试会话的状态、调试器的设置以及窗口布局的设置等。...工作空间的使用主要分为以下几点: 未加载任何调试文件的时候,选择File -> Save Workspace保存默认工作空间,则当每次打开Windbg的时候,将采用这个默认的工作空间 当调试器已经加载了调试文件的时候
读者可通过附件获取到WinDBG程序,当用户打开WinDBG时读者可通过Ctrl+E快捷键任意打开一个可执行程序,接着我们开始寻找吧;1.通过段选择子FS在内存中找到当前的线程环境块TEB。...,相信您已经可以熟练的掌握WinDBG调试器的基本使用了,本节我们将扩展一个知识点,以让读者能更好的理解WinDBG调试命令,本次我们实现枚举进程模块的功能,本案例将不在解释基本功能。...图片现在来手动遍历[ 0x5a3bd0 - 0x5aa5b8 ]第一条链表,输入命令dd 0x5a3bd0链表偏移0x18的位置是模块的映射地址 ImageBase,链表偏移 0x28 的位置是模块的路径及名称的地址...,链表偏移 0x30 的位置是模块名称的地址。...VirtualAddress当前地址相加后得到的,如下图所示图片当读者需要枚举特定模块时,则可通过模块基地址加上例如Name字段偏移值,来读入模块名称;图片如果读者需要枚举所有导出函数,则读者可通过模块基地址加上
读者可通过附件获取到WinDBG程序,当用户打开WinDBG时读者可通过Ctrl+E快捷键任意打开一个可执行程序,接着我们开始寻找吧; 1.通过段选择子FS在内存中找到当前的线程环境块TEB。...在读者阅读过第一节中的内容时,相信您已经可以熟练的掌握WinDBG调试器的基本使用了,本节我们将扩展一个知识点,以让读者能更好的理解WinDBG调试命令,本次我们实现枚举进程模块的功能,本案例将不在解释基本功能...现在来手动遍历[ 0x5a3bd0 - 0x5aa5b8 ]第一条链表,输入命令dd 0x5a3bd0 链表偏移0x18的位置是模块的映射地址 ImageBase,链表偏移 0x28 的位置是模块的路径及名称的地址...,链表偏移 0x30 的位置是模块名称的地址。...VirtualAddress当前地址相加后得到的,如下图所示 当读者需要枚举特定模块时,则可通过模块基地址加上例如Name字段偏移值,来读入模块名称; 如果读者需要枚举所有导出函数,则读者可通过模块基地址加上
文章目录 一、 C# 脚本的执行入口函数 二、 获取当前游戏物体及物体名称 三、 获取游戏物体的 Transform 组件数据 四、UnityEngine 命名空间简介 一、 C# 脚本的执行入口函数...启动加载时调用"); } // Update is called once per frame void Update() { } } 二、 获取当前游戏物体及物体名称...游戏物体 GameObject GameObject gameObject = this.gameObject; 获取 游戏物体 GameObject 的名称 , 调用 GameObject...类的 name 属性 , 即可获取当前物体的名称 ; // 获取当前组件附着的 游戏物体 GameObject 名称 string name = gameObject.name...名称 string name = gameObject.name; Debug.Log("C# 脚本附着游戏物体的名称 : " + name); }
比如在5.0里面获取这些名称是这样的 use think\Request; /* 代码段 */ $module = Request::instance()->module(); $controller...()->controller(); $action = Request::instance()->action(); 然而在5.1里面Request没有instance方法,所以我们直接facade来获取模块...module = Request::module(); $controller = Request::controller(); $action = Request::action(); 备注:经测试,可以获取到...注意下TP的版本哈 未经允许不得转载:肥猫博客 » php 中输出控制器名称,Thinkphp5.0&&5.1怎么获取模块名控制器名方法名(权限配置中)
为改善这种局面,从Vista开始,微软推出了新的驱动程序开发环境WDF(Windows Driver Foundation )。...进程为应用程序提供专用的“虚拟地址空间”和专用的“句柄表格”。由于应用程序的虚拟地址空间为专用空间,一个应用程序无法更改属于其他应用程序的数据。...用户模式应用程序的虚拟地址空间除了为专用空间以外,还会受到限制。在用户模式下运行的处理器无法访问为该操作系统保留的虚拟地址。...限制用户模式应用程序的虚拟地址空间可防止应用程序更改并且可能损坏关键的操作系统数据。 在内核模式下运行的所有代码都共享单个虚拟地址空间。这表示内核模式驱动程序未从其他驱动程序和操作系统自身独立开来。...运行于RING3的UMDF对于程序员开说至少带来两个额外好处: 驱动程序不需要强制数字签名,因为UMDF驱动不是系统信任模块,所以在x64下面的部署更加方便。
由于我们需要动态获取 LoadLibraryA() 以及 ExitProcess() 这两个函数的地址,而这两个函数又是存在于 kernel32.dll 中的,因此这里需要先找到 kernel32.dll...PEB_LDR_DATA 偏移 0x1c 的地方存放着指向模块初始化链表的头指针。 初始化链表中,按顺序存放着PE装入运行时初始化模块的相关信息。...---- 既然有了固定的公式,接下我们就使用WinDBG调试器来手工完成对 Kernel32.dll 地址的定位: 1.首先我们运行 WinDBG调试器,然后按下【Ctrl + K】选择文件(File)...同样的,这里有一个定式,可以通过该定式获取到指定的导出表。 从 kernel32.dll 加载基址算起,偏移 0x3c 的地方就是其PE文件头。...,这里是堆栈空间 xor ebx,ebx mov bh,0x04 // ebx为0x400 sub esp,ebx // 开辟0x400大小的空间 //
常用逆向工具 Ollydbg、 Windbg、 SoftICE、IDA、 PEiD、 W32Dasm、 C32asm等等。...栈的原理 从计算机科学的角度来看,栈是一种数据结构,它的存储规则是先进后出。栈结构在计算机中是一片连续的存储空间,且是向下生长的,即由大向小排列。系统中通过两个寄存器来表示一个堆栈。...代码区跳转:从当前代码区跳转到被调用函数的入口处。 栈帧调整:保存当前栈帧的状态值,已备后面恢复本栈帧时使用。将当前的栈帧切换到新的栈帧。给新栈帧分配空间。...其数据排列顺序是由低到高,数组的名称表示该数组的首地址。 ? 流程控制语句的识别 if语句 先进行比较指令,再通过条件跳转命令来执行。...;获取switch中考察的变量值 ;先执行各类影响标志位的指令,如cmp jxx xxx1 ;先执行各类影响标志位的指令,如cmp jxx xxx2 ;先执行各类影响标志位的指令,如cmp jxx xxx3
绑定类名称生成规则 VII . 绑定类对应的布局中的组件字段生成规则 VIII . 视图绑定类获取 IX . 设置视图绑定后的布局 X . 获取视图绑定类组件 XI ....视图绑定组件启用 ---- 启用视图绑定模块 : 在 Module 中的 build.gradle 构建脚本中的 android 下 , 配置如下内容 : viewBinding { enabled...绑定类名称生成规则 ---- 视图绑定类名称生成规则 : 去掉布局文件名称的下划线 , 并以驼峰式命名 , 在名称结尾添加 Binding 后缀 ; 以本 Activity 的布局文件 activity_main.xml...绑定类组件成员名称生成规则 : 组件中的字段也是按照驼峰式命名生成 , 首字母小节 , 中间的字母首字母大写 , 如 id 是 text_view , 生成的成员变量名称是 textView ; 1 ....获取视图绑定类组件 ---- 可以直接通过 视图绑定类 ActivityMainBinding 对象 binding 获取对应的组件 , 组件名称就是布局文件中定义的组件 id ; //binding
) crashinfo:提取崩溃转储信息 deskscan:tagDESKTOP持扫描(Poolscaner) devicetree:显示设备树信息 dlldump:从进程地址空间转储动态链接库...filescan:提取文件对象池信息 gahti:转储用户句柄类型信息 gditimers:打印已安装的GDI计时器及回调 gdt:显示全局描述符表 getservicesides:获取注册表的服务名称并返回...进程对象池扫描 pstree:以树型方式打印进程列表 psxview:查找带有隐藏进程的所有进程列表 qemuinfo:转储Qemu信息 raw2dmp:将物理内存原生数据转换为windbg...MM_SESSION_SPACE的详细信息列表(用户登录会话) shellbags:打印shellbags信息 shimcache:解析应用程序兼容性Shim缓存注册表项 shutdowntime:从内存中的注册表信息获取机器关机时间...wintree:Z顺序打印桌面窗口树 wndscan:池扫描窗口站 yarascan:以yara签名扫描进程或内核内存 -h 查看相关参数及帮助说明 –info 查看相关模块名称及支持的
0x0 获取函数地址 通过 Windbg 连接 64 位的 Windows 7 SP1 虚拟机,并通过 u nt!MmVerifyCallbackFunction 命令得到该函数的基地址。...0x1 简单分析 如果 pdb 文件正确加载的话会在 IDA View-A 页面中看到 IDA 已正确识别该函数的名称符号。通过 IDA 获得初步的 C 代码,对其进行一些修正后得到下述代码。...后通过查阅资料得知,在 64 位 Windows 操作系统中,该地址空间区间范围正是内核地址空间中的会话空间(Session Space)。...函数进行这些资源的读访问权限的获取。...具体的验证可以通过 Windbg 跟一下。
minni dump文件 异常捕获模块自动生成全dump文件 任务管理器导出,动态调试使用.dump导出未捕捉异常无法生成dump文件,导出中二次崩溃,程序主动调用abort终止进程都会导致...静态调试打开dmp文件后导入pdb符号表,注意时间戳是否一致检查加载成功动态调试使用WinDbg打开程序,打开程序后再附加WinDbg//栈溢出异常VS调试直接退出,调试时函数调用堆栈有问题时使用PDB...文件程序模块符号表,需要严格匹配时间戳,pdb文件名称必须和模块名称一致。...每次编译生成一次,导入后可以查看函数具体名称和行号。基本流程查看异常类型,查看异常的汇编指令及寄存器值,查看函数调用堆栈,对照源码分析,有时查看相关变量的值。....ns 切换到n号线程,~查看所有线程 g 跳过中断lm vm 查看模块详细信息
Full Dump包含了某个进程完整的地址空间数据,以及许多用于调试的信息。而Mini Dump根据需要可以包含不同的信息,有的可能只包含某个县城和部分模块的信息。...如图是一个实际使用的例子,在cmd窗口,进入ProcDump.exe文件夹,输入命令procdump.exe -ma 6612, 就可以获取Process ID为6612的Full Dump文件。...WinDbg下载后应该是一个msi文件,在win7版本以上操作系统中可以直接双击安装。安装后在开始菜单中就可以选择WinDbg使用了。 在使用WinDbg时第一步需要做的就是设置符号文件的位置。...可以参考的资料有windbg分析dump操作流程以及使用Windbg解析dump文件 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
使用windbg调试windows下的程序,只要有符号文件,问题定位分分钟的事。下面主要讲一下使用windbg调试chromium。...有些是从官网上对翻过来的,如果大家看不明白,可以直接加我们的公众号:程序员互动联盟(coder_online)来进行互动。...初始化 1.设置符号路径 打开windbg,文件菜单->符号文件路径(快捷键ctrl+s) 这里假设c:\code\symbols这个是你符号文件存储的位置(这个可以自己随意设置,但是必须保证有足够的空间...如.sympath .reload等 扩展命令用于扩展某一方面的调试功能,实现在动态加载的扩展模块中,以!开头。如!...如果大家想更深入了解windbg的知识,可以去官方网站学习。另外推荐一本学习的书籍《软件调试》。
领取专属 10元无门槛券
手把手带您无忧上云