このページはEtoJ逐語翻訳フィルタによって翻訳生成されました。

翻訳前ページへ


Windows - Shellcode Checksum 決まりきった仕事
;偉業/利用する 肩書を与える: Shellcode Checksum 決まりきった仕事
;Date: Sept 1 2010
;Author: dijital1
;ソフトウェア Link:  http://www.ciphermonk.逮捕する/code/偉業/利用するs/shellcode-checksum.asm
;実験(する)d on: Omelet Hunter Shellcode in MSF
 
[BITS 32]
 
;Author: Ron Henry - dijital1
;Email: rlh@ciphermonk.逮捕する
;場所/位置: http://www.ciphermonk.逮捕する
;Greetz to 偉業/利用する-db and Team Corelan
 
;Ok... couple of 仮定/引き受けることs with this code. First, we're using a 選び出す/独身
;byte as the checksum which gives us a 1 in 255 or ~0.39% chance of a
;衝突/不一致.
;We consider this a worthwhile 危険 given the 全体にわたる size of the code; 18 bytes.
 
;There are a couple ways to 器具/実施する this, but a good example is how it
;was used in Peter 先頭 Eeckhoutte's omelet egghunter mixin that was recently
;追加するd to the Metasploit 枠組み.
 
;We're using a 1 byte footer at the end of the shellcode that 含む/封じ込めるs the
;checksum 生成するd at shellcode 創造.
 
; Variables eax: accumulator
;           edx: points to 現在の byte in shellcode
;           ecx: 反対する
 
egg_size equ 0x7a       ;we're 実験(する)ing 122 bytes in this instance
 
find_egg:
 
xor ecx, ecx            ;無 the 反対する
xor eax, eax            ;無 the accumlator
 
calc_chksum_loop:
追加する al, byte [edx+ecx]  ;追加する the byte to running total
inc ecx                 ;increment the 反対する
cmp cl, egg_size        ;cmp 反対する to egg_size
jnz calc_chksum_loop    ;if it's not equal repeat
 
test_ckksum:
cmp al, byte [edx+ecx]  ;cmp eax with 1 byte checksum
jnz find_egg            ;search for another egg if checksum is 偽の