国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 5204|回復(fù): 1
打印 上一主題 下一主題

HotC51共產(chǎn)兒童團(tuán)第十五課:菜農(nóng)點(diǎn)評(píng)__HotASM_START__看誰(shuí)是尿童

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2009-4-2 22:42:32 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
xwj 發(fā)表于 2009-3-5 10:03 單片機(jī) ←返回版面

樓主: 《反忽悠秘笈》--老x(chóng)教你怎樣抵擋老Hotel的“紅杏出墻裝瘋?cè)?/u>


HotC51 發(fā)表于 2009-3-9 19:37 裸奔式實(shí)時(shí)操作系統(tǒng)HotTask51 ←返回版面

樓主: HotC51共產(chǎn)兒童團(tuán)第十五課:菜農(nóng)點(diǎn)評(píng)__HotASM_START__看誰(shuí)是尿童



開(kāi)課:
xwj 發(fā)表于 2009-3-5 12:28 侃單片機(jī) ←返回版面

17樓: “紅杏出墻裝瘋?cè)痹斀猓谝徽校?/u>

/*---------------------------------------------
    HotTask51系統(tǒng)啟動(dòng)函數(shù)
   
void __HotASM_START__(void)
入口: 無(wú)
      Keil DPTR = &__HotASM_START__[0]
           R2D1 = DPTR
出口: 無(wú)
結(jié)果: 二次RETI后繼續(xù)執(zhí)行
特點(diǎn): 本“函數(shù)”可以“動(dòng)態(tài)加載”
-----------------------------------------------*/
--老x(chóng):上面是注釋?zhuān)谥袊?guó)上過(guò)學(xué)的都能看懂,就不用啰嗦了
--觀眾:這還不啰嗦啊?暈!
--老x(chóng):甭暈啊,這都還沒(méi)開(kāi)始呢...
HotASM (__HotASM_START__)//(void)        --定義個(gè)code區(qū)的數(shù)組,相當(dāng)于code const unsigned char __HotASM_START__
                                        --為什么呀?
                                        --為什么?先去看下HotASM.h啊,里面先一招typedef code const unsigned char HotASM_ARRAY;//類(lèi)型定義
                                                                          然后一招#define HotASM(NAME) HotASM_ARRAY(NAME)[]=
                                        --嗯,象這樣的問(wèn)題老x以后就不再回答了,免得浪費(fèi)時(shí)間,還把老x(chóng)也累得要死...
{//DPTR保存的是匯編數(shù)組函數(shù)的首地址__HotASM_START__
#define lable__HotASM_START__Exit \
(    size_CLR_A()  + size_MOV_REG_A()  + size_JZ()  + size_LJMP()  + 2 * size_MOV_A_REG()  + 2 * size_ADD_A()  + 2 * size_PUSH_REG())
--嗯,這個(gè)是用來(lái)計(jì)算跳轉(zhuǎn)多少個(gè)字節(jié)的,因?yàn)楹竺嬗袀(gè)分支,一個(gè)分支分支就會(huì)有2個(gè)出口,有2個(gè)出口當(dāng)然就會(huì)有不同的跳轉(zhuǎn)偏移...
--暈,老x(chóng)今天怎么這么象唐僧啊?
--嗯,那就先不管了,其實(shí)老x(chóng)覺(jué)得啊,這樣子好麻煩啊,還要把中間跳過(guò)的指令都復(fù)制過(guò)來(lái),還要統(tǒng)計(jì)中間的字節(jié)數(shù),真是麻煩啊~~~,老x(chóng)覺(jué)得啊,可以有更簡(jiǎn)單的方法啊,比如直接就RETI啊...
--少啰嗦,快說(shuō)正題!
--好好,老x(chóng)接著分析啊~~
    asm_CLR_A(),                    --想不用想,把ACC清零(有什么用呢?)
    asm_MOV_IE_A(),//關(guān)中斷            --哦,原來(lái)是IE=ACC; 關(guān)中斷。(那...為什么不干脆CLR EA呢?)
    asm_JZ(size_LJMP() - 1),//NOP()    --A為零跳轉(zhuǎn)(這不是那脫褲子排氣嗎?A肯定為0啊,剛剛才清過(guò)呢)
    asm_LJMP(0x5500),//                --跳過(guò)去了,永遠(yuǎn)運(yùn)行不到
    asm_MOV_A_DPL(),                --ACC=DPL;
    asm_ADD_A(lable__HotASM_START__Exit),//__HotASM_START__0    --加上偏移,進(jìn)位的話影響CY
    asm_PUSH_ACC(),//壓入跳入地址__HotASM_START__0低8位            --ACC入棧,SP加一
    asm_MOV_A_DPH(),//                --ACC=DPH;
    asm_ADDC_A(0),                    --前面加偏移時(shí)可能會(huì)進(jìn)位,把可能的進(jìn)位加進(jìn)去
    asm_PUSH_ACC(),//壓入跳入地址__HotASM_START__0高8位            --ACC入棧,SP又加一;這是堆棧中最高2字節(jié)是下一個(gè)出口的地址
//lable__HotASM_START__Exit:
    asm_RETI()//(連續(xù)調(diào)用RETI二次)    --明明只有一次RETI嗎,看來(lái)老Hotel真是老糊涂了
                                    --RETIRET的作用可大了它的作用就是把堆棧中最高2字節(jié)裝入PC(程序地址指針寄存器),把SP-2,這樣下一個(gè)指令就返回到堆棧中最高2字節(jié)對(duì)應(yīng)的地址位置繼續(xù)執(zhí)行了
                                    --這就相當(dāng)于一個(gè)可以任意設(shè)置跳轉(zhuǎn)位置的LJMP,所有的OS可都要玩到這一招哦
};

首先可以看出XWJ很少“反匯編”,而且C51的匯編應(yīng)該屬于“尿童級(jí)”。
    asm_CLR_A(),                    --想不用想,把ACC清零(有什么用呢?)
    asm_MOV_IE_A(),//關(guān)中斷            --哦,原來(lái)是IE=ACC; 關(guān)中斷。(那...為什么不干脆CLR EA呢?)
    asm_JZ(size_LJMP() - 1),//NOP()    --A為零跳轉(zhuǎn)(這不是那脫褲子排氣嗎?A肯定為0啊,剛剛才清過(guò)呢)
    asm_LJMP(0x5500),//                --跳過(guò)去了,永遠(yuǎn)運(yùn)行不到

在這4句里,隱藏了反逆向技術(shù)。
首先,asm_CLR_A(),得到一確定的事情,ACC肯定為0
asm_MOV_IE_A(),//關(guān)中斷,因?yàn)槭浅跏蓟瘮?shù),就應(yīng)該初始化干凈。
否則軟中斷后,EX0等IE內(nèi)的5個(gè)中斷標(biāo)志不會(huì)被清除。
下面這2句誰(shuí)能看出來(lái)???
    asm_JZ(size_LJMP() - 1),//NOP()    --A為零跳轉(zhuǎn)(這不是那脫褲子排氣嗎?A肯定為0啊,剛剛才清過(guò)呢)
    asm_LJMP(0x5500),//                --跳過(guò)去了,永遠(yuǎn)運(yùn)行不到

脫褲子排屁是臭逆向者的~~~因?yàn)榇藭r(shí)ACC為0,它跳入了asm_LJMP(0x5500),的第2操作數(shù)0x00。
0x00是數(shù)據(jù),但代碼確實(shí)NOP!!!
0x5500就是引誘反匯編去0x5500處折騰的,正常的程序永遠(yuǎn)不會(huì)執(zhí)行到~~~
這是系列反逆向技術(shù)的一招。請(qǐng)團(tuán)員們切記!!!
大家可以耐心地debug,可以看到好好的反匯編窗口在執(zhí)行開(kāi)始沒(méi)有NOP指令,
單步到JZ后,在單步發(fā)現(xiàn)指令列表突然變化了---出現(xiàn)了NOP!!!
試想,團(tuán)員們用菜農(nóng)的“250”招后,誰(shuí)還再來(lái)反匯編???
暈都暈死它~~~
俺是“反匯編”的“革命先烈”~~~最近“反水”,所以俺最知道對(duì)付“自己人”
~~~
程序雖小,不暈則好。
有時(shí)間繼續(xù)點(diǎn)評(píng)其他HotC51Demo內(nèi)的小程序~~~
注意,每個(gè)都有課本上學(xué)不到的知識(shí)~~~
課畢

HotC51@126.com   2009.3.9于菜地。
團(tuán)部:
http://group.ednchina.com/1623/
沙發(fā)
發(fā)表于 2009-4-5 16:14:30 | 只看該作者
這東西用來(lái)做源代碼加密不錯(cuò)!

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 性欧美在线 | 日韩欧美亚洲一区 | 456极品嫩模在线视频 | 婷婷色六月| 黄色片视频在线播放 | 国产吃奶摸下激烈视频无遮挡 | 欧美高清一区二区三区欧美 | 成年女人毛片免费观看不卡 | 久久久噜噜噜久久久 | 欧美性生交xxxxx久久久 | 久久免费观看国产99精品 | 日韩精品一区二区三区 在线观看 | 香蕉女郎 | 女人18毛片a级毛片一区二区 | 在线观看麻豆精品国产不卡 | 亚洲一区 在线播放 | 91视频黄版| 欧美手机在线视频 | 日韩在线观看不卡 | 亚洲日本欧美日韩高观看 | 国产在线a免费观看 | 日本视频高清免费观看xxx | 日韩欧美一区二区三区 | 国产亚洲一区二区在线观看 | 国产伦精品一区二区三区免费下载 | 香香视频免费版下载 | 就操成人网| 91精品久久久久久久久久小网站 | 在线天堂网 | 精品57页国产100页 | 亚洲天堂成人在线 | 四虎国产精品永免费 | 操网| 日日摸夜夜添夜夜 | 欧美一级久久久久久久久大 | 国产真实乱子伦xxxx仙踪 | 免费日本在线视频 | 性生生活三级视频在线观看 | 狠狠综合视频精品播放 | 欧美91精品久久久久网免费 | 国产手机在线小视频免费观看 |