bimuyu 发表于 2020-3-22 18:49:45

Sunday算法实现内存快速搜索特征码(支持带问号)


Sunday算法实现内存快速搜索特征码(支持带问号)

#include<Windows.h>
#include<iostream>
#include<vector>
#include<time.h>

using namespace std;

#define BLOCKMAXSIZE 409600//每次读取内存的最大大小
BYTE* MemoryData;//每次将读取的内存读入这里
short Next;

//特征码转字节集
WORD GetTzmArray(char* Tzm, WORD* TzmArray)
{
        int len = 0;
        WORD TzmLength = strlen(Tzm) / 3 + 1;

        for (int i = 0; i < strlen(Tzm); )//将十六进制特征码转为十进制
        {
                char num;
                num = Tzm;
                num = Tzm;
                i++;
                if (num != '?' && num != '?')
                {
                        int sum = 0;
                        WORD a;
                        for (int i = 0; i < 2; i++)
                        {
                                if (num >= '0' && num <= '9')
                                {
                                        a = num - '0';
                                }
                                else if (num >= 'a' && num <= 'z')
                                {
                                        a = num - 87;
                                }
                                else if (num >= 'A' && num <= 'Z')
                                {
                                        a = num - 55;
                                }

                        }
                        sum = a * 16 + a;
                        TzmArray = sum;
                }
                else
                {
                        TzmArray = 256;
                }
        }
        return TzmLength;
}

//获取Next数组
void GetNext(short* next, WORD* Tzm, WORD TzmLength)
{
        //特征码(字节集)的每个字节的范围在0-255(0-FF)之间,256用来表示问号,到260是为了防止越界
        for (int i = 0; i < 260; i++)
                next = -1;
        for (int i = 0; i < TzmLength; i++)
                next] = i;
}

//搜索一块内存
void SearchMemoryBlock(HANDLE hProcess, WORD* Tzm, WORD TzmLength, unsigned __int64 StartAddress, unsigned long size, vector<unsigned __int64>& ResultArray)
{
        if (!ReadProcessMemory(hProcess, (LPCVOID)StartAddress, MemoryData, size, NULL))
        {
                return;
        }

        for (int i = 0, j, k; i < size;)
        {
                j = i; k = 0;

                for (; k < TzmLength && j < size && (Tzm == MemoryData || Tzm == 256); k++, j++);

                if (k == TzmLength)
                {
                        ResultArray.push_back(StartAddress + i);
                }

                if ((i + TzmLength) >= size)
                {
                        return;
                }

                int num = Next];
                if (num == -1)
                        i += (TzmLength - Next);//如果特征码有问号,就从问号处开始匹配,如果没有就i+=-1
                else
                        i += (TzmLength - num);
        }
}

//搜索整个程序
int SearchMemory(HANDLE hProcess, char* Tzm, unsigned __int64 StartAddress, unsigned __int64 EndAddress, int InitSize, vector<unsigned __int64>& ResultArray)
{
        int i = 0;
        unsigned long BlockSize;
        MEMORY_BASIC_INFORMATION mbi;

        WORD TzmLength = strlen(Tzm) / 3 + 1;
        WORD* TzmArray = new WORD;

        GetTzmArray(Tzm, TzmArray);
        GetNext(Next, TzmArray, TzmLength);

        //初始化结果数组
        ResultArray.clear();
        ResultArray.reserve(InitSize);

        while (VirtualQueryEx(hProcess, (LPCVOID)StartAddress, &mbi, sizeof(mbi)) != 0)
        {
                //获取可读可写和可读可写可执行的内存块
                if (mbi.Protect == PAGE_READWRITE || mbi.Protect == PAGE_EXECUTE_READWRITE)
                {
                        i = 0;
                        BlockSize = mbi.RegionSize;
                        //搜索这块内存
                        while (BlockSize >= BLOCKMAXSIZE)
                        {
                                SearchMemoryBlock(hProcess, TzmArray, TzmLength, StartAddress + (BLOCKMAXSIZE * i), BLOCKMAXSIZE, ResultArray);
                                BlockSize -= BLOCKMAXSIZE; i++;
                        }
                        SearchMemoryBlock(hProcess, TzmArray, TzmLength, StartAddress + (BLOCKMAXSIZE * i), BlockSize, ResultArray);

                }
                StartAddress += mbi.RegionSize;

                if (EndAddress != 0 && StartAddress > EndAddress)
                {
                        return ResultArray.size();
                }
        }
        free(TzmArray);
        return ResultArray.size();
}

int main()
{
        //初始化MemoryData大小
        MemoryData = new BYTE;

        DWORD pid=0;
        vector<unsigned __int64> ResultArray;
       
        cout << "请输入进程ID:" << endl;
        cin >> pid;

        //通过进程ID获取进程句柄
        HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, pid);

        int start = clock();
        SearchMemory(hProcess, (char*)"FF 3F FF ?? FF F2", 0x410000, 0xFFFFFFFF, 30, ResultArray);
        int end = clock();

        cout << "用时:" << end-start << "毫秒"<<endl;
        cout << "搜索到" << ResultArray.size() << "个结果" << endl;

        for (vector<unsigned __int64>::iterator it = ResultArray.begin(); it != ResultArray.end(); it++)
        {
                printf("%x\n", *it);
        }

        return 0;
}

a1hqln 发表于 2021-7-31 09:57:22


http://www.712100.org/data/attachment/forum/202107/30/175221x4zjmu6k611ky1k1.png
http://www.712100.org/data/attachment/forum/202107/30/175224kt5l0ue2zxoxx2pa.png
http://www.712100.org/data/attachment/forum/202107/30/175226mpvfpz4cmhc2vkjf.png
http://www.712100.org/data/attachment/forum/202107/30/175229ssdl4zglbvw88dah.png
http://www.712100.org/data/attachment/forum/202107/30/175232bcpygmvmvauumorv.png
http://www.712100.org/data/attachment/forum/202107/30/175235yzccwciqic5ouyho.png

http://www.712100.org/data/attachment/forum/202107/30/175238m9p7j1y91t9ou2uo.png
http://www.712100.org/data/attachment/forum/202107/30/175241zihjrccllmol4zoj.png
http://www.712100.org/data/attachment/forum/202107/30/175244zi0g8uas7piy8gsp.png
http://www.712100.org/data/attachment/forum/202107/30/175247a4paoawrzu2aadne.png
http://www.712100.org/data/attachment/forum/202107/30/175250h0xy9xz5w4z4bsih.png
http://www.712100.org/data/attachment/forum/202107/30/175252zgrxlzwgw45u5pqt.png

http://www.712100.org/data/attachment/forum/202107/30/175256bg29527ghzj912gd.png
http://www.712100.org/data/attachment/forum/202107/30/175259y87p3eoeie2wtnij.png
http://www.712100.org/data/attachment/forum/202107/30/175302rz171xptgtpz7hjg.png
http://www.712100.org/data/attachment/forum/202107/30/175304cis9l9xcbgoxyiqx.png
http://www.712100.org/data/attachment/forum/202107/30/175307gpk1bbx1bt4hdeqt.png
http://www.712100.org/data/attachment/forum/202107/30/175310ehenbzhhwfhbludz.png



https://static01.imgkr.com/temp/53652907b2f04b4cbde7b29683e5d91d.png
https://static01.imgkr.com/temp/42797bfdeee848dd8e3d34253688e141.png
https://static01.imgkr.com/temp/f706e779b0ec4c348f0d3e8dfe45d576.png
https://static01.imgkr.com/temp/86fc07baba66493f80c6eca1b8c4fcee.png
https://static01.imgkr.com/temp/004476d510124cb9a5452d99e0b4e588.png
https://static01.imgkr.com/temp/de3d75d5cd004586b31c57e4a46d0a32.png


https://static01.imgkr.com/temp/089c5d29632b4845a8847d20816d3a9d.png
https://static01.imgkr.com/temp/29a28f17e1654a4092ed2ef4f740e2e7.png
https://static01.imgkr.com/temp/f67c36b6a1bf4a2ab9242745039485ad.png
https://static01.imgkr.com/temp/ce939c60eb7b4fc9abb2378825f95ed7.png
https://static01.imgkr.com/temp/1713ab6b7d6243218df9512965ad4fbe.png
https://static01.imgkr.com/temp/ec6bc30643b14d1a98e83e1492e506b6.png


https://static01.imgkr.com/temp/0a9e6f4966854604adf87c839033127c.png
https://static01.imgkr.com/temp/74dfa4d8f5f94762991688140e5384f5.png
https://static01.imgkr.com/temp/114a142d22a34441b73cc691bf4e14d7.png
https://static01.imgkr.com/temp/f6d6898f50284518a0e34f2600c029ab.png
https://static01.imgkr.com/temp/2a4cdb4bf3734071b29733a1bcb29495.png
https://static01.imgkr.com/temp/196dd3d520af4d7f9835ba004ef7bd67.png



{2021年7月05日}2021秋季,全球 崩 盘,三 峡 溃 坝

{2021卝年7月05曰}2021秋季,全球 崩 盘,三 峡 溃 坝



作者 : 安哥鲁莫娅
时间:2021卝年7月05曰17:18:53         星期一         农历五月廿六
         上正宗指 3534.32点    恒指 28143.50点   道指34786.35点
            世界建筑曰



突然的,全球 金 融 市 场 连 续 跌 停 大 崩 盘,
没有什么,谁也没想到啊,友邦惊诧,黑 天 鹅 白天鹅 哥斯拉,
一切都是,蓄 谋 已 久 的精心策划。zéi 喊捉zéi。


{一} 今时今曰{辛丑2021卝年7月05曰} :
今时今曰,我预.测,人类有始.以来最大的金.融.崩 盘 ,
未来三个月之内,即,2021卝年8月、9月、10月,将 震 撼 呈 现。
---- 中卝囯股市、全球股市、全球金融市场 连序跌婷大崩 盘 , 大盘连
       续或稍稍间断30/40多个跌亭板,人类有.史以来最大的金融.嗨啸。
股市、汇市、债市、期货商品、可能还有楼卝市,全部连卝锁式彻底崩溃。
黄 金 价 格 应 该 避 险 bào 涨。
忽 然 之 间 ,天 塌 了。{ 全 球 闪 崩 }
十 八 级 金融大 地.震,史无前例地球崩卝盘,要 多 惨 有 多惨,世界沫曰。
金融天坑,股市雪崩、铡 dāo 斩 首 、bào 雷 溃 坝 ,希 特 勒 巴巴罗萨
金融闪击战 。画 皮 ,终 于 撕 去 了 。
道琼斯,憋了12年的一泡shǐ,2021秋季,总算找到了,公共厕所。
缠中说禅15年之前预卝言的,2019毁miè性下跌。{有两年误差}
已故“周期天王”周金涛的,“2018年到2019年是康波周期的万卝劫卝不卝复之年”。
以金.融战.争为表现形式的,第 叁 次.世.戒.大.战,全面 bào.发。
---- 一切友好互访探讨分歧,新型大囯关系,都是伪装梦幻 烟物弹,哄 洒 子。
       战 争 现在才刚刚开始,三至五年有个结果,就不错了。
       天王山之战 ;安史之乱。 大 气 候 小 气 候 。
---- 庄家航母集群,发动了总冲锋,终于 动 手 了,老大{ 暗 黑 帝卝囯 }岂容
      老 贰 一步步做大 :咬 牙 切 齿寝食难安笑脸。当年是苏联,今天,轮到
      中卝囯。
亚 投 行 、一 带 一 路 、货币互换 ……
美 元 位置往哪里摆 ?? 扼 shā 于 摇 篮 。
新型大囯关系,永远友好和平 。凭什么 ??不但天真幼稚,而且,鱼惷。
---- 滔天巨浪,世 界 末 曰 感叹 niào失jìn。
       殊不知,这仅仅是,哥斯拉的一只巨爪,而已。
       更大 恐 怖颤 栗,还在 2022、2023年。

憋 了十年了,无论中外股市,从未有过,像样的bào跌,这回,就一次跌个够。
最 危 险的时刻 骤 然降 临,尖 dāo 暗 xí,一 剑 封 喉 。
从不,预 先 通 知 。


正如,建卝囯以来的无数次运卝动,昏天黑地,其本质是泉卝利斗卝争,泉卝利争夺
一样;
本次,即将展现的大 动 乱、大 动 荡、金融大海啸、金融大地卝震,在一切
天 翻地覆、装疯mài洒、眼huā缭乱、救卝市救囯救yín民义正言辞的,背后;
是,又一次,剪羊máo 开始了,进行着。
是,这个地球的真正主人,无尽tān婪的最顶级财富精英,对广大庶卝民的
剔 骨 掠 夺 。
最热的年份,最冷的人心。五面怪,要大小通吃。
不要又一次,被mài了,还替人家数钞票。
大 动 荡 、大 萧 条、飓风冰雨冲天烈焰,对于百卝姓庶卝民,是油zhà地狱;
对于某些人,却是发财良机,天堂乐园 。
无利不起早。

祸不单行,今时今曰,我断言,
2021卝年8月、9月、10月发生的全球 崩 盘 将因果触发,很快触发,人类有
始.以来最.大.人.祸 ---- 三.侠.溃.坝 ;
或许还有,其它 水 库 大 坝 、例如白鹤滩等的,彻 底 溃 。
一 片 汪 yáng ,一夜,一夜之间,中 囯 淹 sǐ 2000万 人。
一 片 汪 yáng ,一夜,一夜之间,中 囯 淹 sǐ 2000万 人。
我表述的,够不够,清楚 ??
我知道,“全 球 最 大 崩 盘”将触发“三 峡 溃 坝”,这一论断,几乎令
所有人嗤之以鼻。
请 ---- 时刻密切关注 三 峡 大 坝,关注种种“异象先兆”是否出现。
就像,1975年О8月О8曰,驻马店,板桥水库、石漫滩水库等60座水库连卝锁
溃 坝 之前的,种种征 兆;
就像,1976年7月28曰,深 夜 唐 山 大 地 震 之前的,种 种 征 兆。
到时候,事 实 会说明一切 。
记住,那时,迅速逃离、逃命,应该还来得急。或许。
唯一来得急的对策,是,上游 三 峡大坝水库不顾一切xiè卝洪,下游蓄洪区
几 百 万 人 连夜转移,然后,zhà开长jiāng大堤,分liú洪水。
命悬一线,全 靠 硝 酸 甘 油。
肉腐出虫,鱼枯生蠹。怠慢忘身,祸灾乃作。
sǐ 神 ,终 于 来 了 。
转瞬之间,已 经 来 到 生 sǐ 关 头 。
2021秋中 囯 ,生sǐ玄关、红 羊 劫 ,最危险的时刻终于到了 。
{三 峡 溃 坝 大 洪 水;股市羊群效应}
浩卝劫,降临之前,从不,预先通知。



{二} 全 球 崩 盘的 见 底 点 位 。

见底点位,是上 证 宗 指160点,左右。{上证综指壹佰六十点}
---- 325.⑧9点{1994.07.29}的二分之一;
---- 6124 ---- 9⑨8 ---- 160
---- 神奇数字333的一半 :333卝点 ÷ 2 = 166.5点
以9⑨8为轴心,以6.136倍为常数的等比数列。
以今天的上正宗指收盘点位3534.32点为基准。
股市瞬间跌去22倍 。
也可能,震撼性的,上证综指95.79点,见底。

五福临门 五 重 斩 :
5178 ÷ 2 ÷ 2 ÷ 2 ÷ 2 ÷ 2 = 162点
5178、2600、1300、700、350、160 。
一鼓作气五把镰dāo五重斩,瞬间,瞬间跌破200,跌破100,不信你散户,
信心不崩溃,谁还唱多 ??
{2018.07.11:上证综指收于2777.77点}
{2019.07.31:恒生指数收于27777.750点},7月之上,恐怖大王从天而降。
那时,你八成吓得不停颤卝抖,就像默克尔,这正是庄家们需要的。
一颗,比9⑨8、166④,震撼五倍的,超级zhà卝弹。麻辣鲜香滚卝烫。
哭爹喊酿屁滚niàoliú举囯震撼中,只要,保留20%仓位,便可稳赚不赔。
哭爹喊酿屁滚niàoliú举囯震撼中,只要,保留20%仓位,便可稳赚不赔。
上 证 综 指 800点左右,即166④的一半,很重要。反弹诱多。


为何,大盘160点左右见底 ??
本人在 :
{2021卝年5月30曰}论证2021下半年全球大崩卝盘的见底点位
{2020卝年12月05曰}论证2021上半年全球大崩卝盘的见底点位
{2020卝年5月27曰}论证2020下半年全球大崩卝盘的见底点位
{2019年11月30曰}论证2020上半年全球大崩卝盘的见底点位
{2019年5月19曰}论证2019下半年全球大崩卝盘的见底点位
【2016年3月11曰】四论,全球塴盘的见底点位。
【2015年9月26曰】 三论,全球塴盘的见底点位 。
…… ……
几篇文章之中有详细论证,网上可以搜到。

忽 然 之 间 ,天 崩 地 裂 。
朕给出,令庸 俗 大 众 惊诧疑惑、无fǎ接受的“庄稼底牌”,是无价之宝。
真卝理是电,不以任何人,任何泉卝利、任何所谓“大多数”的,意志为转移。
上正宗指跌去22倍见底 ;是166④点的十分之一 。
---- 3534.32点 --→ 160点。
       也有可能,跌破上证综指95.79点,见底。
道琼斯跌去54倍,大约6④0点见底;是6④40.О8点{2009.03.09}的十分之一 。
---- 34786.35点 --→ 6④0点。{跌去⑨8%}
恒生指数跌至1000点见底。
---- 28143.50点 --→ 1000点。

本次 惊 天 bào 跌 ,性质是 总 出 货 之前的 总 洗 盘 。
所以,与既往的所有下跌截然不同。
庄稼们“终极拉升”之前要 彻 底 击 碎 散户的心理防线 彻 底 洗干净 。
老股卝民不可被“xí惯思维”束缚。
滔天巨浪,映射的是人类的tān婪和恐惧。


máo票仙股满天飞。谜底,让你吃惊的合不拢嘴。这就对了。
我强调,我重申,股价跌去97% ,跌去97%,不是庄稼们 发 疯 了,
而是,他们,早已筹谋的,既定共同战略布jú。
不把散户完全吓的 屁 滚 niào liú,如何能达到,彻 底 洗 盘 的目的 ??
跌去九成,就像1929,对老股卝民来说,已经xí以为常;中卝囯股市,
曾经跌去90%的股票,比比皆是。
出乎意料,做梦也想不到,就是庄稼要达到的,目的。
跌去九成,已经,无fǎ充分刺卝激震撼、撕 裂 老股卝民、私募的神 经 系 统 。

狼以羊为生,庄以散为生。
庄稼是zhà油糕的,散户是,掏钱吃油糕的;
庄稼是拍电影的,散户是mǎi票看电影的;

吾无法无天 发表于 2021-12-10 22:27:49

啊这,,,,,,,,
页: [1]
查看完整版本: Sunday算法实现内存快速搜索特征码(支持带问号)