Cracker Handbook 1.0 part 178 doc

6 109 1
Cracker Handbook 1.0 part 178 doc

Đang tải... (xem toàn văn)

Thông tin tài liệu

00642000 00110000 uedit32 .pdata Imag R RWE 00752000 0006F000 uedit32 .rsrc resources Imag R RWE 007D0000 00002000 Map R E R E 00890000 00002000 Map R E R E 008A0000 00103000 Map R R 009B0000 0004C000 Map R E R E 00CB0000 00001000 Priv RW RW 00DB0000 0000D000 Priv RW RW 00DC0000 0000C000 Priv RW RW 00DD0000 00002000 Map R R 00DE0000 00018000 Priv RW RW 00E00000 000AF000 Priv RW RW 00EC1000 00001000 Priv RW RW 00EC5000 0000A000 Priv RW RW 00EE0000 00006000 Priv RW RW 00EF0000 00003000 Priv RW RW 00F30000 00001000 Map RW RW 00F40000 00001000 Priv RW RW 00F58000 00001000 Priv RW RW 00F81000 00002000 Priv RW RW 01140000 00003000 Priv RW RW 01150000 00010000 Priv RW RW 01550000 00003000 Priv RW RW 01590000 00001000 Priv RW RW 015A0000 00003000 Priv RW RW 015C0000 00002000 Map R R 015D0000 00010000 Priv RW RW 016D0000 00001000 SftpDLL PE header Imag R RWE 016D1000 00065000 SftpDLL .text code Imag R RWE 01736000 0000F000 SftpDLL .rdata imports,expo Imag R RWE 01745000 0000C000 SftpDLL .data data Imag R RWE 01751000 0000E000 SftpDLL .rsrc resources Imag R RWE 0175F000 00006000 SftpDLL .reloc relocations Imag R RWE 01770000 00001000 Priv RW RW 018EE000 00002000 Priv RW Guar RW 031C0000 00020000 Priv RWE RWE 10000000 00001000 SSCE4332 PE header Imag R RWE 10001000 00013000 SSCE4332 .text code Imag R RWE The noticeable zone is the one that we looked for, has 2 essential characteristics of a zone of CodeSplicing, which are Vùng ghi chú như trên là vùng chúng ta đã tìm thấy, có các thông số cần thiết của CodeSplicing, chúng là: Completion in 0000 of the direction [031C0000], this is the first indicator Size of 20000 bytes of the section [00020000], this is the second indicator Hòan tòan có 4 số zeros 0000 trong direction [031C0000], đây là dấu hiệu nhận biết thứ 1 Size là 20000 bytes của section [00020000], đây là dấu hiệu nhận biết thứ 2 As no other zone can be observed fulfills these 2 parameters reason why the zone where this the code of the CodeSplicing is 031C0000, we go to this direction in the desensamblado one and will see Ko có vùng nào khác có đầy đủ 2 thông số trên là lý do tại sao ở đây vùng code của CodeSplicing là 031C0000, chúng ta goto đến direction này trong vùng deassembler và sẽ thấy 031C0000 53 PUSH EBX 031C0001 55 PUSH EBP 031C0002 56 PUSH ESI 031C0003 57 PUSH EDI 031C0004 8BF1 MOV ESI,ECX 031C0006 0FCF BSWAP EDI 031C0008 66:97 XCHG AX,DI 031C000A 50 PUSH EAX 031C000B 66:87FB XCHG BX,DI 031C000E 87D3 XCHG EBX,EDX 031C0010 87D3 XCHG EBX,EDX 031C0012 66:87FB XCHG BX,DI 031C0015 58 POP EAX 031C0016 66:87F6 XCHG SI,SI 031C0019 66:97 XCHG AX,DI 031C001B 0FCF BSWAP EDI 031C001D 6A 01 PUSH 1 031C001F -E9 A41424FD JMP uedit32.004014C8 031C0024 6A 00 PUSH 0 The noticeable line is a jump to the zone of the code of our feasible one, we follow that jump and Dòng ghi chú là một lệnh nhảy đến vùng code có khả năng thực thi của chúng ta, chúng ta theo lênh nhảy này và thấy: 004014C0 5B POP EBX 004014C1 5E POP ESI 004014C2 C3 RETN 004014C3 E9 38EBDB02 JMP 031C0000 004014C8 52 PUSH EDX 004014C9 5A POP EDX 004014CA 90 NOP The noticeable line is where it takes the jump to us of the zone 031C0000, if they observe the previous instruction it is a jump that takes to the direction 031C0000, this jump is the one that interests to us, so that when moving aleatoreamente the zone of the memory where this the code of the CodeSplicing, this jump must be modified so that it aims at the correct zone, if the line is analyzed we will see that Dòng ghi chú này là nơi nó nhảy đến từ vùng chúng ta tìm thấy 031C0000,nếu quan sát chỉ thị trên nó , chỉ thị đó chính là lệnh nhảy đến direction 031C0000, lệnh jump này là một trong những lệnh chúng ta cần quan tâm, vì vậy khi di chuyển lên phía trên vùng này , đó là code của CodeSplicing, jump này phải đươc thay đổi sao cho nó trỏ đến vùng correct , nếu phân tích dòng này chúng ta sẽ thấy: 004014C3 E9 38EBDB02 JMP 031C0000 The first E9 byte is the OpCode [ operation code ] this byte indicates to him to the maquina that the following instruction will be a jump [ JMP ], following the 4 bytes are the relative address to which the jump will go, therefore Byte E9 đầu tiên là OpCode [ operation code ] , byte này chỉ định lệnh nhảy jump [ JMP ], theo sau là 4 bytes liên quan đến addrs mà nó sẽ nhảy đến, vì vậy: VA Base + Tamaño + Desplazamiento = VA resultante 004014C3 + 5 + 02DBEB38 = 031C0000 Base GOES and the size of the instruction is constant, thus, so that the jump aims at another direction which is due to modify are the 4 bytes of displacement, these bytes begin in the direction 004014C4, points this data, goes to the Memory Map and gives double click in the first section superior to the memory of our feasible one, first is Base và size của chỉ thị là một hằng số, do đó , để jump sẽ trỏ đến một direction khác thì đây chính là nơi thật sự cần thay thế 4 bytes, các bytes này bắt đầu tại direction 004014C4 (004014C3 trừ ra 1 bytes là E9).Để trỏ đến và tìm data (004014C4) này trong memory, ta goto đến Memory Map và nhấn double click trong vùng zone đầu tiên cao hơn vùng memory có thể thực thi, trước tiên là vùng sau: Memory map Address Size Owner Section Contains Type Access Initial 00642000 00110000 uedit32 .pdata Imag R RWE 00752000 0006F000 uedit32 .rsrc resources Imag R RWE 007D0000 00002000 Map R E R E 00890000 00002000 Map R E R E 008A0000 00103000 Map R R 009B0000 0004C000 Map R E R E When giving double click will leave a window Dump, presses Ctrl+B and puts our value 004014C4 of inverted form Khi nhấn double click sẽ xh window dump, nhấn Ctrl+B và nhập giá trị 004014C4 đảo ngược Let us give OK and it did not find anything, we press Esc to close the Dump window and give double click on the following zone of memory, will leave another window Dump, now single we press Ctrl+L and the search will be repeated that we did previously, once again did not find anything, we repeat this procedure with each zone of memory without owner [ Owner ] until arriving a Chúng ta nhấn ok và nó ko tìm thấy bất cứ gì, chúng ta nhấn Esc để close Dump window lại và nhấn double click vào vùng phía ngay dưới vùng ta vừa search, sẽ xh 1 win Dump khác, bây giờ đơn giản là nhấn Ctrl+L và search , nó sẽ lặp lại những gì ta đã làm ở trên, một lần nữa cũng ko tìm thấy gì, chúng ta lặp lại thủ tục này với mọi vùng memory khác vùng owner [ Owner ] cho đến khi nhận được: 00EC5908 C4 14 40 00 38 EB DB 02 20 00 1C 03 A4 14 24 FD Ä@.8ëÛ1[1] . ¤$ý 00EC5918 D7 14 40 00 49 EB DB 02 31 00 1C 03 A6 14 24 FD ×@.IëÛ1[1]1. ¦$ý 00EC5928 F3 14 40 00 3E EB DB 02 51 00 1C 03 A2 14 24 FD ó@.>ëÛ1[1]Q. ¢$ý 00EC5938 06 15 40 00 4B EB DB 02 6A 00 1C 03 9C 14 24 FD @.KëÛ1[1]j. œ$ý 00EC5948 1F 15 40 00 4B EB DB 02 8C 00 1C 03 93 14 24 FD - @.KëÛ1[1]Œ. “$ý 00EC5958 2C 15 40 00 60 EB DB 02 B5 00 1C 03 77 14 24 FD ,@.`ëÛ1[1]µ. w$ý The zone of the memory can vary, if they notice the first noticeable value is the direction where the 4 bytes of displacement of the jump begin that goes to 031C0000, following the 4 bytes in this zone of memory are the value that was written in the zone indicated by the 4 previous bytes, of this concludes that . 00 9B 000 0 00 04C 000 Map R E R E 00 CB 000 0 00 0 01 0 00 Priv RW RW 00 DB 000 0 00 00D 000 Priv RW RW 00 DC 000 0 00 00C 000 Priv RW RW 00 DD 000 0 00 002 000 Map R R 00 DE 000 0 00 01 8 00 0 Priv RW RW 00 E 000 00 000 AF 000 . 00 EC 100 0 00 0 01 0 00 Priv RW RW 00 EC 500 0 00 00A 000 Priv RW RW 00 EE 000 0 00 006 000 Priv RW RW 00 EF 000 0 00 003 000 Priv RW RW 00 F 300 00 000 01 0 00 Map RW RW 00 F 400 00 000 01 0 00 Priv RW RW 00 F5 800 0 00 0 01 0 00 . 00 0 01 0 00 Priv RW RW 00 F 8 10 00 000 0 200 0 Priv RW RW 01 1 400 00 000 0 300 0 Priv RW RW 01 1 500 00 00 0 10 000 Priv RW RW 01 5 500 00 000 0 300 0 Priv RW RW 01 5 900 00 000 01 0 00 Priv RW RW 01 5 A 000 0 00 003 000 Priv

Ngày đăng: 03/07/2014, 17:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan