• <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>

            聚星亭

            吾笨笨且懶散兮 急須改之而奮進
            posts - 74, comments - 166, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
            比賽的地址是:http://www.ghoffice.com/bbs/read-htm-fid-97-tid-63475.html

            引用一下原題目:

                  引用的內容    
            編程樂園的人氣貌似不強,難道大家無會編程的?

            希望各大高手,新手通通出馬.盡現你的才華哦.


            PS:該帖來自編程樂園的轉向,所有權在編程樂園,應當采用編程樂園的規則,希望大家不要放水


            比賽內容:【打印99乘法口訣】(簡單吧)

            要求:用最短的,最奇怪,或著是最有特色代碼,語言不限,禁抄襲

            評獎:到50帖時

            獎勵設置:

            一等獎 (1名)100論壇幣    50威望

            二等獎(2名)80論壇幣  30威望

            三等獎(3名)50論壇幣   20威望

            優秀獎(若干)10論壇幣   5威望

            還會機會獲得勛章哦!

            Quote:

            回帖要求:

            1、貼圖

            2、源代碼




            很簡單的題目,可是要求是:要不你精簡,要不你奇特,我看到這個比賽題目的時候,沒有辦法,人家已經把我知道的精簡式的代碼幾乎貼完了,那我也就只能來個奇特的了,用shellcode實現,代碼如下:

            #include "stdio.h"
            #include 
            "windows.h"
            typedef unsigned 
            char       BYTE;

            typedef VOID (CALLBACK 
            *MYSPRINTF)(char *const char *);
            typedef VOID (CALLBACK 
            *MYLSTRCAT)(char *char *);
            typedef VOID (CALLBACK 
            *MYMSGBOX)(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);

            MYSPRINTF mySprintf 
            = (MYSPRINTF)GetProcAddress(LoadLibraryA("msvcr71.dll"), "sprintf"); 
            MYLSTRCAT myStrCat 
            = (MYLSTRCAT)GetProcAddress(LoadLibraryA("KERNEL32.dll"), "lstrcatA"); 
            MYMSGBOX  myMsgBox 
            = (MYMSGBOX)GetProcAddress(LoadLibraryA("user32.dll"), "MessageBoxA"); 


            BYTE    buf[]        
            = {    0xB8,0x00,0x12,0x00,0x00,0xE8,0xAE,0x00,0x00,0x00,0x55,0x56,0x57,0xB9,0x7F,0x00,\
                                    
            0x00,0x00,0x33,0xC0,0x8D,0x7C,0x24,0x0D,0xC6,0x44,0x24,0x0C,0x00,0xC6,0x84,0x24,\
                                    
            0x0C,0x02,0x00,0x00,0x00,0xF3,0xAB,0x66,0xAB,0xAA,0xB9,0xFF,0x03,0x00,0x00,0x33,\
                                    
            0xC0,0x8D,0xBC,0x24,0x0D,0x02,0x00,0x00,0xBE,0x01,0x00,0x00,0x00,0xF3,0xAB,0x66,\
                                    
            0xAB,0xAA,0xBF,0x01,0x00,0x00,0x00,0x3B,0xF7,0x7C,0x33,0x8B,0xEE,0xA1,0x18,0x61,\
                                    
            0x40,0x00,0x55,0x57,0x56,0x8D,0x4C,0x24,0x18,0x50,0x51,0xFF,0x15,0x20,0x86,0x40,\
                                    
            0x00,0x83,0xC4,0x14,0x8D,0x54,0x24,0x0C,0x8D,0x84,0x24,0x0C,0x02,0x00,0x00,0x52,\
                                    
            0x50,0xFF,0x15,0x28,0x86,0x40,0x00,0x47,0x03,0xEE,0x3B,0xFE,0x7E,0xCF,0x8D,0x8C,\
                                    
            0x24,0x0C,0x02,0x00,0x00,0x68,0x24,0x61,0x40,0x00,0x51,0xFF,0x15,0x28,0x86,0x40,\
                                    
            0x00,0x46,0x83,0xFE,0x0A,0x7C,0xAB,0x6A,0x00,0x8D,0x94,0x24,0x10,0x02,0x00,0x00,\
                                    
            0x68,0x28,0x61,0x40,0x00,0x52,0x6A,0x00,0xFF,0x15,0x24,0x86,0x40,0x00,0x5F,0x5E,\
                                    
            0x5D,0x81,0xC4,0x00,0x12,0x00,0x00,0xC3\
                                };

            BYTE AllocBuf[]        
            = {    0x51,0x3D,0x00,0x10,0x00,0x00,0x8D,0x4C,0x24,0x08,\
                                    
            0x72,0x14,0x81,0xE9,0x00,0x10,0x00,0x00,0x2D,0x00,\
                                    
            0x10,0x00,0x00,0x85,0x01,0x3D,0x00,0x10,0x00,0x00,\
                                    
            0x73,0xEC,0x2B,0xC8,0x8B,0xC4,0x85,0x01,0x8B,0xE1,\
                                    
            0x8B,0x08,0x8B,0x40,0x04,0x50,0xC3\
                                    };
            const char    *pConChar        = "%d*%d=%-4d\0";
            const char      *pTitle        = "九九乘法表\0";
            char          *pNchar        = "\n";

            void main()

                
            long*    pVoid = (long *)buf;
                __asm
                {
                    CALL pVoid;
                }
            }

            就這樣了,貼小效果的圖片吧:


            貼一下bin和SRC:
            bin和Src       (說明,由于全部用了硬編碼,所以,有可能在各位的電腦上不能正常運行!)
            MS:本程序在WinXP SP3下測試通過!

            Feedback

            # re: 廣海社區 --- 編程大塞題目《打印九九乘法表》  回復  更多評論   

            2009-03-26 19:28 by vfer
            其實有一種方法 有效率又很小

            # re: 廣海社區 --- 編程大塞題目《打印九九乘法表》[未登錄]  回復  更多評論   

            2010-01-13 08:04 by MasterLuo
            小論壇吧。

            # re: 廣海社區 --- 編程大塞題目《打印九九乘法表》  回復  更多評論   

            2012-01-10 10:45 by 小菜貓
            胖子這么變態。。。
            puts("1x1=1");
            .....
            puts("9x9=81");

            热re99久久精品国99热| 久久婷婷国产麻豆91天堂| 国产成人无码精品久久久免费| 久久久久亚洲AV无码永不| 久久久久久九九99精品| 久久se精品一区精品二区| 伊人久久精品线影院| 精品国产青草久久久久福利| 97久久香蕉国产线看观看| 日韩精品久久久久久| 精品乱码久久久久久夜夜嗨| 国内精品久久国产大陆| 国产精品成人无码久久久久久| 久久青青国产| 久久国产精品久久| 日韩人妻无码精品久久免费一 | 久久99久久成人免费播放| 久久久久这里只有精品 | 久久精品99无色码中文字幕| aaa级精品久久久国产片| 激情五月综合综合久久69| 亚洲午夜无码久久久久| 国产成人综合久久精品尤物| 色综合久久中文字幕综合网 | 国产一久久香蕉国产线看观看| 91久久精品电影| 国产精品视频久久| 久久国产热精品波多野结衣AV| 日本久久中文字幕| 久久久久国产一区二区三区| 精品久久久一二三区| 成人午夜精品久久久久久久小说| 一本一本久久A久久综合精品 | 亚洲精品成人久久久| 97r久久精品国产99国产精| 久久精品综合网| 久久精品国产男包| 亚洲AV乱码久久精品蜜桃| 伊人色综合久久天天人守人婷| 亚洲狠狠综合久久| 国产精品久久久久一区二区三区|