• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            elva

            2000下可執(zhí)行文件修改自身

            2000下可執(zhí)行文件修改自身
                            pjf(jfpan20000@sina.com)

                總有人問起這個老問題,其實在2年前在bbs上貼過的有關(guān)windows
            內(nèi)核句柄的帖子就詳細寫了改寫正運行程序的方法,原理一樣。為了減
            少郵箱信件,所以再整理一下放到一個google一下就可發(fā)現(xiàn)的地方:)
                另創(chuàng)一個程序改自己當然不是這里說的。NT系統(tǒng)中程序修改自身,
            只需做下面幾步:
                1、先只讀打開程序(自然也可以是其他程序)自身,獲取一句柄。
                2、從EPROCESS開始,訪問句柄表的數(shù)據(jù)結(jié)構(gòu),找出該句柄掩碼。
                3、修改掩碼,此刻已可通過該句柄對正在運行的可執(zhí)行文件進行
            修改了。
                4、做需要的文件操作。

                關(guān)于句柄表的簡單描述,請搜尋以前的貼過的有關(guān)的帖子,不再贅訴。
            下面是一簡單的示例程序:

            #include<windows.h>
            #include<stdio.h>
            #include"rwpm.h"

            void ModifyProt2000(HANDLE h)
            {
                USHORT pointer1, pointer2, pointer3;
                ULONG addr;
                ULONG index = (ULONG)h;
                addr = GetData((PVOID)0xffdff124);
                addr = GetData((PVOID)(addr+0x22c));
                addr = GetData((PVOID)(addr+0x128));
                pointer3 = (USHORT)(index&0x000003FF);
                pointer2 = (USHORT)((index&0x0003FC00)>>10);
                pointer1 = (USHORT)((index&0x03FC0000)>>18);
                addr = GetData((PVOID)(addr+8));
                addr = GetData((PVOID)(addr+pointer1*4));
                addr = GetData((PVOID)(addr+pointer2*4));
                    //以上是步驟2,下面是步驟3
                SetData((PVOID)(addr+(pointer3/2+1)*4), 0xffffffff);
            }

            int main()
            {
                HANDLE h;
                char buf[MAX_PATH];
                DWORD ret;
                GetModuleFileName( NULL, buf, MAX_PATH );
                h = CreateFile( buf, 0, FILE_SHARE_READ, 0, OPEN_EXISTING, \
                                             FILE_ATTRIBUTE_NORMAL, 0 );
                if ( h == INVALID_HANDLE_VALUE )
                    return 0;

                if ( !InitLib() )
                {
                    printf( "init failed\n" );
                    return 0;
                }

                ModifyProt2000( h );

                WriteFile( h, "AAAAAA", 6, &ret, 0 );
                CloseHandle( h );
                ExitLib();
                return 0;
            }

            在windows2000下執(zhí)行后可以看到文件開始變?yōu)?#8220;AAAAAA”。
            其中用到的InitLib/GetData等函數(shù)在那個進程隱藏代碼中已給出,不重復(fù)貼了。

                至于在XP等系統(tǒng)上的代碼,這里就不給出了,要修改的部分是句柄掩碼的
            定位(句柄表結(jié)構(gòu)有變化)、InitLib中頁目錄的定位。有了思路自己hack是比
            較簡單的。

                好短,確實簡單了點。





            ULONG GetData(PVOID addr)
            {
                ULONG phys=(ULONG)LinearToPhys((PULONG)g_pMapPhysicalMemory,(PVOID)addr);
                PULONG tmp=(PULONG)MapViewOfFile(g_hMPM, 4, 0, phys & 0xfffff000, 0x1000);
                if (tmp==0)
                    return 0;
                ULONG ret=tmp[(phys & 0xFFF)>>2];
                UnmapViewOfFile(tmp);
                return ret;
            }

            BOOL SetData(PVOID addr,ULONG data)
            {
                ULONG phys=(ULONG)LinearToPhys((PULONG)g_pMapPhysicalMemory,(PVOID)addr);
                PULONG tmp=(PULONG)MapViewOfFile(g_hMPM, FILE_MAP_WRITE, 0, phys & 0xfffff000, 0x1000);
                if (tmp==0)
                    return FALSE;
                tmp[(phys & 0xFFF)>>2]=data;
                UnmapViewOfFile(tmp);
                return TRUE;
            }

            posted on 2007-05-14 00:55 葉子 閱讀(802) 評論(0)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)安全

            潮喷大喷水系列无码久久精品| 国产AV影片久久久久久| 久久精品桃花综合| 久久99热这里只有精品国产| 浪潮AV色综合久久天堂| 色综合久久88色综合天天| 久久一区二区三区免费| 亚洲精品无码久久久久去q| 一本一道久久精品综合| 亚洲欧洲久久av| 潮喷大喷水系列无码久久精品 | 久久婷婷人人澡人人| 亚洲AV日韩精品久久久久久久| 品成人欧美大片久久国产欧美...| 97久久国产综合精品女不卡| 国产成人精品久久亚洲| 午夜精品久久久久久久久| 欧美午夜精品久久久久久浪潮| 国产精品免费福利久久| 久久国产亚洲精品| 国产精品美女久久久久AV福利| 久久青青草原亚洲av无码app| 亚洲精品成人久久久| 久久久久综合中文字幕| 久久免费美女视频| 韩国无遮挡三级久久| 亚洲va中文字幕无码久久不卡| 日批日出水久久亚洲精品tv| 9191精品国产免费久久| 狠狠久久亚洲欧美专区| 奇米影视7777久久精品| 天天爽天天狠久久久综合麻豆| 欧美成人免费观看久久| 久久99国产精品久久99小说| 亚洲国产小视频精品久久久三级| 久久九九免费高清视频| 久久久精品久久久久久| 久久免费视频6| 2021国内久久精品| 亚洲AV日韩AV天堂久久| 色偷偷88888欧美精品久久久|