日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 學院 > 邏輯算法 > 正文

輸入表隱藏、加密的原理和手工實現

2019-09-10 09:02:02
字體:
來源:轉載
供稿:網友

一、前言:現在對輸入表的查已經成為軟件毒的一個重要方面,沒有一個軟件不把輸入表作為查的對象,通常的輸入表移位、重建已經不能作為的重要手段,可以說軟件也在逐步進步,而我先前倡導的輸入表按序號重建也因為存在系統兼容性問題不能作為輸入表的手段。如何改變輸入表部分的內容與結構,使其與原先的不同,這就是本文要討的問題。
二、目的:通過本文的學習,可以掌握手工導入輸入表和手工加密輸入表函數的名稱的辦法,并能學習到匯編語言的精辟。
三、基本知識
在開始之前,我們先來了解二個kernel32.dll的函數的使用方法,即:kernel32.LoadLibraryA和kernel32.GetProcAddress,它們是本文要用到的二個關鍵函數。具體的函數介紹可以看看這篇文章:《3個脫相關的重要函數介紹》http://bbs.pediy.com/showthread.php?threadid=20230
1、LoadLibraryA函數
LoadLibrary函數是把指定的可執行模塊映射進調用進程的地址空間。通俗的說,如程序需要調用ole32.dll里面的CreateStreamOnHGlobal函數,首先應該用LoadLibraryA函數找到ole32.dll的句柄。然后根據這個句柄用GetProcAddress找到CreateStreamOnHGlobal的內存指針。
它有一個參數,即動態鏈接庫名稱的內存地址。匯編語言是這樣實現的(以前面為例):
PUSH 10018888   //10018888指向ole32.dll名稱。
CALL DWORD PTR DS:[10019990]   //10019990是LoadLibraryA的內存指針。
結果放在EAX里面,返回值為模塊句柄。
2、GetProcAddress函數
GetProcAddress函數返回指定的輸出動態鏈接庫內的函數地址。它有二個參數。匯編語言是這樣實現的(以前面為例):
PUSH 1001888C   //1001888C指向CreateStreamOnHGlobal名稱。
PUSH EAX   //EAX的值為LoadLibraryA的返回值,即ole32.dll的句柄。
CALL DWORD PTR DS:[1001999C]   //1001999C為GetProcAddress函數的內存指針。
結果也放在EAX里面,返回值為DLL輸出函數的內存地址。
四、輸入表加密工具的原理和優缺點
我在之前的文章中采用了一個加密工具,可以用來加密EXE的輸入表,通過這個工具加密之后,整個輸入表大部分消失了,只剩下kernel32.dll和它的二個API函數,就是上面介紹的二個,LoadLibraryA函數和GetProcAddress函數。它加密的原理就是采用LoadLibraryA函數和GetProcAddress函數在程序中用代碼加密的輸入表DLL的名稱以及API函數的名稱和內存指針恢復,用匯編語言實現是很簡單的。
這個加密工具的缺點是只能加密部分EXE文件(雖然我對加密工具進行了一個修正,但據反映,有些EXE文件還是不能用來加密輸入表),不能加密DLL文件。而且用這個工具加密后再通過我的改處理服務端的方法已經被瑞星關注了,瑞星就在加后的輸入表GetProcAddress函數上。
五、手工編寫輸入表隱藏和加密代碼
現在開始本文的重點,就是用手工編寫代碼改變輸入表的結構,隱藏部分輸入表。我們以Pcshare中的PcMain.dll為例,為什么采用這個做為例子,因為下一個教程我準備出DLL改教程,用這個教程為下一個教程做鋪墊。
我做二個示范,分別屬于二種情況,一種是隱藏輸入表中鏈接庫DLL和其所有API函數,另外一種是只隱藏鏈接庫DLL中的某一個API函數。至于加密函數名稱,可以采用我的輸出表加密函數名稱的辦法(雙字節異或加密),這里不做介紹了,一般采用隱藏輸入表就可以達到的目的。
PcMain.dll中ole32.dll只有一個函數CreateStreamOnHGlobal,把ole32.dll和其CreateStreamOnHGlobal隱藏, 另外隱藏shell32.dll中的ShellExecuteA函數。
1、加空區段。作為代碼寫入的區域。記住程序原入口點為100116E3。
2、寫入代碼。一般采用PUSHAD開始,POPAD結束,以避免不必要的錯誤。同時采用CALL(下一句的地址)和POP結構實現程序的自定位,通過內存的相對位置使程序也能用于DLL文件的輸入表隱藏。
我們記下幾個內存值:
程序新入口點10018000
EBP:10018000
ole32.dll名稱起始內存地址:1001333C(用C32ASM尋找,再換算),與EBP的差值為4CC4。
CreateStreamOnHGlobal名稱起始內存地址:10013326(用C32ASM尋找,再換算),與EBP的差值為4CDA。
CreateStreamOnHGlobal原程序中起始內存指針地址:1001236C(在OD里同時按CTRL和N,再查找),與EBP的差值為5C94。
Shell32.dll名稱起始內存地址:10013318(用C32ASM尋找,再換算),與EBP的差值為4CE8。
ShellExecuteA名稱起始內存地址:100132E0(用C32ASM尋找,再換算),與EBP的差值為4D20。
ShellExecuteA原程序中起始內存指針地址:10012248(在OD里同時按CTRL和N查找),與EBP的差值為5DB8。
LoadLibraryA函數內存指針:100121BC(在OD里同時按CTRL和N),與EBP的差值為5E44。
GetProcAddress函數內存指針:1001210C(在OD里同時按CTRL和N),與EBP的差值為5EF4。
開始寫代碼,看操作。
代碼如下:
10018000     60               pushad
10018001     E8 00000000     call PcMain01.10018006//自定位
10018006     5D               pop ebp//EBP的值為本行地址
10018007     83ED 06         sub ebp,6
1001800A     8BDD             mov ebx,ebp
1001800C     81EB C44C0000   sub ebx,4CC4//EBX指向ole32.dll名稱起始內存地址

10018012     53               push ebx//作為參數進棧
10018013     8BDD             mov ebx,ebp
10018015     81EB 445E0000   sub ebx,5E44//EBX指向LoadLibraryA函數內存指針
1001801B     FF13         call dword ptr ds:[ebx]//調用LoadLibraryA函數
1001801D     8BF8             mov edi,eax//結果放在EDI
1001801F     8BDD             mov ebx,ebp
10018021   81EB DA4C0000   sub ebx,4CDA//EBX指向CreateStreamOnHGlobal名稱起始內存地址
10018027     53               push ebx//參數進棧
10018028     57               push edi//參數進棧
10018029     8BDD             mov ebx,ebp
1001802B     81EB F45E0000   sub ebx,5EF4//EBX指向GetProcAddress函數內存指針
10018031     FF13             call dword ptr ds:[ebx]//調用GetProcAddress函數
10018033     8BDD             mov ebx,ebp
10018035     81EB 945C0000   sub ebx,5C94//EBX指向CreateStreamOnHGlobal原程序中起始內存指針地址
1001803B     8903             mov dword ptr ds:[ebx],eax//將CreateStreamOnHGlobal內存地址放入原內存指針地址
1001803D     8BDD             mov ebx,ebp//以下步驟同上,處理ShellExecuteA
1001803F     81EB E84C0000   sub ebx,4CE8
10018045     53               push ebx
10018046     8BDD             mov ebx,ebp
10018048     81EB 445E0000   sub ebx,5E44
1001804E     FF13             call dword ptr ds:[ebx]
10018050     8BF8             mov edi,eax
10018052     8BDD             mov ebx,ebp
10018054     81EB 204D0000   sub ebx,4D20
1001805A     53               push ebx
1001805B     57               push edi
1001805C     8BDD             mov ebx,ebp
1001805E     81EB F45E0000   sub ebx,5EF4
10018064     FF13             call dword ptr ds:[ebx]
10018066     8BDD             mov ebx,ebp
10018068     81EB B85D0000   sub ebx,5DB8
1001806E     8903             mov dword ptr ds:[ebx],eax
10018070     61               popad
10018071   - E9 6D96FFFF     jmp PcMain01.100116E3//跳回原入口點
二進制代碼如下:60 E8 00 00 00 00 5D 83 ED 06 8B DD 81 EB C4 4C 00 00 53 8B DD 81 EB 44 5E 00 00 FF 13 8B F8 8B DD 81 EB DA 4C 00 00 53 57 8B DD 81 EB F4 5E 00 00 FF 13 8B DD 81 EB 94 5C 00 00 89 03 8B DD 81 EB E8 4C 00 00 53 8B DD 81 EB 44 5E 00 00 FF 13 8B F8 8B DD 81 EB 20 4D 00 00 53 57 8B DD 81 EB F4 5E 00 00 FF 13 8B DD 81 EB B8 5D 00 00 89 03 61 E9 6D 96 FF FF
3、刪除原鏈接庫DLL和其API函數指針。對于ole32.dll我們采用LORDPE進行操作,我們在輸入表里刪除ole32.dll,對于ShellExecuteA我們采用C32ASM打開文件,根據上面的ShellExecuteA原程序中起始內存指針地址換算成偏移地址,然后將其填充為00。這樣我們的修改就好了。
修改好的輸入表里我們刪除了ole32.dll,ShellExecuteA雖然在輸入表里還存在,但是它的內存指針已經沒有了,可以用OD看下,同樣按CTRL和N,找到ShellExecuteA,看它的內存指針變成了00。我們在Od跟蹤下,指針恢復了。
測試上線成功。功能無損。
這種方法適用于所有PE文件,包括EXE和DLL文件的輸入表處理。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

最近免费中文字幕在线第一页| 五月综合激情日本mⅴ| 亚洲福利在线观看| 日韩一级在线视频| 国产一级久久久| 亚洲a一级视频| 日韩一级二级三级| 国产欧亚日韩视频| 日韩 欧美 综合| 97国产视频| 日韩午夜高潮| 欧美日韩国产专区| 国产欧美日韩在线| 日韩欧美中文字幕一区| 欧美日韩一二三| 91精品国产综合久久久久久| 久久精品久久精品亚洲人| 亚洲成av人综合在线观看| 欧美日韩综合在线免费观看| 日韩在线小视频| 国产婷婷在线观看| 一区二区精品区| 精品在线一区二区| 婷婷中文字幕在线观看| 黄色国产网站在线播放| 午夜黄色小视频| 中文字幕 乱码 中文乱码91| 99精品免费观看| 国产95在线|亚洲| 一区在线播放视频| 欧美日韩国产一级片| 免费在线观看国产黄| 欧美日韩高清| 久久99久久久久久久噜噜| 一级国产黄色片| 高清1区2区| 亚洲一区视频在线观看视频| 日本不卡免费高清视频| 伊人永久在线| 日韩欧美一级视频| 亚洲黄色在线观看| av午夜在线| 中文字幕在线观看网址| 日本a口亚洲| 亚洲视频 中文字幕| 激情婷婷亚洲| 国产区在线看| 欧美性生交大片免费| 国产性一级片| 久久精品黄色片| 一区二区三区四区五区视频在线观看| 国产视频二区| 日韩视频在线一区| 日韩欧美综合在线| 一级日本免费的| 精品999在线| 午夜一区二区三区| 综合激情国产一区| 久久精品最新免费国产成人| www.狠狠干| 午夜国产视频 | 欧美日韩视频网站| www中文字幕| 国产三级视频在线| 国产中文伊人| 中文国产字幕在线观看| 久久激情一区| 一区三区二区视频| 成人a在线观看| 国产日韩精品在线观看| 日韩不卡高清视频| 中文字幕线观看| 精产国产伦理一二三区| 国产成人精品999在线观看| 欧美三级网址| 中文字幕欧美亚洲| 国产亚洲短视频| 欧美日韩在线看| 国产欧美日韩精品在线观看| 最新中文在线视频| 在线观看一区日韩| 中文字幕在线观看精品| 婷婷久久综合网| 亚洲第一香蕉网| 日韩精品在线免费看| 欧美wwww| 免费看ww视频网站入口| 日韩高清不卡在线| 日韩中文字幕第一页| 中文在线第一页| 亚洲经典中文字幕| 在线看欧美日韩| 中文字幕久久av| 一区二区中文视频| 日韩欧美中文字幕公布| 国产精品一区二三区| 欧美日韩高清在线一区| 日韩激情一区| 欧美日韩视频免费| 欧美日韩三级视频| 亚洲综合在线视频| 国产啊啊啊视频在线观看| 一区精品在线播放| 日韩在线a电影| 日韩视频第二页| 日韩不卡中文字幕| 日韩高清不卡在线| 国产福利免费观看| 中文字幕第一页在线播放| 最新中文字幕在线播放 | 日韩精品欧美| 欧美在线日韩在线| 亚洲永久字幕| 视频一区二区国产| 日韩欧美在线不卡| 一区三区视频| 国产偷国产偷亚洲清高网站| 欧美高清一区| 日本免费在线视频不卡一不卡二| www中文字幕| 亚洲校园欧美国产另类| 99综合精品久久| 在线中文字幕视频观看| 国产色在线 com| www.久久久精品| 中文字幕线观看| 一区二区三区视频网站 | 1区不卡电影| 91亚洲欧美| 亚洲制服一区| 国产成人精品免费网站| 欧美日韩精品免费| 午夜福利一区二区三区| 日韩欧美看国产| 欧美日韩中文在线| 日韩中文字幕观看| 国产视频中文字幕| 欧美日韩色综合| 欧美中文字幕视频在线观看| 国产三级在线观看视频| 国产一级免费在线观看| 在线国产日本| 黄色一区二区在线观看| 二区视频在线观看| 精品区一区二区| 欧美国产一级片| 在线视频1区2区| 日韩午夜中文字幕| 久久欧美中文字幕| av丝袜在线| 日韩精品在线免费观看视频| 91精品国产91| 99精品电影| 国产欧美日韩最新| 欧美激情一区二区三区在线| 日韩在线视频一区| 精品播放一区二区| 一本大道一区二区三区| 亚洲va中文字幕| 一区二区在线视频播放| 1024国产在线| 成人无遮挡免费网站视频在线观看| 日韩精品在线观| 中文精品电影| 99pao成人国产永久免费视频| 国产99在线 | 亚洲| 中文字幕欧美亚洲| 国产一二三四| 91精品国产91久久久| 国产欧美久久久精品影院| 欧美久久久久久蜜桃| 久久69成人| 亚洲欧美伊人| 不卡一区2区| 亚洲一级在线| 日韩精品在线网站| 日韩视频免费直播| 精品乱人伦一区二区三区| 中文字幕在线中文字幕二区| av免费在线观看网址| 国产欧美久久久久久久久| 日韩亚洲欧美中文字幕| 日本中文字幕在线观看| 欧美亚洲国产日韩2020| 欧美日韩精品不卡| 日韩在线中文视频| 免费高清视频日韩| 国产激情三区| 视频一区视频二区中文| 日韩欧美中文在线| 亚洲综合在线中文字幕| 精品不卡一区二区| 日韩欧美三级| 欧美日韩在线视频首页| 精品成人久久久| 91精选在线| 亚洲第一中文字幕| 51精品免费网站| 红桃视频亚洲| 国产成人精品日本亚洲专区61| 日韩精品视频在线播放| 日韩欧美亚洲日产国| 亚洲а∨精品天堂在线| 中文字幕99| 日韩不卡在线观看| 亚欧成人精品| 亚洲第一视频| 日韩免费高清一区二区| 亚洲热线99精品视频| 在线中文字幕网站| 欧美中文字幕视频| 在线免费视频一区二区| 亚洲狠狠婷婷综合久久久久图片| 中文字幕亚洲第一| 国产欧美日韩视频在线| 国产 中文 字幕 日韩 在线| 韩国av一区二区| 欧美日韩一二| 国产三级在线| 日韩三级一区二区| 一区二区不卡视频| 欧美日韩国产中文| 一区精品在线播放| 成人精品国产福利| 日韩精品在线免费观看视频| 国产99亚洲| 欧美日韩99| 欧美日韩亚洲不卡| 久久99精品久久久| 欧美大片在线观看一区 | 亚洲一区在线观看网站| 久久99精品国产| 精品日韩在线观看| 中文字幕精品www乱入免费视频| 国产资源在线观看入口av| 日韩在线一区二区视频| 国产中文在线视频| 一区二区不卡久久精品| www.久久久精品| 国产欧美日韩中文字幕在线| 免费视频二区| 天天摸日日摸狠狠添| 国产欧美日韩中文字幕在线| 日韩三级视频在线看| 日韩精品视频免费| 精品在线一区二区| 午夜一区二区三区视频| 精品免费久久久| 国产丝袜在线播放| 亚洲欧美久久久| 视频一区日韩| 色屁屁一区二区| 亚洲综合在线小说| 国产一级免费在线观看| 午夜亚洲一区| 国产欧美高清在线| 99久久婷婷| 自拍日韩亚洲一区在线| 欧美日韩亚洲91| 在线视频一区二区三区在线播放| 欧美日韩第一| 91精品国产综合久久久久久漫画 | 国产乱国产乱300精品| 日韩欧美在线看| 久久久91精品| 欧美国产三级| 日韩在线视频一区| 免费日韩精品中文字幕视频在线| 91精品久久久久久久久| 国产小视频免费在线观看| 欧美日韩在线精品成人综合网| 一级片免费在线| 午夜av一区二区| www.老鸭窝.com| 日韩三级精品电影久久久| 自拍日韩亚洲一区在线| 91久久中文| 国产在线导航| 国产亚洲二区| 欧美日韩中文字幕在线视频| 国产黄色在线| 国产欧美高清在线| 欧美日韩精品在线视频| 日韩国产欧美在线视频| 中文字幕精品亚洲| 欧美日韩高清一区二区不卡| 精品日韩在线观看| 日韩视频国产视频| 中文在线视频| 国产一二三四| www.三级.com| a视频免费看| 亚洲欧洲国产视频| 久久精品www| 中文字幕久久av| 91麻豆免费视频网站| 日韩视频专区| 国产 日韩 欧美 综合| 久久视频免费看| 日韩久久精品视频| 精品国产999| 国产偷国产偷亚洲清高网站 | 欧美99久久| 中文字幕人成乱码在线观看| 粉嫩粉嫩芽的虎白女18在线视频| 中文字幕第一页在线播放| 国产激情99| 国产视频一区二| 日韩精品一二三四区| 久久电影国产免费久久电影| 一区精品在线播放| 日韩中文字幕在线视频观看 | 中文字幕在线高清| 高清一区二区| 天天综合色天天| 欧美国产日韩综合| 亚洲欧美小说国产图片| 欧美日韩性视频一区二区三区| 不卡福利视频| 欧美日韩国产片| 国产1卡2卡三卡四卡网站| 日韩视频在线一区二区三区| 日韩免费视频一区| 一区二区精品免费| 日韩美女视频一区二区在线观看| 国产欧美日韩不卡| 丰满少妇一区二区| 国产丝袜一区| 欧美 日韩 国产在线| www.eeuss影院| 午夜视频在线观看一区| 黄污视频在线看| 亚洲第一视频在线观看| 国产色在线视频| 91精品视频播放| 国产视频一区二| 亚洲国产午夜精品| 欧美在线日韩在线| 中文字幕欧美日韩| 国产一二三区精品视频| www.中文字幕在线| 福利在线国产| 欧美国产综合在线V| 韩国av一区二区| 日韩视频免费直播| 日韩精品中文字幕第1页| 99这里有精品视频| 欧美中文字幕第一页| 久久久精品免费免费| 91亚洲欧美| av三级在线观看| 中文字幕国产欧美| 精品国产乱码一区二区| 日韩一级二级三级| 日韩免费不卡avV| 欧美日韩精品电影| 日韩欧美在线看| 亚洲一区在线观看免费| 中文字幕精品在线视频| 中文字幕精品视频| 国产成人精品免费网站| 精品一二三区| 91久久精品网| 一区二区三区四区五区视频在线观看| 欧美日韩亚洲综合| 亚洲一区视频在线观看视频| 亚洲影视资源网| 国产免费不卡av| 天堂在线中文资源| 亚洲一区精品在线| 国产欧美日韩视频| 欧美1234区| 红桃视频亚洲| 久久久精品国产99久久精品芒果| 欧美日韩中文字幕| 日韩视频在线免费播放| 黄色精品在线观看| 精品视频国产| 亚洲欧美99| aaa大片在线观看| 日韩精品视频在线播放| 国产欧美日韩在线视频| 深夜福利一区二区| 日韩专区视频网站| 日本不卡免费高清视频| а√天堂中文在线资源8| 精品一区二区三区中文字幕 | 亚洲综合在线中文字幕| 日韩中文字幕在线视频播放 | 亚洲羞羞网站| 日韩欧美999| 亚洲最大黄色| 深夜福利一区二区| 在线欧美日韩精品| 国产专区中文字幕| 国产久卡久卡久卡久卡视频精品| 欧美日韩三级在线观看| 日韩国产一区| 国产一级一片免费播放| 婷婷久久综合九色国产成人|