• <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");

            香蕉久久av一区二区三区| 久久被窝电影亚洲爽爽爽| 久久露脸国产精品| 久久久久久国产a免费观看黄色大片 | 久久综合狠狠色综合伊人| 久久se精品一区二区影院| 国产成年无码久久久免费| 99久久久久| 久久亚洲AV成人无码电影| 欧美激情精品久久久久久久九九九| 久久人妻无码中文字幕| 久久精品国产亚洲5555| 91精品国产高清久久久久久io| 亚洲成av人片不卡无码久久| 99久久国产综合精品麻豆| 一本色道久久综合狠狠躁| 狠狠色综合网站久久久久久久| 久久99精品国产麻豆宅宅| 久久996热精品xxxx| 久久精品国产亚洲AV高清热| 久久婷婷五月综合成人D啪| 久久黄视频| 久久91精品综合国产首页| 久久99精品久久久久久动态图| 亚洲色大成网站WWW久久九九| 久久人人爽人人爽人人片AV麻豆| 99久久成人国产精品免费| 人妻无码αv中文字幕久久| 亚洲中文字幕无码久久精品1 | 午夜精品久久久久久久无码| 777久久精品一区二区三区无码| 久久国产精品77777| 久久久久女人精品毛片| 久久永久免费人妻精品下载| 亚洲精品无码久久久久去q| 久久精品中文无码资源站| 午夜精品久久久久久久| 久久无码人妻一区二区三区| 国产精品对白刺激久久久| 精品久久无码中文字幕| 亚洲狠狠久久综合一区77777|