esi

程序的动态加载和执行

£可爱£侵袭症+ 提交于 2020-03-30 19:19:13
内核结构 内核分为四个部分,分别是初始化代码,内核代码,内核数据段和公共例程段,主引导程序也是初始化代码的组成部分。 初始化代码用于从BIOS那里接管处理器和计算机硬件的控制权,安装最基本的段描述符,初始化最初的执行环境。然后,从硬盘上读取和加载内核的剩余部分,创建组成内核的各个内存段。 内核的代码用于分配内存,读取和加载用户程序,控制用户程序的执行。 内核数据段提供了一段可读写的内存空间,供内核自己使用。 公共例程用于提供各种用途和功能的子过程以简化代码的编写。这些例程既可以用于内核,也供用户程序调用。 除了以上的内容以外,内核文件还包括一个头部,记录了各个段的汇编位置,这些统计数据用于告诉初始化代码如何加载内核。 代码清单 用户程序 ;代码清单13-3 ;文件名:c13.asm ;文件说明:用户程序 ;=============================================================================== SECTION header vstart=0 program_length dd program_end ;程序总长度#0x00 head_len dd header_end ;程序头部的长度#0x04 stack_seg dd 0 ;用于接收堆栈段选择子#0x08 stack_len dd 1 ;程序建议的堆栈大小

【逆向笔记】OD工具使用-逆向TraceMe.exe

两盒软妹~` 提交于 2020-03-26 23:46:03
阅览目录 名词注释 OD快捷键熟悉 逆向之猜 算法逆向 暴力破解 样本引用 回到顶部 名词注释 System breakpoint:系统断点,OllyDbg用CreateProcessA加载DEBUG_ONLY_THIS_PROCESS参数执行,程序运行之后会触发一个INT13,在系统空间里。 Entry point of main module:主模块的入口点,即文件的入口点。 WinMain:程序的WinMain()函数入口点 OD的设置中-选项-事件中设置 OD快捷键熟悉 1、F2 下断点, 2、Alt+b 打开断点编辑器,可编辑所有下过的断点 3、空格键 可快速切换断点状态。 4、Ctrl+F9.当位于某个CALL中,这时想返回到调用这个CALL的地方时,可以按“Ctrl+F9”快捷键执行返回功能。这样OD就会停在遇到的第一个返回命令(如RET、RETF或IRET)。 5、Alt+F9 如果跟进系统DLL提供的API函数中,此时想返回到应用程序领空里,可以按快捷键“Alt+F9”执行返回到用户代码命令。 6、Ctrl+G 跳转到API、地址的位置 逆向之猜 逆向与开发的知识是成正比关系,只有对开发特别熟悉,逆向一个程序才能猜测到该用哪个关键的API才能快速定位到程序的数据处理。 通过PEID查看程序特征,根据程序语言用IDE生成特征或者熟悉开发的API函数

手脱nSPack 2.1 - 2.5

∥☆過路亽.° 提交于 2020-03-23 13:47:23
1.载入PEID 使用核心扫描出的结果 nSPack 2.1 - 2.5 -> North Star/Liu Xing Ping 2.载入OD,一进来就是一个大跳转,F8跟着走 00410944 >- E9 327E0000 jmp Aspack变.0041877B ; //程序入口点 00410949 C7 ??? 0041094A 4E dec esi 0041094B FFC3 inc ebx 0041094D FFFF ??? 0041094F EB 0A jmp short Aspack变.0041095B 00410951 E8 40FFFF94 call 95410896 00410956 FD std 3.走到这里,看到一个push入栈,下一行ESP定律,下硬件断点,然后shift+F9运行 0041877B 68 13884100 push Aspack变.00418813 00418780 E8 84FEFFFF call Aspack变.00418609 ; //ESP 00418785 41 inc ecx 00418786 A4 movs byte ptr es:[edi],byte ptr d> 00418787 0018 add byte ptr ds:[eax],bl 00418789 14 3C adc al,0x3C 0041878B

GDI+ 在Delphi程序的应用 -- 图像饱和度调整

自闭症网瘾萝莉.ら 提交于 2020-03-08 16:40:53
GDI+ 在Delphi程序的应用 -- 图像饱和度调整 图像的饱和度调整有很多方法,最简单的就是判断每个象素的R、G、B值是否大于或小于128,大于加上调整值,小于则减去调整值;也可将象素RGB转换为HSV或者HSL,然后调整其S部分,从而达到线性调整图象饱和度的目的。这几种方法我都测试过,效果均不太好,简单的就不说了,利用HSV和HSL调整饱和度,其调节范围很窄,饱和度没达到,难看的色斑却出现了。而Photoshop的饱和度调整调节范围大多了,效果也好多了,请看下面25%饱和度调整时几种方法的效果对比图: 可以看出,都是25%的饱和度调整,Photoshop的调节幅度显得小一些(平坦些),效果也好多了,而HSV和HSL均出现了色斑,某些颜色也严重失真,尤其是HSV方式。 据网上和书上的介绍,Photoshop的是利用所谓HSB颜色模式实现色相/饱和度调节的,可是就是没有看到其算法,我只得自己进行琢磨,首先发现Photoshop色相/饱和度命令中的明度调节好象是“独立”的,也就是它不需要转换为所谓的HSB模式,直接靠白色和黑色遮照层进行调节,具体原理和代码可看我写的《 GDI+ 在Delphi程序的应用 -- 仿Photoshop的明度调整 》一文。后来,却又发现Photoshop的饱和度调节好象是“半独立的”,什么意思呢?就是说Photoshop的色相

只有汇编能告诉你为什么

陌路散爱 提交于 2020-02-29 16:29:18
分析了一下编译器(VC8)生成的汇编代码,发现问题是编译器造成的。。。 在没有用SSE优化的情况下,编译器生成的代码非常好,直逼手写代码。。。 而在用了SSE优化以后,编译器不能合理的分配和利用寄存器,并且生成了很多冗余的指令,导致代码简直一团糟,接近于弱智水平。。。 具体可参看下面的汇编代码,我在重要的行后面加了注释,方便理解。。。 没用SSE并行: ; COMDAT ?intersectEye@RayTriangle@@QAE_NPAVe_Ray@@PAVe_RayState@@@Z _TEXT SEGMENT _t$ = -56 ; size = 4 _dot_nd$ = -52 ; size = 4 _hit$ = -48 ; size = 12 _ray_dir$ = -36 ; size = 12 _ray_src$ = -24 ; size = 12 _bary$ = -12 ; size = 12 ?intersectEye@RayTriangle@@QAE_NPAVe_Ray@@PAVe_RayState@@@Z PROC NEAR ; RayTriangle::intersectEye, COMDAT ; _this$ = ecx ; _ray$ = eax ; _state$ = edi ; 146 : { sub esp, 56 ; 00000038H ;

CrackMe160 学习笔记 之 047

笑着哭i 提交于 2020-02-18 04:36:07
前言 这个题目要出凑出KEYFILE。 如果懒得凑的话,直接绕过也是可以的。 最后的KEYFILE。 思路 这种题目直接找 CreateFileA 函数即可。 分析 004010A9 . E8 2F020000 call <jmp.&KERNEL32.ReadFile> ; \ReadFile 004010AE . 85C0 test eax, eax ; 判断文件长度不为0 004010B0 . 75 02 jnz short 004010B4 ; 不为0则跳转 004010B2 . EB 43 jmp short 004010F7 004010B4 > 33DB xor ebx, ebx ; ebx清零 004010B6 . 33F6 xor esi, esi ; esi清零 004010B8 . 833D 73214000>cmp dword ptr [402173], 12 ; 文件长度和0x12比较 004010BF . 7C 36 jl short 004010F7 ; 小于则跳转 004010C1 > 8A83 1A214000 mov al, byte ptr [ebx+40211A] ; 取文件中的字符 004010C7 . 3C 00 cmp al, 0 004010C9 . 74 08 je short 004010D3 ; 文件是否结尾 004010CB .

Windows进程/线程创建过程

白昼怎懂夜的黑 提交于 2020-02-10 02:07:52
参考链接: http://www.cnblogs.com/LittleHann/p/3458736.html 创建一个Windows进程,是由操作系统进行3各部分执行组成 1.客户的Windows库的Kernel32.dll 2.Windows执行 3.Windows子系统进程(Csrss.exe) 由于windows是多环境子系统的体系结构,因此,创建一个windows执行体进程对象(其他的子系统也可以使用),与创建一个windows进程的工作是分离的。 也就是说windows在创建进程的过程中有两大类的工作要做: 1.Windows系统加入的语义 2.执行体/内核层对象等的创建 Windows的CreateProcess创建一个进程时所涉及的主要阶段: 1.打开将要在该进程中执行的映像文件(*.exe) 2.创建Windows执行体的进程对象 3.创建初始化线程(栈、执行环境、Windows执行体线程对象) 4.通知Windows子系统新线程创建了,所以他可以为新进程和线程做好准备 5.开始执行初始线程 6.在新进程和线程中 完成地址空间的初始化(加载必要的Dll),并开始执行程序 2. 详细分析(CreateProcess) 阶段一:打开将要被执行的映像 如果指定的可执行文件是一个windows.exe类型的文件,那么,它可被直接使用。如果它不是一个windows.exe

汇编OFFSET:返回数据标号和偏移量

核能气质少年 提交于 2020-02-05 01:24:17
OFFSET 运算符返回数据标号的偏移量。这个偏移量按字节计算,表示的是该数据标号距离数据段起始地址的距离。如下图所示为数据段内名为 myByte 的变量。 OFFSET 示例 在下面的例子中,将用到如下三种类型的变量: .data bVal BYTE ? wVal WORD ? dVal DWORD ? dVal2 DWORD ? 假设 bVal 在偏移量为 0040 4000(十六进制)的位置,则 OFFSET 运算符返回值如下: mov esi,OFFSET bVal ; ESI = 00404000h mov esi,OFFSET wVal ; ESI = 00404001h mov esi,OFFSET dVal ; ESI = 00404003h mov esi,OFFSET dVal2 ; ESI = 00404007h OFFSET 也可以应用于直接 - 偏移量操作数。设 myArray 包含 5 个 16 位的字。下面的 MOV 指令首先得到 myArray 的偏移量,然后加 4,再将形成的结果地址直接传送给 ESI。因此,现在可以说 ESI 指向数组中的第 3 个整数。 .data myArray WORD 1,2,3,4,5 .code mov esi,OFFSET myArray 4 还可以用一个变量的偏移量来初始化另一个双字变量,从而有效地创建一个指针

逆向工程初步160个crackme-------6

天大地大妈咪最大 提交于 2020-01-31 05:24:08
工具:1. 按钮事件地址转换器E2A 2. PEID 3. Ollydbg 同样我们先来运行一下这个程序, ok按钮是被禁用的,有一个help按钮点击后弹出一个消息框:消息框显示提示信息为。本程序需要输入正确的姓名的序列号,把OK按钮和Cancella按钮隐藏显示出其后面的RingZero的LOGO 我们随便输入姓名和序列号 发现OK还是禁用的,那我们就点击Canella试试,发现没用并且序列号被清零 我们熟悉完程序后,正式开始分析。 我们还是先用PEID看看其文件信息, 发现其是用Delphi编写的32位程序,我们打开OD载入程序。 运行程序随便输入用户名和序列号 随后我们需要分析其对应的各个按钮事件,用E2A打开程序文件查看各个按钮事件对应的地址,因为OK按键被禁用所以我们先分析Cancela按钮消息,用E2A程序打开查看Cancella按钮事件的地址 然后在OD中搜索此地址并下段,然后单击CancellaClick按钮程序会停在此地址处 然后单步向下并且注意跳转指令(因为我们输入的是错误的注册码,所以程序走的肯定是不正确的分支,所以我们就和程序反着来,显式改变eip,逆其道而为之),先看看这样后能不能满足条件(如果能满足在回头来分析如何让其实现跳转)。 F8向下分析遇见一个跳转指令,按此程序其是要跳转(那么我们就逆其道而为之),显式改变eip为00442EF0,然后执行程序

怎么查询ESI排名(ESI全称:Essential Science Indicators)

淺唱寂寞╮ 提交于 2020-01-27 04:29:35
前言 最近要找一个学校某个学科的ESI排名,找了很久才找到解决方案,所以在此记录分享。 前提 得有ESI的账号,或者学校图书馆账号。 方案 1)先登录学校图书馆,从这里进入ESI (Essential Science Indicators) 2)在ESI中根据自己的需要,在左边作筛选,然后中间部分就会显示相应结果,如下: 3)最后上方下载键还可以导出为excel格式的文件,方便查询。 小结 之前不是很熟悉,所以这里记录一下。 来源: CSDN 作者: dale丶无双 链接: https://blog.csdn.net/weixin_39278265/article/details/103605588