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

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉,開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            OllyDBG 之旅 (七)

            Posted on 2009-09-25 22:20 S.l.e!ep.¢% 閱讀(320) 評論(0)  編輯 收藏 引用 所屬分類: Crack

            004010A6? |.? 6A 11???????? push??? 11?????????????????????????????? ; /Count = 11 (17.)
            004010A8? |.? 68 71214000?? push??? 00402171???????????????????????? ; |Buffer = cycle.00402171
            004010AD? |.? 68 E9030000?? push??? 3E9????????????????????????????? ; |ControlID = 3E9 (1001.)
            004010B2? |.? FF75 08?????? push??? dword ptr [ebp+8]??????????????? ; |hWnd
            004010B5? |.? E8 0F020000?? call??? <jmp.&USER32.GetDlgItemTextA>??? ; \GetDlgItemTextA
            004010BA? |.? 0BC0????????? or????? eax, eax
            004010BC? |.? 74 61???????? je????? short 0040111F
            004010BE? |.? 6A 11???????? push??? 11?????????????????????????????? ; /Count = 11 (17.)
            004010C0? |.? 68 60214000?? push??? 00402160???????????????????????? ; |Buffer = cycle.00402160
            004010C5? |.? 68 E8030000?? push??? 3E8????????????????????????????? ; |ControlID = 3E8 (1000.)
            004010CA? |.? FF75 08?????? push??? dword ptr [ebp+8]??????????????? ; |hWnd
            004010CD? |.? E8 F7010000?? call??? <jmp.&USER32.GetDlgItemTextA>??? ; \GetDlgItemTextA
            004010D2? |.? 0BC0????????? or????? eax, eax
            004010D4? |.? 74 49???????? je????? short 0040111F
            004010D6? |.? B9 10000000?? mov???? ecx, 10?????????????????????????????????????????????????????????????????????????? ecx 賦值為 10
            004010DB? |.? 2BC8????????? sub???? ecx, eax?????????????????????????????????????????????????????????????????????????????? =======================
            004010DD? |.? BE 60214000?? mov???? esi, 00402160??????????????????? ;? ASCII "11111"
            004010E2? |.? 8BFE????????? mov???? edi, esi
            004010E4? |.? 03F8????????? add???? edi, eax
            004010E6? |.? FC??????????? cld

            減法指令SUB(SUBtract)
            指令格式:SUB OPRD1,OPRD2
            本指令的功能是進行兩個操作數的相減,即從OPRD1中減去OPRD2,其結果放在OPDR1中。指令的類型及對標志位的影響與ADD指令相同,注意立即數不能用于目的操作數,兩個存儲器操作數之間不能直接相減。操作數可為8位或16位的無符號數或帶符號數。
            例如:SUB DX,CX
            SUB [BX+25],AX
            SUB DI,ALFA[SI]
            SUB CL,20
            SUB DATA1[DI][BX],20A5H

            加法指令 ADD(Addition)
            指令格式:ADD OPRD1,OPRD2
            OPRD1為任一通用寄存器或存儲器操作數,可以是任意一個通用寄存器,而且還可以是任意一個存儲器操作數。這給程序的編寫帶來了很大的方便。
            OPRD2為立即數,也可以是任意一個通用寄存器操作數。立即數只能用于源操作數。
            OPRD1和OPRD2均為寄存器是允許的,一個為寄存器而另一個為存儲器也是允許的,但不允許兩個都是存儲器操作數。理由是指令代碼的尋址方式中規定了兩個操作數(除立即數)至少有一個是寄存器操作數。
            加法指令運算的結果對CF、SF、OF、PF、ZF、AF都會有影響。以上標志也稱為結果標志。加法指令適用于無符號數或有符號數的加法運算。操作數可以是8位,也可以是16位。
            例如:ADD AL,25;(AL)<--(AL)+25
            ADD BX,0A0AH;(BX)<--(BX)+0A0AH
            ADD DX,DATA1[BX]
            ADD DI,CX;
            ADD BETA[BX],AX
            ADD BYTE PTR[BX],28
            上述每一條指令及第六條指令為字節相加指令,其它四條均為字(雙字節)相加指令。


            格式:CLD
            執行的操作:
            該指令使DF=0,在執行串操作指令時,使SI和DI自動增量。


            004010DB? |.? 2BC8????????? sub???? ecx, eax??????? 即??? ecx - eax = 10 - eax (eax 存放用戶名的長度)


            假設輸入的用戶名為: 1111111111, 序列號為: 2222222222

            004010D6? |.? B9 10000000?? mov???? ecx, 10????????????????????????????????????????????????????????????????????????????
            004010DB? |.? 2BC8????????? sub???? ecx, eax
            004010DD? |.? BE 60214000?? mov???? esi, 00402160????????????; 如果此處寫為 mov???? esi, dword ptr [402160]???? 那么執行后,ESI 的值為 31313131
            004010E2? |.? 8BFE????????? mov???? edi, esi
            004010E4? |.? 03F8????????? add???? edi, eax
            004010E6? |.? FC??????????? cld

            ecx = 0x10;
            ecx = 0x10 - 0x0A
            esi = 00402160
            edi= 00402160
            edi=edi+eax = edi + 10

            指令 CLD
             CLD與STD是用來操作方向標志位DF(Direction Flag)。CLD使DF復位,即DF=0,STD使DF置位,即DF=1.用于串操作指令中。
              例如:
              MOVS ( MOVe String) 串傳送指令
              MOVSB //字節串傳送 DF=0, SI = SI + 1 , DI = DI + 1 ;DF = 1 , SI = SI - 1 , DI = DI - 1
              MOVSW //字串傳送 DF=0, SI = SI + 2 , DI = DI + 2 ;DF = 1 , SI = SI - 2 , DI = DI - 2
              執行操作:[DI] = [SI] ,將位于DS段的由SI所指出的存儲單元的字節或字傳送到位于ES段的由DI 所指出的存儲單元,再修改SI和DI, 從而指向下一個元素.

            国内精品久久久久久久涩爱 | 久久精品国产亚洲沈樵| 99麻豆久久久国产精品免费| 91精品免费久久久久久久久| 伊人久久一区二区三区无码| 精品综合久久久久久97超人| 久久99九九国产免费看小说| 久久―日本道色综合久久| 久久久www免费人成精品| 91精品国产色综久久| 亚洲AV乱码久久精品蜜桃| 久久久精品久久久久久| 久久精品九九亚洲精品| 亚洲午夜精品久久久久久app| 久久精品国产99国产精品澳门| 狠狠综合久久AV一区二区三区| 一本久久a久久精品综合夜夜| 无码人妻精品一区二区三区久久| 欧美激情精品久久久久久久九九九 | 免费一级欧美大片久久网| 久久r热这里有精品视频| 欧美牲交A欧牲交aⅴ久久| 久久香综合精品久久伊人| 无码任你躁久久久久久| 国产亚洲美女精品久久久| 天天久久狠狠色综合| 97久久久精品综合88久久| 色综合久久无码五十路人妻| 精品综合久久久久久97| 中文字幕精品无码久久久久久3D日动漫 | 国产精品视频久久久| 久久精品人成免费| av无码久久久久不卡免费网站 | 久久精品国产99国产精偷| 97久久精品国产精品青草| 精品综合久久久久久97超人 | 四虎国产精品成人免费久久| 日韩久久久久中文字幕人妻| 亚洲?V乱码久久精品蜜桃| 麻豆av久久av盛宴av| 麻豆AV一区二区三区久久|