dword

Why are DWORD values commonly represented in Hexadecimal?

落花浮王杯 提交于 2019-12-05 18:49:13
问题 I am trying to understand why a DWORD value is often described in Hexadecimal on MSDN. The reason why I am analyzing this is because I am trying to understand fundamentally why all these different number data types exist. A local mentor alluded to me that the creation of DWORD and other Microsoft types had something to do with the evolution of processors. This gives meaning and context to my understanding of these data types. I would like more context and background. Either way, I could use

What is large dword?

白昼怎懂夜的黑 提交于 2019-12-05 18:43:57
What function have short and large in this code portion? large is same as long dword ? mov eax, ebx cmp [ebp+var_1], 0 jz short loc_413123 call sub_40341C pop large dword ptr fs:0 add esp, 0Ch short jz short loc_413123 merely means that the offset (i.e. distance) for this jump is so small that it fits in a single byte, so this jump has been compiled to two simple bytes: 0x74 [1-byte-offset] Had the distance been larger, the compiler would have had to encode the jump differently, which would take up more memory: 0x0f 0x84 [4-byte-offset] With short , IDA Pro is simply telling you what kind of

绕过主动防御的代码注入方法思考

限于喜欢 提交于 2019-12-05 16:41:53
免杀 Windows Access thread 目前大多数的杀软都是hook NtWriteVirtualMemory和NtUserSetWindowsHookAW、NtUserSetWindowsHookE来防止代码注入。 关于代码注入Ring3层的方法主要有: l 远程线程CreateRemoteThread l 消息钩子SetWindowsHookEx l Ring3 APC QueueUserApc l 修改线程上下文SetContextThread 其中第一种和第三种方法需要传入一个param,但是要求这个param必须在目标进程内存空间,之前的一些方法比较笨重,直接在目标进程VirtualAllocEx内存,然后把希望的参数内容写入这个内存,使用了WriteProcessMemory函数,而这个函数是被hook的,所以杀软可以很容易的拦截代码注入行为。 仔细想想,杀软的这种防御是很失败的!原因是为了要一个param,攻击者完全没有必要做这么大的动作去目标进程内存空间申请内存并写内存,我在思考是否可以不用WriteProcessMemory函数呢?反正我的目的就是得到一个合理的param,并且这个param是在目标进程内存空间即可! 思考后,原来一切是这么容易啊,哈哈!乐了我半天~~~ 举个例子:假设我是这样注入的: QueueUserAPC((PAPCFUNC

Bit,Byte,WORD,DWORD区别和联系

放肆的年华 提交于 2019-12-05 14:37:08
基本概念: 位(Bit): “位”或“比特”,是计算机运算的基础; 字节(Byte): “字节”是通过网络传输信息(或在 硬盘 或 内存 中存储信息)的单位。 字节是计算机信息技术用于计量存储容量和传输容量的一种计量单位, 1个字节等于8位二进制 。 在 ASCII码 中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。 符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小 一个二进制数字序列,在 计算机 中作为一个数字单元,一般为8位二进制数,如一个ASCII码就是一个字节. 字(WORD), 2个字节组成一个字。 双字(DWORD), 4个字节组成一个双字。 如ANSI标准规定一个字符为1个字节或多个字节,UNICODE为宽字节字符串或者UNICODE字符串,规定,每个字符都占两个字节。如"中国123",ANSI编码为5字节,在UNICODE中为10字节。 Unicode和ANSI的区别 就相当于输入法内的“全角”和“半角”的区别。 由于不同 ANSI 编码所规定的标准是不相同的(字符集不同),因此,对于一个给定的多字节字符串,我们必须知道它采用的是哪一种字符集则,才能够知道它包含了哪些“字符”。而对于 UNICODE 字符串来说,不管在什么环境下,它所代表的“字符”内容总是不变的

ASM

…衆ロ難τιáo~ 提交于 2019-12-05 08:38:25
{ #include <iostream> #include <Windows.h> #define Main main int Main() { int a; int b; long c = 1000; char d = 'a'; short e = 5; long long f; _asm { mov dword ptr[a], 10086; mov eax, dword ptr[a]; sub eax, dword ptr[a]; ADD eax, dword ptr[a]; mov dword ptr[a], eax; } printf("%d\n",a); system("pause"); return 0; } } 来源: https://www.cnblogs.com/YZFHKMS-X/p/11915620.html

PhpStudy BackDoor2019 深度分析

北慕城南 提交于 2019-12-05 06:27:50
笔者《Qftm》原文发布《合天》: https://mp.weixin.qq.com/s?__biz=MjM5MTYxNjQxOA==&mid=2652852661&idx=1&sn=1dd018a6694b79e18087e31ac44d44fa&chksm=bd592d788a2ea46eae02350200b61e29bb944c5c444bd5c1282d58a3d43557104deb31c1d214&mpshare=1&scene=23&srcid=&sharer_sharetime=1574268683033&sharer_shareid=8f1d1cefeab55e526c6752e59ae2efde#rd 关于《PhpStudy BackDoor》风波已经过去有一段时间了,由于,前段时间一直忙于其它事情QAQ,今天有时间对该事件重新回溯&深度分析。 *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径 背景分析 2019年9月20日,杭州市公安局举行新闻通报会,通报今年以来组织开展打击涉网违法犯罪暨“净网2019”专项行动战果,通报内容中提到国内著名的PHP调试环境程序集成包Phpstudy软件遭受到以马某为首的国内黑客团伙攻击并被植入后门。 Phpstudy集成环境包在国内的使用用户逾百万,据悉,此次后门攻击事件可追溯到2016年

Win10怀旧--win7体验

不打扰是莪最后的温柔 提交于 2019-12-05 05:43:18
右键菜单变窄(1903以后失效) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\FlightedFeatures ImmersiveContextMenu (类型:REG_DWORD)     0 为窄,1 为默认宽(可直接删除) 旧版音量调节UI HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MTCUVC EnableMtcUvc(类型:REG_DWORD)     0 为默认禁用(可直接删除),1 为启用 旧版气泡通知(不适用UWP应用) HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Explorer EnableLegacyBalloonNotifications (类型:REG_DWORD)     0 为默认禁用(可直接删除),1 为启用 旧版电源指示器 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ImmersiveShell UseWin32BatteryFlyout (类型:REG_DWORD)     0 为默认禁用(可直接删除),1 为启用 来源: https://www

wince tfp telnet

非 Y 不嫁゛ 提交于 2019-12-05 02:45:18
本次工作的内容是实现wince 通过网络连接开发板功能 1,首先理解下两个功能,telnet通过远程控制,ftp一般用于上传下载。 2,添加相应组件,打开core os在CEBASE-Communication Services and Development-servers 添加FTP Server和 Telnet Server。 3,这里还需要增加一个组件Core OS”->”CEBASE”->”Core OS Services”->”Debugging Tools”->”Remote Display Application、 这个组件是方便我们远程开发板桌面。 4,找到注册表文件platform.reg,添加 [HKEY_LOCAL_MACHINE\COMM\TELNETD] "UseAuthentication"=dword:0 "IsEnabled"=dword:1 "AllowAnonymous"=dword:1 "AllowAnonymousUpload"=dword:1 "AllowAnonymousVroots"=dword:1 "DefaultDir"="" "IsEnabled"=dword:1 "UseAuthentication"=dword:0 [HKEY_LOCAL_MACHINE\Comm\FTPD] "IsEnabled"=dword:1

API Hook PC微信防多开

我与影子孤独终老i 提交于 2019-12-05 01:08:46
1.首先确定微信放多开是如何确定的,大多数程序的防多开都是使用互斥体来完成,所以就从创建互斥体的API开始下手(CreateMutexA/CreateMutexW) 可以看到创建互斥体的名称 一般程序在防多开zhong 都是判断判断互斥体的名称是否相同,所以我们做个实验来验证我们猜想的是否正确 (使用x32dbg直接修改内存效果一样) 修改值直接运行,并接着在打开一个微信,结果如下 ,双开成果,说明我们的猜测是正确的,所以直接用apiHook,Hook CreateMutexW函数,修改chau纳入的第三个参数,就可以过掉微信防多开,dll代码如下 void HookApi() { //获取CreateMutexW函数地址 Addr = GetProcAddress(LoadLibraryA("Kernel32.dll"), "CreateMutexW"); //保存原始的指令 memcpy(OldOpcode, Addr, 5); //计算跳转偏移 DWORD Offset = (DWORD)HookCreateMutexA - (DWORD)Addr - 5; //组合新的Opcode *(DWORD*)&JmpOpcode[1] = Offset; } HANDLE WINAPI HookCreateMutexA( LPSECURITY_ATTRIBUTES

IAT表和导入表

余生长醉 提交于 2019-12-04 23:29:49
1.关于IAT(import address table)表 当exe程序中调用dll中的函数时,反汇编可以看到,call后面并不是跟的实际函数的地址,而是给了一个地址; 这些连起来就是一张表,就是IAT表; 1)内存镜像中的dll中函数的调用; 例如:一个exe中调用系统提供的dll中的MessageBox函数时: 可以看到call的地址是42d2c4; 查看42d2c4中的内容: 可以看到:42d2c4中保存的是762b0026; 762b0026是dll的领空;也就是dll中MessageBox函数的地址; 总结: exe程序调用dll中的函数时,会使用FF15call; call的并不是实际的函数地址,而是该函数对应的IAT表的地址; 通过IAT表来找到实际的函数地址; 2)文件镜像中的IAT相关 接下来取文件中找42d2c4中保存的内容; 需要将RVA转成FOA; 42d2c4-400000 = 2d2c4;在.idata节; foa = 2d2c4 - 2d000 + 2b000 = 2b2c4; 可以看到:文件镜像中保存的值为2d2f4; 继续追到2d2f4,对应的foa为2b2f4 看到并不是MessageBox的地址,而是一MessageBox先关的描述; 结论:IAT表在文件和内存中是不一样的; 3)原因分析 对于一个exe程序,在运行时会加载到独立的4gb空间