• <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++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            比賽的地址是:http://www.ghoffice.com/bbs/read-htm-fid-97-tid-63475.html

            引用一下原題目:

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

            希望各大高手,新手通通出馬.盡現(xiàn)你的才華哦.


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


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

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

            評獎:到50帖時

            獎勵設置:

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

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

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

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

            還會機會獲得勛章哦!

            Quote:

            回帖要求:

            1、貼圖

            2、源代碼




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

            #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: 廣海社區(qū) --- 編程大塞題目《打印九九乘法表》  回復  更多評論   

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

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

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

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

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

            国产精品九九久久免费视频 | 国产精品18久久久久久vr| 国产精品成人99久久久久| 国产午夜久久影院| 国产午夜福利精品久久2021| 久久精品国产乱子伦| 欧美日韩精品久久久久| 亚洲&#228;v永久无码精品天堂久久 | 久久久久免费精品国产| 久久99这里只有精品国产| 少妇无套内谢久久久久| 无码任你躁久久久久久老妇App| 精品人妻伦九区久久AAA片69| 久久精品中文字幕一区| 日韩久久久久中文字幕人妻| 亚洲午夜无码AV毛片久久| 亚洲七七久久精品中文国产| 精品国产99久久久久久麻豆 | 久久91综合国产91久久精品| 久久久精品一区二区三区| 国产精品va久久久久久久| 亚洲一级Av无码毛片久久精品| 久久久噜噜噜久久中文字幕色伊伊| 久久最新精品国产| 久久精品国产清自在天天线| 99久久久久| 久久精品国产精品亜洲毛片| 人妻丰满?V无码久久不卡| 久久免费视频1| 潮喷大喷水系列无码久久精品| 99热成人精品热久久669| 久久精品夜色噜噜亚洲A∨| 香蕉久久久久久狠狠色| 国产精品视频久久| 久久青青色综合| 99久久免费国产特黄| 久久996热精品xxxx| 噜噜噜色噜噜噜久久| 久久精品国产只有精品2020| 狠狠精品干练久久久无码中文字幕| 欧美亚洲国产精品久久久久|