hong5499999 发表于 2017-6-1 13:33:57

注册表操作--->各个函数操作代码库

代码来自TA.张帆和部分书籍 《windows内核安全与与驱动开发》

详细说明可以到此http://msdn.microsoft.com/en-us/library/windows/hardware/ff567122(v=vs.85).aspx查询
ZwCreateKey 创建 KEY
ZwDeleteKey 删除 KEY
ZwDeleteValueKey 删除 VALUE
ZwEnumerateKey 枚举 KEY
ZwEnumerateValueKey 枚举 VALUE
ZwFlushKey 把注册表缓存的内容写入磁盘
ZwOpenKey 打开 KEY
ZwQueryKey 查询 KEY 的信息
ZwQueryValueKey 查询 VALUE 的信息
ZwSetValueKey 设置 VALUE 的内容




RING0 操作注册表和 RING3 的区别也不大, 同样是“获得句柄->执行操作->关闭句柄”
的模式,同样也只能使用内核 API 不能使用 WIN32API。不过内核里有一套 RTL 函数,把 Zw
系列的注册表函数进行了封装,也就是说,只剩下“执行操作”这一步了。
接下来说说注册表的本质。 注册表其实是文件, 它存储在 c:\windows\system32\config
这个目录下(打开目录,看到那几个带锁图标的文件就是。为什么带锁?因为被 SYSTEM 进
程独占访问了) 。注册表文件被称为 HIVE 文件,此格式是微软专用的,不公开,每个系统都
不一定相同,但总体来说变化不大。当系统关机之前,或者调用 ZwFlushKey 时,把内存中
的修改存入磁盘。另外,我们用 WINDOWS 自带的注册表编辑器看到的注册表有 5 个根项,其
实 这 是 “ 幻 象 ”, 真 正 的 根 项 只 有 两 个 : HKEY_LOCAL_MACHINE 和 HKEY_USERS 。
HKEY_CLASSES_ROOT 和 HKEY_CURRENT_CONFIG 其实都是 HKEY_LOCAL_MACHINE 的“下属”。
HKEY_CURRENT_USER 则是 HKEY_USERS 的“下属”,独立列出来只为了方便操作。
关于注册表的操作不多, 无非就是: 新建 KEY、 重命名 KEY、删除 KEY、 新建/设置 VALUE、
读取 VALUE、删除 VALUE、枚举子 KEY 和 VALUE。这里之所以用英文,是因为中文的表达较
为混乱。比如 KEY,有的翻译为项,有的翻译为键;VALUE 有的翻译为值,有的翻译为键值。
所以为了统一说法,就用英文 KEY 和 VALUE 了。------>引用自TA的基础教程

1.新建 KEY
void RegCreateKey(LPWSTR KeyName)
{
        OBJECT_ATTRIBUTES objectAttributes;
        UNICODE_STRING usKeyName;
        NTSTATUS ntStatus;
        HANDLE hRegister;
        RtlInitUnicodeString( &usKeyName, KeyName);
        InitializeObjectAttributes(&objectAttributes,
                                                                &usKeyName,
                                                                OBJ_CASE_INSENSITIVE,//对大小写敏感
                                                                NULL,
                                                                NULL );
        ZwCreateKey(&hRegister, KEY_ALL_ACCESS, &objectAttributes, 0, NULL,REG_OPTION_NON_VOLATILE, NULL);
        ZwClose(hRegister);
}

2.重命名 KEY(这里用到的关键 API『ZwRenameKey』没有导出,需要自己定位,大家可以先
用硬编码测试。在 WINDNG 里输入 x nt!ZwRenameKey 即可获得函数地址)
typedef NTSTATUS (__fastcall *ZWRENAMEKEY)
(IN HANDLE KeyHandle,
IN PUNICODE_STRING ReplacementName);
//修改这个地址! !
ZWRENAMEKEY ZwRenameKey=0xFFFFF80012345678;


void RegRenameKey(UNICODE_STRING usOldKeyName, UNICODE_STRING usNewKeyName)
{
        OBJECT_ATTRIBUTES objectAttributes;
        HANDLE hRegister;
        NTSTATUS ntStatus;
        InitializeObjectAttributes(&objectAttributes,
                                                                &usOldKeyName,
                                                                OBJ_CASE_INSENSITIVE,//对大小写敏感
                                                                NULL,
                                                                NULL );
        ntStatus = ZwOpenKey( &hRegister, KEY_ALL_ACCESS, &objectAttributes);
        if(NT_SUCCESS(ntStatus))
        {
                ntStatus = ZwRenameKey(hRegister,&usNewKeyName);
                ZwFlushKey(hRegister);
                ZwClose(hRegister);
        }
}

3.删除 KEY
void RegDeleteKey(LPWSTR KeyName)
{
        OBJECT_ATTRIBUTES objectAttributes;
        UNICODE_STRING usKeyName;
        NTSTATUS ntStatus;
        HANDLE hRegister;
        RtlInitUnicodeString( &usKeyName, KeyName);
        InitializeObjectAttributes(&objectAttributes,
                                                                &usKeyName,
                                                                OBJ_CASE_INSENSITIVE,//对大小写敏感
                                                                NULL,
                                                                NULL );
        ntStatus = ZwOpenKey( &hRegister, KEY_ALL_ACCESS, &objectAttributes);
        if (NT_SUCCESS(ntStatus))
        {
                ntStatus = ZwDeleteKey(hRegister);
                ZwClose(hRegister);
        }
}

4.新建/设置 VALUE
void RegSetValueKey(LPWSTR REG_KEY_NAME, LPWSTR REG_VALUE_NAME, DWORD
DataType, PVOID DataBuffer, DWORD DataLength)
{
        OBJECT_ATTRIBUTES objectAttributes;
        UNICODE_STRING usKeyName,usValueName;
        NTSTATUS ntStatus;
        HANDLE hRegister;
        ULONG Type;
        RtlInitUnicodeString(&usKeyName, REG_KEY_NAME);
        RtlInitUnicodeString(&usValueName, REG_VALUE_NAME);
        InitializeObjectAttributes(&objectAttributes,
                                                                &usKeyName,
                                                                OBJ_CASE_INSENSITIVE,//对大小写敏感
                                                                NULL,       
                                                                NULL );
        ntStatus = ZwOpenKey(&hRegister, KEY_ALL_ACCESS, &objectAttributes);
        if (NT_SUCCESS(ntStatus))
        {
                ntStatus = ZwSetValueKey(hRegister, &usValueName, 0, DataType,
                DataBuffer, DataLength);
                ZwFlushKey(hRegister);
                ZwClose(hRegister);
        }
}

5.读取 VALUE
typedef struct _KEY_VALUE_PARTIAL_INFORMATION {
        ULONG TitleIndex;
        ULONG Type;
        ULONG DataLength;
        UCHAR Data;
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
NTSTATUS RegQueryValue(UNICODE_STRING usKeyName, PUNICODE_STRING pValueName,
PKEY_VALUE_PARTIAL_INFORMATION *pkvpi)
{
        ULONG ulSize;
        NTSTATUS ntStatus;
        PKEY_VALUE_PARTIAL_INFORMATION pvpi;
        OBJECT_ATTRIBUTES objectAttributes;
        HANDLE hRegister;
        InitializeObjectAttributes(&objectAttributes,
                                                                &usKeyName,
                                                                OBJ_CASE_INSENSITIVE,//对大小写敏感
                                                                NULL,
                                                                NULL );


        ntStatus = ZwOpenKey( &hRegister, KEY_ALL_ACCESS, &objectAttributes);
        if(!ntStatus)
        {
                return ntStatus;
        }
        ntStatus = ZwQueryValueKey(hRegister,
                                                                pValueName,
                                                                KeyValuePartialInformation ,
                                                                NULL,
                                                                0,
                                                                &ulSize);
        if (ntStatus==STATUS_OBJECT_NAME_NOT_FOUND || ulSize==0)
        {
                return STATUS_UNSUCCESSFUL;
        }
        pvpi = (PKEY_VALUE_PARTIAL_INFORMATION)ExAllocatePool(PagedPool,ulSize);
        ntStatus = ZwQueryValueKey(hRegister,
                                                                pValueName,
                                                                KeyValuePartialInformation ,
                                                                pvpi,
                                                                ulSize,
                                                                &ulSize);
        if (!NT_SUCCESS(ntStatus))
        {
                return STATUS_UNSUCCESSFUL;
        }
        *pkvpi=pvpi;//这里的 pvpi 是没有释放的,用完要释放 ExFreePool(pvpi);
        return STATUS_SUCCESS;
}

6.删除 VALUE
void RegDeleteValueKey(LPWSTR REG_KEY_NAME, LPWSTR REG_VALUE_NAME)
{
        OBJECT_ATTRIBUTES objectAttributes;
        UNICODE_STRING usKeyName,usValueName;
        NTSTATUS ntStatus;
        HANDLE hRegister;
        RtlInitUnicodeString(&usKeyName, REG_KEY_NAME);
        RtlInitUnicodeString(&usValueName, REG_VALUE_NAME);
        InitializeObjectAttributes(&objectAttributes,
                                                                &usKeyName,
                                                                OBJ_CASE_INSENSITIVE,//对大小写敏感
                                                                NULL,
                                                                NULL );


        ntStatus = ZwOpenKey(&hRegister, KEY_ALL_ACCESS, &objectAttributes);
        if (NT_SUCCESS(ntStatus))
        {
                ntStatus = ZwDeleteValueKey(hRegister,&usValueName);
                ZwFlushKey(hRegister);
                ZwClose(hRegister);
        }
}

7.枚举子 KEY
VOID EnumerateSubItemRegTest()
{
        #defineMY_REG_SOFTWARE_KEY_NAME
        L"\\Registry\\Machine\\Software\\xxxxxxxx"
        UNICODE_STRING RegUnicodeString;
        HANDLE hRegister;
        //初始化 UNICODE_STRING 字符串
        RtlInitUnicodeString( &RegUnicodeString, MY_REG_SOFTWARE_KEY_NAME);
        OBJECT_ATTRIBUTES objectAttributes;
        //初始化 objectAttributes
        InitializeObjectAttributes(&objectAttributes,
                                                                &RegUnicodeString,
                                                                OBJ_CASE_INSENSITIVE,//对大小写敏感
                                                                NULL,
                                                                NULL );
        //打开注册表
        NTSTATUS ntStatus = ZwOpenKey( &hRegister,
                                                                KEY_ALL_ACCESS,
                                                                &objectAttributes);
        if (NT_SUCCESS(ntStatus))
        {
                KdPrint(("Open register successfully\n"));
        }
        ULONG ulSize;
        //第一次调用 ZwQueryKey 为了获取 KEY_FULL_INFORMATION 数据的长度
        ZwQueryKey(hRegister,
                                KeyFullInformation,
                                NULL,
                                0,
                                &ulSize);
        PKEY_FULL_INFORMATION pfi =
                                                        (PKEY_FULL_INFORMATION)
                                                        ExAllocatePool(PagedPool,ulSize);
        //第二次调用 ZwQueryKey 为了获取 KEY_FULL_INFORMATION 数据的数据


        ZwQueryKey(hRegister,
                                KeyFullInformation,
                                pfi,
                                ulSize,
                                &ulSize);
        for (ULONG i=0;i<pfi->SubKeys;i++)
        {
                //第一次调用 ZwEnumerateKey 为了获取 KEY_BASIC_INFORMATION 数据的长度
                ZwEnumerateKey(hRegister,
                                                i,
                                                KeyBasicInformation,
                                                NULL,
                                                0,
                                                &ulSize);
                PKEY_BASIC_INFORMATION pbi =
                                                                        (PKEY_BASIC_INFORMATION)
                                                                        ExAllocatePool(PagedPool,ulSize);
                //第二次调用 ZwEnumerateKey 为了获取 KEY_BASIC_INFORMATION 数据的数据
                ZwEnumerateKey(hRegister,
                                                i,
                                                KeyBasicInformation,
                                                pbi,
                                                ulSize,
                                                &ulSize);
                UNICODE_STRING uniKeyName;
                uniKeyName.Length =
                uniKeyName.MaximumLength =
                (USHORT)pbi->NameLength;
                uniKeyName.Buffer = pbi->Name;
                KdPrint(("The %d sub item name:%wZ\n",i,&uniKeyName));
                ExFreePool(pbi);
        }
        ExFreePool(pfi);
        ZwClose(hRegister);
}

8.枚举子 VALUE
VOID EnumerateSubValueRegTest()
{
        #defineMY_REG_SOFTWARE_KEY_NAME
        L"\\Registry\\Machine\\Software\\xxxxxxxx"
        UNICODE_STRING RegUnicodeString;
        HANDLE hRegister;
        //初始化 UNICODE_STRING 字符串


        RtlInitUnicodeString( &RegUnicodeString, MY_REG_SOFTWARE_KEY_NAME);
        OBJECT_ATTRIBUTES objectAttributes;
        //初始化 objectAttributes
        InitializeObjectAttributes(&objectAttributes,
                                                                &RegUnicodeString,
                                                                OBJ_CASE_INSENSITIVE,//对大小写敏感
                                                                NULL,
                                                                NULL );
        //打开注册表
        NTSTATUS ntStatus = ZwOpenKey( &hRegister,
                                                                        KEY_ALL_ACCESS,
                                                                        &objectAttributes);
        if (NT_SUCCESS(ntStatus))
        {
                KdPrint(("Open register successfully\n"));
        }
        ULONG ulSize;
        //查询 VALUE 的大小
        ZwQueryKey(hRegister,
                                KeyFullInformation,
                                NULL,
                                0,
                                &ulSize);
        PKEY_FULL_INFORMATION pfi =
                                                                (PKEY_FULL_INFORMATION)
                                                                ExAllocatePool(PagedPool,ulSize);
        ZwQueryKey(hRegister,
                                KeyFullInformation,
                                pfi,
                                ulSize,
                                &ulSize);
        for (ULONG i=0;i<pfi->Values;i++)
        {
        //查询单个 VALUE 的大小
        ZwEnumerateValueKey(hRegister,
                                                i,
                                                KeyValueBasicInformation,
                                                NULL,
                                                0,
                                                &ulSize);
        PKEY_VALUE_BASIC_INFORMATION pvbi =
                                                                                (PKEY_VALUE_BASIC_INFORMATION)
                                                                                ExAllocatePool(PagedPool,ulSize);
        //查询单个 VALUE 的详情


        ZwEnumerateValueKey(hRegister,
                                                i,
                                                KeyValueBasicInformation,
                                                pvbi,
                                                ulSize,
                                                &ulSize);
        UNICODE_STRING uniKeyName;
        uniKeyName.Length =
        uniKeyName.MaximumLength =
        (USHORT)pvbi->NameLength;
        uniKeyName.Buffer = pvbi->Name;
        KdPrint(("The %d sub value name:%wZ\n",i,&uniKeyName));
        if (pvbi->Type==REG_SZ)
        {
                KdPrint(("The sub value type:REG_SZ\n"));
        }
        else if (pvbi->Type==REG_MULTI_SZ)
        {
                KdPrint(("The sub value type:REG_MULTI_SZ\n"));
        }
        else if (pvbi->Type==REG_DWORD)
        {
                KdPrint(("The sub value type:REG_DWORD\n"));
        }
        else if (pvbi->Type==REG_BINARY)
        {
                KdPrint(("The sub value type:REG_BINARY\n"));
        }
                ExFreePool(pvbi);
        }
        ExFreePool(pfi);
        ZwClose(hRegister);
}

mmlai8 发表于 2019-1-23 21:26:13

支持楼主,支持看流星社区,以后我会经常来!

yh5454g 发表于 3 天前


https://img.xwyue.com/i/2024/05/03/6634bccd1843d.png
https://img.xwyue.com/i/2024/05/03/6634bcd0143f4.png
https://img.xwyue.com/i/2024/05/03/6634bcd590116.png
https://img.xwyue.com/i/2024/05/03/6634bcdb5c797.png
https://img.xwyue.com/i/2024/05/03/6634bd0c88212.png
https://img.xwyue.com/i/2024/05/03/6634bd257858c.png
https://img.xwyue.com/i/2024/05/03/6634bd13124f8.png
https://img.xwyue.com/i/2024/05/03/6634bd18b6125.png

https://1688.311688.xyz/share/your/images/save/your/photos/2024/05/03/6634bd678d6e7.png
https://1688.311688.xyz/share/your/images/save/your/photos/2024/05/03/6634bd65a9f36.png
https://1688.311688.xyz/share/your/images/save/your/photos/2024/05/03/6634bd6dbe043.png
https://1688.311688.xyz/share/your/images/save/your/photos/2024/05/03/6634bd73d538d.png
https://1688.311688.xyz/share/your/images/save/your/photos/2024/05/03/6634bda3aa09a.png
https://1688.311688.xyz/share/your/images/save/your/photos/2024/05/03/6634bda49f915.png
https://1688.311688.xyz/share/your/images/save/your/photos/2024/05/03/6634bda98b9f2.png
https://1688.311688.xyz/share/your/images/save/your/photos/2024/05/03/6634bdb2f2afb.png

https://b.l3n.co/i/HN5U4b.png
https://c.l3n.co/i/HN5cP7.png
https://b.l3n.co/i/HN5bjr.png
https://c.l3n.co/i/HN5wdF.png
https://a.l3n.co/i/HN5xM3.png
https://b.l3n.co/i/HN5yh0.png
https://a.l3n.co/i/HN5G6D.png
https://b.l3n.co/i/HN5azq.png



https://img.lls.moe/images/2024/05/03/70446925_202405031255580559201135.png
https://img.lls.moe/images/2024/05/03/70446925_202405031256060868679931.png
https://img.lls.moe/images/2024/05/03/70446925_202405031256160973972518.png
https://img.lls.moe/images/2024/05/03/70446925_202405031256260786672971.png
https://img.lls.moe/images/2024/05/03/70446925_202405031257060661705973.png
https://img.lls.moe/images/2024/05/03/70446925_202405031257160488947003.png
https://img.lls.moe/images/2024/05/03/70446925_202405031257230832549664.png
https://img.lls.moe/images/2024/05/03/70446925_202405031257310738251996.png

https://3o.hk/images/2024/05/03/70446925_202405031255580559201135.png
https://3o.hk/images/2024/05/03/70446925_202405031256060868679931.png
https://3o.hk/images/2024/05/03/70446925_202405031256160973972518.png
https://3o.hk/images/2024/05/03/70446925_202405031256260786672971.png
https://3o.hk/images/2024/05/03/70446925_202405031257060661705973.png
https://3o.hk/images/2024/05/03/70446925_202405031257160488947003.png
https://3o.hk/images/2024/05/03/70446925_202405031257230832549664.png
https://3o.hk/images/2024/05/03/70446925_202405031257310738251996.png

https://file.uhsea.com/2405/f5056764436fbe6aaa9b8b7c6213574bDV.png
https://file.uhsea.com/2405/da37780011e3282ffd3e4abd7fa37869NW.png
https://file.uhsea.com/2405/90bb829be65dc66cd647c5474227b9065F.png
https://file.uhsea.com/2405/fad8c5999b66a45891b5544a53bfbfe9C3.png
https://file.uhsea.com/2405/53c383fbfdf5a988609c8f38c1e0253dM6.png
https://file.uhsea.com/2405/e9912c9395b36b55eef6688330d02831SA.png
https://file.uhsea.com/2405/b6d87de72232bb9efe6e5407a797bbeb7H.png
https://file.uhsea.com/2405/7947d26c2667809d18c3be02561a5e95NY.png



https://b2.kuibu.net/file/imgdisk/2024/05/03/70446925_202405031255580559201135.png
https://b2.kuibu.net/file/imgdisk/2024/05/03/70446925_202405031256060868679931.png
https://b2.kuibu.net/file/imgdisk/2024/05/03/70446925_202405031256160973972518.png
https://b2.kuibu.net/file/imgdisk/2024/05/03/70446925_202405031256260786672971.png
https://b2.kuibu.net/file/imgdisk/2024/05/03/70446925_202405031257060661705973.png
https://b2.kuibu.net/file/imgdisk/2024/05/03/70446925_202405031257160488947003.png
https://b2.kuibu.net/file/imgdisk/2024/05/03/70446925_202405031257230832549664.png
https://b2.kuibu.net/file/imgdisk/2024/05/03/70446925_202405031257310738251996.png

https://s3.bmp.ovh/imgs/2024/05/03/4124ce1998cf5fd2.png
https://s3.bmp.ovh/imgs/2024/05/03/c90250e580671436.png
https://s3.bmp.ovh/imgs/2024/05/03/cdc11bee37e41670.png
https://s3.bmp.ovh/imgs/2024/05/03/a5538c5dff168137.png
https://s3.bmp.ovh/imgs/2024/05/03/273339543f5aaf0e.png
https://s3.bmp.ovh/imgs/2024/05/03/29ddda0f81fb4215.png
https://s3.bmp.ovh/imgs/2024/05/03/2a4a5fcb3573912d.png
https://s3.bmp.ovh/imgs/2024/05/03/a9967ba72bbfe812.png

https://cdn-us.imgs.moe/2024/05/03/70446925_202405031255580559201135_1fLVjpK80D.png
https://cdn-us.imgs.moe/2024/05/03/70446925_202405031256060868679931_l9YYdbiMRP.png
https://cdn-us.imgs.moe/2024/05/03/70446925_202405031256160973972518_BMof5XrPUU.png
https://cdn-us.imgs.moe/2024/05/03/70446925_202405031256260786672971_tTZMYRcxX9.png
https://cdn-us.imgs.moe/2024/05/03/70446925_202405031257060661705973_ZITjT5GgQZ.png
https://cdn-us.imgs.moe/2024/05/03/70446925_202405031257160488947003_BYGZL0BGW0.png
https://cdn-us.imgs.moe/2024/05/03/70446925_202405031257230832549664_X9FvGAeyDv.png
https://cdn-us.imgs.moe/2024/05/03/70446925_202405031257310738251996_Kj8lrlsuu9.png



https://s2.loli.net/2024/05/03/sdkubZ19nAzJ26I.png
https://s2.loli.net/2024/05/03/kgA4uHt9oeSfXG1.png
https://s2.loli.net/2024/05/03/ExXKN29HfjlGS6A.png
https://s2.loli.net/2024/05/03/t57n6AUS9ckhbvB.png
https://s2.loli.net/2024/05/03/lPwYkIuQq8s9mZ5.png
https://s2.loli.net/2024/05/03/wYLOX85pRtAraMe.png
https://s2.loli.net/2024/05/03/9Mgtd3osOyhBbXp.png
https://s2.loli.net/2024/05/03/c8wJqXC4VDeRbAy.png

https://z4a.net/images/2024/05/03/70446925_202405031255580559201135.png
https://z4a.net/images/2024/05/03/70446925_202405031256060868679931.png
https://z4a.net/images/2024/05/03/70446925_202405031256160973972518.png
https://z4a.net/images/2024/05/03/70446925_202405031256260786672971.png
https://z4a.net/images/2024/05/03/70446925_202405031257060661705973.png
https://z4a.net/images/2024/05/03/70446925_202405031257160488947003.png
https://z4a.net/images/2024/05/03/70446925_202405031257230832549664.png
https://z4a.net/images/2024/05/03/70446925_202405031257310738251996.png



https://images2.imgbox.com/e5/56/rhkOsGkC_o.png
https://images2.imgbox.com/a5/15/aFME42YQ_o.png
https://images2.imgbox.com/b1/76/Ukv7stVF_o.png
https://images2.imgbox.com/fa/a9/uSKKe8Il_o.png
https://images2.imgbox.com/bc/29/oDSpx26I_o.png
https://images2.imgbox.com/3a/62/RLXCg41Q_o.png
https://images2.imgbox.com/c0/33/IacoUdrU_o.png
https://images2.imgbox.com/e5/56/JZIxXXn0_o.png



{2024年05月02日} 2024下半年{包含五月},爆发人类最大金融崩盘!{假摔}

{2024年05月02曰} 2024下半年{包hán五月},bào发人类最大金融崩卝盘!{假摔}



作者:雷神殿
时间 :   2024年05月02曰 07:48:01    星期四
            农历甲辰龙年三月廿四       世界防治哮喘曰
         上证综指 3104.82点   恒指 17763.03卝点   道指 37903.29点



20О8年05月02曰,强热带风bào纳尔吉斯在缅甸伊洛瓦底jiāng三角洲登陆,
造成至少77,738人sǐ王,55,917人失踪。
1962年05月02曰,香卝港男演员黄秋生出生。印象深刻的,人肉叉烧包。


本人 邮 箱 {仅仅自动回卝复发信息,绝不是联卝系工具}:

88邮箱自动回卝复 :    bb2266@88.com
谷卝歌邮箱自动回卝复 : vanusara9@gmail.com   {不确定}
谷卝歌邮箱自动回卝复 : brenhuby3@gmail.com    {不确定}
                                             {uby3,不是ubv3}

111邮箱自动回卝复 :   iii520@111.com
126邮箱自动回卝复 :   mmdd2016@126.com
126邮箱自动回卝复 :   iii217@126.com

自动回卝复: gbeqftc@hotmail.com
自动回卝复: flowcaugreener1974@yahoo.com


========
========


突然的,全球金融 雪 崩 溃 坝 、彻 底 崩 溃 ;
没有什么,“谁也没想到”、“友邦惊诧”黑天鹅白天鹅哥斯拉撞冰山;
一切都是,蓄谋已久的,精心策划 --- 惊天魔盗团。zéi喊捉zéi。
……“罗斯柴尔德知道了!”“威灵顿战败了!”……


1
   2024下半年,包hán本月{五月},将会突然bào发,人类最大金融海啸,
   全球股市、金融市场、大宗商品市场连续跌亭大崩卝盘。
   {大盘连续或稍稍间断30/40多个跌亭板 }
   太久的忍耐时机筹谋,财狼们终于要动手了;
   虎虎虎。亦喜亦忧。大吉大凶。
   静里忽然动干戈。最热的天气,最冷的人心,1966年“红八月”。
   缠中说禅18年之前预卝言的,2019毁miè性下跌。{有误差}
   已故“周期天王”周金涛的,“2018年到2019年是康波周期的万劫
   不复之年”。----2016年3月16曰:《人生就是一场康波》
   预卝测与现实存在差异的原因在于,股市,是客观规律与人为cāo纵的,
   对立统卝一。不过,再能憋,出恭也是,绝对必然。
   道琼斯人类最长牛市,憋了15年的一泡shǐ,总算找到了,公共厕所。
   世卝界卝末卝曰,人造世卝界卝末卝曰。



2全球连续跌停大崩卝盘的见底点位:
   上证综指160点左右,见底{166④的十分之一}。
   以今天上正宗指3104.82计算,大约“瞬间”跌去19倍。
   最震撼的推卝倒重来,竟然只是,洗盘 !总冲顶之前的总洗盘 !!

页: [1]
查看完整版本: 注册表操作--->各个函数操作代码库