亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 29a-7.012

?? 從29A上收集的病毒源碼
?? 012
字號:

                                 INJECTED EVIL
                         (executable files infection)

                                  1. Theory
                                  ---------

Here  will  be described some rare method of executable files infection. It is
based   on   parsing  trojan  code  into  instructions,  and  injecting  these
instructions  into  free  areas  (alignment) between subroutines of the target
file. This idea is not new, and probably has always been used in some viruses.
Also,  under executable files i'll mean executable ELF files for x86 platform,
though it can be win32 PE files too.

Implementation  depends  on  bytes  filling the alignment areas. Size of these
free areas depends on compiler options, and even in a single executable we can
find  blocks  having  different procedure alignment, since code is linked from
different  separately  compiled object files. Mostly used C compiler alignment
sizes  are  4 and 16 bytes, which can give us 0..3 and 0..15 free bytes at the
end  of the each subroutine. We rely on second variant. Alignment bytes can be
all  equal  to  the  same  value,  such  as 0x90 (bcc) or 0xCC (msvc), or have
different  values,  forming  one  or more instructions of summary size exactly
equal to the alignment size (gcc).

In 1st case, it is easy to find alignment areas using the following algorithm:

* within code section, find C3 (RET), or C2 xx xx (RET N),
  or EB xx (JMP SHORT), or E9 xx xx xx xx (JMP NEAR),
* followed by 1..15 0x90 or 0xCC bytes,
* ended at 16-aligned offset,
* where 0x55 (PUSH EBP) is stored.

 xxxxxxx: C3     retn           ; end of subroutine
 xxxxxxx: 90     nop            ; \ alignment: 1..15 bytes
 xxxxxxx: 90     nop            ; /
 xxxxxx0: 55     push ebp       ; begin of next subroutine
 xxxxxx1: 8B EC  mov  ebp, esp  ; note: 8B EC or 89 E5 here

In  2nd  case, when alignment is formed of one or more instructions, we should
search  for  more  signatures.  However, number of these signatures is finite,
since usual compilers doesnt generate random or polymorphic code, yet. ;-)

 length:   sample alignment bytes (gcc):
   6       8D B6 00 00 00 00
   7       8D B4 26 00 00 00 00
   8       90 8D B4 26 00 00 00 00
   9       89 F6 8D BC 27 00 00 00 00
  10       8D 76 00 8D BC 27 00 00 00 00
  11       8D 74 26 00 8D BC 27 00 00 00 00
  12       8D B6 00 00 00 00 8D BF 00 00 00 00
  13       8D B6 00 00 00 00 8D BC 27 00 00 00 00
  14       8D B4 26 00 00 00 00 8D BC 27 00 00 00 00
  15       EB 0D 90 90 90 90 90 90 90 90 90 90 90 90 90


As  such,  to  find  free  alignment  areas  within  code  section(s)  of some
executable  file,  we only need to search for some predefined signatures. This
is  easy,  but  not very reliable, and it will not find all possible alignment
areas. In the related INFELF tool we will use another algorithm.

Now,  lets  talk  about  how to insert single code snippet into multiple small
free  areas  of some executable file. This can be done by parsing code snippet
into  instructions,  and inserting these instructions into suitable free areas
of  the  executable  file.  Sure, each "injected" instruction must be followed
by  a  JMP  to  the  next injected instruction, unless it is JMP or RET. Also,
if  instruction has relative argument (such as in JMP, CALL, JXX & etc.), this
argument  must  be  correctly  modified,  to point to the new target location.
If  instructions is in short form (JMP SHORT, JXX SHORT) it should be expanded
to  become  near,  since  in most cases new distance between caller and target
becomes greater than  128  bytes. If  instruction  is  LOOP/LOOPZ/LOOPNZ/JECXZ
(E0..E3),  it  should  be  replaced with equivalent code, containing near JXX.
Also, there appears some requirements to our snippet's code:

* dont use data (only code allowed).
* dont use absolute offsets to own code.
* remember that LOOP/LOOPZ/LOOPNZ/JECXZ will be changed to some
  modifying flags instructions.

These  requirements  will  help us parse snippet into instructions without any
problems,  just  instruction  by  instruction,  and  also  it will give to the
snippet's  code some special properties, making it able to be displaced and/or
permutated.

Since  parsing  code  snippet  into instructions requires length-disassembler,
we  can try to use this disassembler in other tasks, such as finding alignment
areas  within target executable file. As such, finding free areas will consist
of  (1)  parsing  executable  file  into  instructions and (2) analyzing these
instructions.

(1) Algorithm of parsing executable file into instructions:

* mark entrypoint, all public functions and some other places as
  for-next-analysis.
* find byte marked as for-next-analysis, mark it as opcode-start,
  and follow execution flow starting at that position.
* get instruction length, and follow next instruction, until it is JMP or RET.
* if some instruction has relative argument, mark its destination as LABEL
  and for-next-analysis.
* continue until there exists for-next-analysis marks.

(2) Algorithm of finding free areas within parsed executable file:

* find any JMP or RET instruction,
* which is followed by 1..15 bytes, which are not marked as code,
* such that these bytes are ended at 16-aligned virtual address,
* at which instruction marked as LABEL is located.
  (LABEL is destination of some JMP, CALL, JXX, etc.)

                                2. INFELF tool
                                --------------

INFELF  tool  is  designed  to inject code snippets into executable ELF files.
It  parses  both  file  and  snippet into instructions, injects each snippet's
instruction  into  suitable  alignment  area within target file, and links all
these injected instructions with each other using JMP NEAR.

While  parsing  ELF  file  into instructions, the following methods of finding
function offsets are used:

* entry point.
* public functions (using symbol table); disabled by -sym- option.
* .got (global offset table) section entries, pointed into executable section;
  disabled by -got- option.
* function startups by PUSH EBP/MOV EBP,ESP signature, located within
  executable section(s) at 4-aligned virtual address;
  disabled by -func- option.
* some jmp tables (produced by compiler from switch-alike constructions);
  disabled by -jmptab- option.
* relative references: CALL, JMP NEAR, JXX NEAR pointed to bytes already
  marked as LABEL; disabled by -relref- option.

Injection offset (i.e. offset of instruction at which to dispatch control) can
be defined using these options:

* To specify offset or virtual address directly,
  use -hookaddr <offset|.va> option.
* To hook control at program entry,
  use -hookentry option.
* To hook control at some public function startup,
  use -hookfunc <Func> option.
* To hook control at offset where some hex signature is located,
  use -hooksign XXYYZZ .. option.

For  example,  to  inject  some  code  snippet  into grep starting at function
main(), do the following:

./infelf /bin/grep -out newgrep -snippet snippet.bin -func main

                           FreeBSD ELF files handling
                           --------------------------

As  it  seems,  default  ELF's  on  this  system  doesnt  containts 16-aligned
subroutines, so INFELF uses '$FreeBSD: ... Exp $' signatures to inject snippet
instructions into.

                            3. Writing Code Snippet
                            -----------------------

Code  snippets  for  INFELF  tool  has  two  special  signatures  inside, used
in infection process.

Signature  db  '$ORIGINAL_BYTES$'  (length=16)  is required, and used to store
original  bytes  from executable file. This is because INFELF inserts JMP NEAR
at  hook offset, and original instruction(s) must be placed somewhere. Minimal
amount  of  bytes  used  is 5, but it can be more, since there is no guarantee
that  instruction(s)  at hook offset will be of exactly same size as JMP NEAR.
Copied  bytes are padded with NOPs. Delta between original instructions length
and 5 is padded with NOPs too.

Signature  MOV  ESP,  0AA55AA55h  (length=5)  is optional, and will be changed
to  JMP  NEAR  to  (hook  offset + 5), to return back to the infected program,
after snippet's code is executed.

Here is sample snippet's code (use nasm -f bin snippet.asm to compile):

  BITS 32
  ; receives control from JMP NEAR at hook offset
  db '$ORIGINAL_BYTES$' ; to be replaced with original bytes, padd with NOP's
  pusha
  nop                   ; payload
  popa
  mov esp, 0aa55aa55h   ; to be replaced with jmp (hook_offset + 5)


This  means  that  INFELF  will  take some instructions from target executable
at  hook offset, of summary size >= 5, padd'em with NOPs to make 16 bytes, and
copy'em   into  snippet's  original-bytes  signature.  Second  signature  will
be  changed  to  JMP NEAR returning control to executable right after that JMP
NEAR at hook offset that passed control to 1st snippet's instruction.

                                                            (x) 2002 Z0MBiE/29A
                                                         http://z0mbie.host.sk/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲男人的天堂网| 91麻豆精品国产91久久久久久久久 | 国产999精品久久久久久| 精品国产免费一区二区三区四区| 久久成人精品无人区| 精品成人a区在线观看| 国产成人在线视频免费播放| 久久精品人人做人人综合| 国产精品18久久久久久久网站| 国产日韩欧美a| 91丨九色porny丨蝌蚪| 亚洲国产一二三| 日韩三级精品电影久久久 | 国产亚洲综合在线| 成人性生交大片免费看视频在线| 国产精品人成在线观看免费| 色哟哟一区二区| 蜜桃视频免费观看一区| 国产日韩精品一区二区浪潮av| 91蜜桃在线免费视频| 天天色天天爱天天射综合| 精品成人免费观看| 99精品偷自拍| 奇米精品一区二区三区四区 | 亚洲欧美中日韩| 欧美日韩在线不卡| 精品一二三四在线| 夜夜精品视频一区二区| 日韩免费性生活视频播放| 91丨porny丨国产入口| 日韩av电影一区| 国产精品无人区| 91麻豆精品国产| 不卡一区二区三区四区| 日本中文一区二区三区| 136国产福利精品导航| 日韩一级免费一区| 99精品国产一区二区三区不卡| 免费不卡在线视频| 一区二区在线免费观看| 久久精品一区二区三区不卡| 欧美日韩国产一区二区三区地区| 国产精品1区二区.| 日韩精彩视频在线观看| 亚洲女性喷水在线观看一区| 精品国产一区久久| 欧美久久免费观看| 色欧美片视频在线观看| 国产精品一二二区| 日韩电影在线看| 亚洲一级二级三级| 国产精品国产三级国产aⅴ原创| 日韩一区二区电影在线| 欧美日韩情趣电影| 一本色道综合亚洲| 成人av影院在线| 国产精品白丝av| 久久97超碰国产精品超碰| 午夜视频一区二区| 亚洲国产美国国产综合一区二区| 国产精品欧美经典| 欧美极品少妇xxxxⅹ高跟鞋| 精品久久久久久久人人人人传媒| 欧美理论在线播放| 欧美日韩一级片网站| 在线观看一区日韩| 日本电影欧美片| 91美女在线视频| 色综合久久综合网| 色婷婷一区二区三区四区| 99久久婷婷国产| 91免费看视频| 一本色道久久综合狠狠躁的推荐 | 欧美三级资源在线| 欧美日韩国产系列| 欧美日韩国产在线播放网站| 欧美丝袜丝交足nylons| 欧美日韩一区二区在线视频| 欧美日韩国产经典色站一区二区三区 | 日韩精品一区二区三区视频播放| 欧美日韩国产高清一区二区| 欧美午夜一区二区三区| 欧美性三三影院| 欧美日韩一区二区三区在线| 欧美日韩视频一区二区| 欧美日韩亚洲综合在线| 欧美精品久久久久久久多人混战| 欧美男女性生活在线直播观看| 7777精品伊人久久久大香线蕉完整版| 91 com成人网| 精品国产乱码久久| 中文字幕免费不卡在线| 日韩理论片中文av| 亚洲一区二区欧美激情| 舔着乳尖日韩一区| 麻豆成人久久精品二区三区小说| 狠狠色狠狠色综合| 成人免费福利片| 在线欧美一区二区| 欧美精品国产精品| 久久这里都是精品| 亚洲欧美色图小说| 日韩成人一区二区三区在线观看| 久久99国产精品成人| www.欧美.com| 欧美日韩中文字幕一区| 精品国产3级a| 亚洲精品视频自拍| 九色|91porny| 97久久久精品综合88久久| 欧美精品在线一区二区| 国产视频一区不卡| 亚洲国产毛片aaaaa无费看| 久草这里只有精品视频| 97se亚洲国产综合自在线观| 欧美日韩国产成人在线91| xnxx国产精品| 亚洲综合免费观看高清完整版 | 国产精品888| 色综合久久中文综合久久97| 91精品黄色片免费大全| 国产精品国产三级国产aⅴ原创| 午夜av区久久| 波多野结衣中文字幕一区二区三区 | 欧美一级夜夜爽| 国产精品九色蝌蚪自拍| 免费成人美女在线观看| 97精品视频在线观看自产线路二| 91精品国产综合久久香蕉麻豆| 中文在线一区二区 | 国产一区二区精品久久99| 色婷婷久久综合| 国产视频一区二区在线| 日韩极品在线观看| 日本韩国精品在线| 久久精品亚洲乱码伦伦中文| 日韩一区精品视频| 色琪琪一区二区三区亚洲区| 久久久久97国产精华液好用吗| 视频一区中文字幕| 91老师片黄在线观看| 国产日韩精品一区二区浪潮av| 蜜芽一区二区三区| 欧美在线啊v一区| 国产精品女人毛片| 国内精品嫩模私拍在线| 91精品欧美福利在线观看| 亚洲综合视频在线观看| 波多野结衣在线aⅴ中文字幕不卡| 日韩精品中午字幕| 日日噜噜夜夜狠狠视频欧美人| 91亚洲国产成人精品一区二三| 久久女同精品一区二区| 久久99久久精品| 91精品麻豆日日躁夜夜躁| 亚洲综合小说图片| 91福利资源站| 亚洲视频一区在线| 91视频观看视频| 一区二区中文视频| av爱爱亚洲一区| 椎名由奈av一区二区三区| 成人av在线播放网址| 国产精品丝袜黑色高跟| 成人午夜视频福利| 国产蜜臀97一区二区三区| 国产精品一级黄| 国产亚洲福利社区一区| 国产精品中文有码| 国产日韩欧美麻豆| 成人一区二区视频| 成人欧美一区二区三区视频网页| 国产91精品欧美| 国产亚洲欧洲997久久综合| 国产又粗又猛又爽又黄91精品| 欧美成人猛片aaaaaaa| 国产一区在线精品| 国产亚洲制服色| www.日韩av| 一区二区三区精品视频在线| 欧美性一二三区| 男人的天堂亚洲一区| 精品国产一区二区国模嫣然| 国模无码大尺度一区二区三区 | 国产精品情趣视频| 99久精品国产| 亚洲电影一级片| 日韩一区二区影院| 狠狠色丁香婷婷综合久久片| 欧美激情一二三区| 日本韩国欧美一区二区三区| 五月激情六月综合| 精品国产成人在线影院| 国产suv精品一区二区6| 综合久久一区二区三区| 欧美精品久久99| 国产精品一级二级三级| 亚洲精品乱码久久久久久| 制服.丝袜.亚洲.另类.中文| 国产一区二区在线免费观看|