其实就是个tsay.exe,用delphi语言开发的程序,不过它将应用程序伪装成文件夹的一样的效果,这就是给大家挖了个大坑,大家一般情况下不注意手快就点进去想打开文件夹的那种冲动。 ?...通过下图PE加载工具我们可以很清晰的看到该tsay.exe是32位的应用程序,而且它是用Delphi语言开发的。 ?...通过下面区段信息看到这个就是一个delphi标准的区段信息,delphi的正常的区段信息是包含8个区段信息。...对病毒文件进行界面及控件详细分析 通过DeDe工具上分析到,该病毒文件其实就是一个很简单的delphi应用程序,它界面上就一个Label1控件和4个定时器控件而已。 ?...Delphi是一个可视化的语言类似于MFC主要用于做可视化用的,但是在启动病毒样本的时候发现没弹出任何对话框,这个就涉及到Delphi隐藏窗口的功能,它的实现原理:delphi中Form.Create创建完窗口
PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行...它是跨win32平台的,只要运行在Windows上,不管是在什么体系的CPU上都可以运行 PE文件使用平面的地址空间,所有代码和数据都合并在一起,组成一个很大的结构,文件的内容被分为不同的区块,块中包含代码和数据...文件存储在磁盘上的时候,各个数据的地址相对于文件头的距离为文件的偏移地址 虚拟地址(VirtuallAddress VA)应用程序访问的逻辑地址也就是它的虚拟地址 基地址(ImageBase):...文件被映射到内存时,初始地址叫做基地址 pe文件大致结构如下图所示: 一般在说到PE文件时都会涉及到以下几个名词 基地址(ImageBase):PE文件被加载到内存中的首地址,是这个模块的句柄...,可以使用函数GetModuleHandle来获取 文件的偏移地址:PE文件中各个部分相对于文件头的偏移 相对虚拟地址(RVA):PE结构被映射到内存中后,某个位置所在内存相对于基地址的偏移
用delphi写的熊猫烧香,delphi是什么语言?是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。...由Borland公司推出的Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。...它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、...其实delphi就是一个图形化开发工具。delphi本身不牛逼,牛逼的它的设计人员。delphi相对于c语言应该简单很多。...4.系统 了解各种系统如Windows内部API,sockets编程,IP proxy,系统设计坑定存在漏洞的,只有我们掌握了其原理,瓜会摸到的。
众所周知,windows下可执行文件必须符合一定的格式要求,微软官方称之为PE文件(关于PE文件的详细介绍这里就不赘述了,google一下可以找到大把);用户在界面双击exe时,有个叫做explorer...一个exe一般会调用多个dll,后面加载的dll肯定会和前面加载dll的imagebase冲突),这个时候只能把dll或exe加载到其他虚拟地址;一旦改变了imagebase,涉及到地址硬编码的地方都要改了...loadLibrary类似:只要是通过windows提供的API使用内存,都会在某些地方被记录,这也是windows常见的内存管理方式之一,用了必须记录!...为了标注各个段在磁盘中的位置,就衍生出了PointerToRawData:即磁盘中,每个段头部相对于文件开始位置的距离;当运行程序时,需要把文件加载到内存。...原理很简单,如下: 先计算出RAV,也就是当前虚拟地址相对于所在段的距离,比如上面的0x401010-0x401000=0x10,也就是这个地址距离text段的偏移是0x10;现在问题就转换成了怎么找text
写的过程中总结一下常用到的基础知识: 基地址(ImageBase):当PE文件通过Windows加载器载入内存后,内存中的版本称为模块,映射文件的起始地址称为模块句柄,可通过模块句柄访问内存中其他数据结构...导入函数就是被程序调用但其执行代码不在程序中的函数,这些函数在DLL文件中,当应用程序调用一个DLL的代码和数据时,它正被隐式地链接到DLL,这个过程由Windows加载器完成。...ImageBase就是前面讲到的PE拓展头中的一个成员: 对EXE文件来说,EXE文件会首先加载到内存,每个文件总是使用独立的虚拟地址空间,这就意味着EXE文件不用考虑基址重定位问题; 对于DLL文件来说...对于系统的DLL来说实际上不会发生重定位,因为同一系统的kernel32.dll、user32.dll等会被加载到自身固有的ImageBase。...WORD Tyoe : 4; }TYPE, * PTYPE; Windows的PE装载器进行PE重定位处理的操作原理流程如下: 在应用程序当中查找硬编码位置 读取之后减去ImageBase,也就是用
目前我也没找到在VC工程设置中可以设置这两个属性的地方。 Subsystem是该文件运行于的子系统信息。...一般我们在windows平台上遇到的是2,它对应于IMAGE_SUBSYSTEM_WINDOWS_GUI。 ...熟悉windows的朋友应该知道,微软刚开始设计系统时,是设计成一个平台性质——可以运行3个子系统(OS/2、POSIX和Windows)的系统。这个就是这两个属性的由来。 ...SectionAlignment是当映像文件加载到内存中时节的对齐值,该大小使用字节来衡量的。它必须要大于我们之后介绍的FileAlignment。它的默认值是相应系统的页面大小。 ...我发现我电脑上很多文件的该PE字段和计算出来的不等。官方解释说当驱动程序、在引导时被加载的Dll以及加载到关键windows进程中的DLL都需要校验该字段以确认其合法性。
对于已经复工的人来说,上班路上人员众多,一定要做好自我保护,没有什么比生命更重要的! 进入三月,新的编程语言排行榜新鲜出炉,TIOBE 最新发布了 3 月编程语言排行榜。...Delphi即将跌出TIOBE指数前20名 Delphi作为 Windows 平台下著名的快速应用程序开发工具以及一款 IDE,很多开发者都深知他的强大,因此评价道“真正的程序员用 C++,聪明的程序员用...这大概是 Delphi最终没落的迹象。自2001年6月TIOBE指数存在以来,Delphi一直位居前20名,在2000年代初,它是最流行的语言和IDE之一。...2002年发行的 Delphi 7大概是它的巅峰,此后 Delphi开始陷入麻烦,包括Linux移植失败,版本出现错误等等。与此同时,一些具有类似功能的 IDE席卷市场,Delphi开始衰退。...TIOBE认为,导致 Delphi没落的另一个主要原因是它的发行频率太低。原先每年都有一个主要版本,而2018年之后,Delphi却没有了什么新的动静。
RemObjects SDK ‘Vinci’ 是成功的跨平台远程框架的第五个版本,它允许用户方便地创建能够在面向对象模式中的跨网络通信的客户端以及服务器应用程序。...提供了用于压型、基准以及压力测试服务应用程序的Service Tester,以确保在加载量较高时仍能正确允许。...完全支持C#, Chrome, Visual Basic .NET (.NET Edition), Delphi/Win32以及 C++Builder (Delphi Edition)....库特征 支持一系列平台,包括.NET, Mono, 32-bit and 64-bit Windows以及 Linux. 纯本地化以及指定平台的实现,对于单个平台,能够从底层设计。...编译独立的可执行的Windows Services或者在 ASP.NET (.NET Edition)或 ISAPI/Apache Web Servers (Delphi)中运行你的工程。
但是小帅丶就先用这样的方式实现了。别的方式大家就自己尝试吧 有可能显示的in out不对。请设置帧率试试。鄙人不是专业的。所以对帧率也不是很懂。以下代码加入也没有明显的变化。...1.动态识别的area参数为矩阵的4个顶点的xy坐标(即像素) 顺序是 上左下右 也就是顺时针一圈4个点的坐标点 2.case_id 为int 请不要给大于int范围的值。...或非int类型的值 即正整数就行 3.area的值不要大于图片本身的宽高 需要用到的jar 通过maven引入(下载的jar较多。...,对应于 Windows 风格的 BGR 颜色模型,具有用 3 字节存储的 Blue、Green 和 Red 三种颜色。...] imageInByte = baos.toByteArray(); Encoder base64 = Base64.getEncoder(); String imageBase64
基础知识 基地址(ImageBase):当PE文件通过Windows加载器载入内存后,内存中的版本称为模块,映射文件的起始地址称为模块句柄,可通过模块句柄访问内存中其他数据结构,这个内存起始地址就称为基地址...导入函数就是被程序调用但其执行代码不在程序中的函数,这些函数在DLL文件中,当应用程序调用一个DLL的代码和数据时,它正被隐式地链接到DLL,这个过程由Windows加载器完成。...ImageBase就是前面讲到的PE拓展头中的一个成员: 对EXE文件来说,EXE文件会首先加载到内存,每个文件总是使用独立的虚拟地址空间,这就意味着EXE文件不用考虑基址重定位问题; 对于DLL文件来说...对于系统的DLL来说实际上不会发生重定位,因为同一系统的kernel32.dll、user32.dll等会被加载到自身固有的ImageBase。...WORD Tyoe : 4; }TYPE, * PTYPE; Windows的PE装载器进行PE重定位处理的操作原理流程如下: 在应用程序当中查找硬编码位置 读取之后减去ImageBase
,当节被装入内存的时候,同一个节对应的内存页面将被赋予相同的页属性,Windows系统对内存属性的设置是以页为单位进行的,所以节在内存中的对其单位必须至少是一个页的大小,对于X86来说这个值是4KB(1000h...,两者的值可能不同,所以一个节被装入内存后相对于文件头的偏移和在磁盘文件中的偏移可能是不同的。...节区的尺寸: 由于磁盘映像和内存映像的对齐单位不同,磁盘中的映像在装入内存后会自动的进行长度扩展,而对于未初始化的数据段(.data?)...不进行映射的节: 有些节中包含的数据仅仅是在装入的时候用到,当文件装载完毕时,他们不会被递交到物理内存中,例如重定位节,该节的数据对于文件的执行代码来说是透明的,他只供Windows装载器使用,可执行代码根本不会访问他们...对于磁盘上的PE文件来说,它无法得知这些导入函数会在的那个内存的那个地方出现,只有当PE文件被装入内存时,Windows装载器才将DLL载入,并调用导入函数指令,和函数实际所处的地址联系起来。
每个Delphi应用程序都有一个指向TApplication对象的指针,此指针称为Application,用TApplication类主要执行消息框,管理快捷帮助,为按钮和状态栏设置提示文本。...这些类的大部分都封装了一个Windows控件,TMainMenu类封装一个应用程序的主菜单,在设计阶段,双击MainMenu组件的图标就会出现Menu Designer。...Interval属性设置,TTimer是一个非可视化组件。...下图显示了GDI类继承关系: 11、实用类(Utility Class) VCL包括很多实用类,这些实用类可以用在应用程序中,实用类可以简化一些Windows编程。...更多这些类的详细信息请大家自己看看Delphi VCL Help。 这不是全部 讨论到这里并没有讨论到所有的VCL类,但这里所涉及到的类在应用程序中用到的可能性很大。
通过下图工具查看到,该样本是Delphi语言开发的。相信它是80后才能接触到的开发语言,所以使用这个语言基本是上年纪了,delphi在一些早期发展起来的公司的内部工具或系统还会存在低维开发。...3、设置自启动 通过往注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run路径下写入应用程序信息,实现程序的自启动的行为...2、设置隐藏文件 通知直接调用系统SetFileAttributesA函数,将应用设置为隐藏状态,如果没有将文件属性中的隐藏属性打开,那么是没办法看到应用程序。...5、邮件发送 使用的是Delphi中封装好的邮件发送库,使用邮件服务器是smtp.gmail.com,它所发往的邮件目的xredlinel@gmail.com。...感染的修复方案(建议自动化用病毒查杀软件处理或者写程序实现): 1、通过病毒查杀软件进行查杀已感染的应用程序并修复。 2、手动方式删除注册表设置的自动启动的程序,并将进程强制关闭。
这些模块通常扩展主程序的功能。 什么是DLL注入 由于注入的 dll 可以操纵正在运行的进程,因此它为我们提供了向应用程序添加我们想要的任何功能的绝佳机会。...对于那些以前没有使用过winapi的人来说,这只是表示函数期望的字符串类型。在这篇文章中,我们将使用 LoadLibraryA 函数,这仅仅是因为个人喜好以及我通常如何设置工具。...对于我们的注入器,我们可以只使用PROCESS_ALL_ACCESS访问权限。 您可以通过任务管理器通过转到详细信息并查看进程旁边的 PID 来找到进程 ID,但这需要时间并且不是我们想要的方式。...Windows 为我们提供了一个很好的数据结构,使我们可以根据 DOS 标头中定义的偏移量访问两者。...一旦加载到内存中,我们将遍历所有 thunk 并设置所有函数调用的地址。对于这一部分,我们将只使用 LoadLibrary,因为解析所有相对路径(KERNEL32 等)会很麻烦,而且有点不必要。
的流行归功于iPhone的成功,编写iPhone应用程序的主要编程语言是Objective-C。...03 2004.12-2005.01:争执不休的Python和Delphi ? Delphi是Windows下的开发平台,其最初原型是DOS时代盛行一时的“BorlandTurbo Pascal”。...C#是微软公司在2000年6月发布的一种新的编程语言,是第一个面向组件的编程语言,它借鉴了Delphi的一个特点,与COM(组件对象模型)直接集成,并且新增了许多功能及语法,而且它是微软公司.NET windows...站在后人的角度看当时人们对于C#语言的理解还挺有意思的,2006年人们对于C#语言还是充满了疑问,产生了C#与C语言的区别,C#.NET的前景如何诸如此类的问题,同样的在百度搜索引擎中输入C#语言得到的结果如下...例如要查找一个字符串数组names中所有长度大于5的字符串,就可以写:var longname = from n in names wheren.Length > 5 select n; 这些原因加起来
IAT(Import Address Table)Hook是一种针对Windows操作系统的API Hooking 技术,用于修改应用程序对动态链接库(DLL)中导入函数的调用。...IAT是一个数据结构,其中包含了应用程序在运行时使用的导入函数的地址。IAT Hook的原理是通过修改IAT中的函数指针,将原本要调用的函数指向另一个自定义的函数。...这样,在应用程序执行时,当调用被钩子的函数时,实际上会执行自定义的函数。通过IAT Hook,我们可以拦截和修改应用程序的函数调用,以实现一些自定义的行为,比如记录日志、修改函数参数或返回值等。...0,这是因为Windows装载器在加载时会动态的获取第三方函数的地址并自动的填充到这些位置处,我们并没有运行EXE文件所以也就不会填充,为了方便演示,我们将程序拖入x64dbg让其运行起来,然后来看一个重要的结构...循环遍历导入表中的IAT表,找到与MessageBox地址相同的4字节位置。找到后通过VirtualProtect设置内存属性可读写,并将自己的函数地址写入到目标IAT表中。
没有新的结构加进去,其余的改变知识简单的将以前的32位字段扩展成64位了。对于c++代码,windows文件头的配置使其拥有不明显的区别。...存中的一个简单的相对于PE文件装入地址的偏移位置。...它们之间的关系如下: 虚拟地址(VA)=基地址(ImageBase)+相对虚拟地址(RVA) 1.5 文件偏移地址 当PE文件储存在磁盘上时, 某个数据的位置相对于文件头的偏移 量,称为文件偏移地址(...默认的对齐尺寸是目标CPU的页尺寸。对于运行在Windows 9x/Me下的用户模式可执行文件,最小的对齐尺寸是一页1000h(4KB)。这个字段可以通过链接器的/ALIGN开关来设置。...上图中2的位置高亮显示的IMAGE_FILE_HEADER项中,包含了关于文件的基本信息,有时呢,我们还会看到一个时间戳,但是这个时间戳不一定靠谱,如果是Delphi编译,那么时间戳统一是92年6月19
4.3.2 实现监控进程中的模块加载 系统中的模块加载包括用户层模块DLL和内核模块SYS的加载,在内核环境下我们可以调用PsSetLoadImageNotifyRoutine内核函数来设置一个映像加载通告例程...PsSetLoadImageNotifyRoutine 函数用来设置一个映像加载通告例程。该函数需要传入一个回调函数的指针,该回调函数会在系统中有驱动程序或 DLL 被加载时被调用。...当一个映像被加载时,Windows 内核会检查是否已注册了映像加载通告例程。如果已注册,则内核会调用该例程,将被加载的模块的信息作为参数传递给该例程。通常,该例程会记录或处理这些信息。...,则下一步就要进行驱动的屏蔽工作,对于驱动屏蔽来说最直接的办法就是在程序的入口位置写入Mov eax,c0000022h;ret这两条汇编指令从而让模块无法被执行,此时模块虽然被加载了但却无法执行功能,...本质上来说已经起到了拒绝加载的效果; 通过ImageInfo->ImageBase 来获取被加载驱动程序hook.sys的映像基址,然后找到NT头的OptionalHeader节点,该节点里面就是被加载驱动入口的地址
领取专属 10元无门槛券
手把手带您无忧上云