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

            四虎国产精品免费久久| 久久久久久久亚洲精品| 精品综合久久久久久888蜜芽| 久久综合亚洲欧美成人| 久久免费国产精品一区二区| 久久免费99精品国产自在现线| 亚洲午夜久久久久久久久久| 国产韩国精品一区二区三区久久| 欧美激情精品久久久久久久| 色婷婷综合久久久久中文一区二区 | 中文字幕无码久久人妻| 色欲综合久久躁天天躁蜜桃| 国产精品嫩草影院久久| 久久久久久曰本AV免费免费| 亚洲国产精品久久久久婷婷老年| 精品一二三区久久aaa片| 狠狠精品干练久久久无码中文字幕| 无码人妻久久久一区二区三区| 久久国产乱子精品免费女| 狠狠综合久久综合88亚洲| 国产亚洲美女精品久久久| 久久91精品久久91综合| 久久久久久久波多野结衣高潮| 激情久久久久久久久久| 久久免费精品视频| 99精品久久精品一区二区| 久久青青草原亚洲av无码app | 久久精品国产99久久久古代| 精品水蜜桃久久久久久久| 精品久久香蕉国产线看观看亚洲| 久久综合香蕉国产蜜臀AV| 亚洲午夜久久久久久久久电影网| 亚洲&#228;v永久无码精品天堂久久| 久久91精品国产91久久户| 国产精品禁18久久久夂久| 久久99精品久久久久子伦| 久久99热只有频精品8| 99久久精品国产高清一区二区 | 狠狠综合久久综合中文88| 婷婷久久综合九色综合98| 亚洲狠狠综合久久|