1. Trang chủ
  2. » Công Nghệ Thông Tin

Cracker Handbook 1.0 part 180 doc

6 120 1
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 84,94 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Let us select the zone of memory that goes from 00EC58E8 to 00ECE4C8, we give click him with the secondary button of the mouse, we chose Binary, Binary Copy, later we opened the HexWorks

Trang 1

003EF1D0 00 00 00 00 00 00 00 00

Let us quiet the Breakpoint of 003D4D70, we give a F9 and stops in

Chúng ta xóa bp tại 003D4D70, nhấn F9 và dừng lại

003D4E34 8985 4CC6FFFF MOV DWORD PTR SS:[EBP-39B4],EAX

003D4E3A ^E9 C8FEFFFF JMP 003D4D07

003D4E3F 8B85 4CC6FFFF MOV EAX,DWORD PTR SS:[EBP-39B4]

003D4E45 8320 00 AND DWORD PTR DS:[EAX],0

003D4E48 8B85 4CC6FFFF MOV EAX,DWORD PTR SS:[EBP-39B4]

This it is the end of the curl, since unemployment we erase this Breakpoint here, now we go to the zone of memory where the table is armed that is but or less in direction 00EC595C, once we looked for there upwards until arriving a

Đây là cuối vòng lặp , ko cần dùng nữa chúng ta sẽ xóa bp này tại đây, bây giờ chúng ta goto đến vùng nhớ ở đó table đang được nạp vào nhưng ko dưới direction 00EC595C, nơi chúng ta tìm thấy nằm phía trên một chút là

00EC58D8 00 00 00 00 00 00 00 00

00EC58E0 81 11 20 2D 01 07 18 00 -

00EC58E8 C4 14 40 00 38 EB 1E 00 Ä@.8ë-

00EC58F0 20 00 5F 00 A4 14 E1 FF ._.¤áÿ

00EC58F8 D7 14 40 00 49 EB 1E 00 ×@.Ië-

00EC5900 31 00 5F 00 A6 14 E1 FF 1._.¦áÿ

00EC5908 F3 14 40 00 3E EB 1E 00 ó@.>ë-

This it is the beginning of the table of the CodeSplicing, now we look for the end that this in

Đây là nơi bắt đầu table của the CodeSplicing, bây giờ chúng ta tìm đọan end của table

00ECE4B0 AA FF 5F 00 1A EF E1 FF ªÿ_.ïáÿ

00ECE4B8 DA EE 41 00 D0 10 1E 00 ÚîA.Ð-

00ECE4C0 C9 FF 5F 00 11 EF E1 FF Éÿ_.ïáÿ

00ECE4C8 0D F0 AD BA 0D F0 AD BA ðº.ðº

00ECE4D0 0D F0 AD BA 0D F0 AD BA ðº.ðº

Trang 2

Let us select the zone of memory that goes from 00EC58E8 to 00ECE4C8, we give click him with the secondary button of the mouse, we chose Binary, Binary Copy, later we opened the HexWorkshop, we pressed Ctrl+N, we go to the menu Edit, Paste Special…

Chúng ta chọn vùng nhớ từ 00EC58E8 to 00ECE4C8, click phải vào nó , chọn Binary, Binary Copy, sau đó chúng ta open HexWorkshop, nhấn Ctrl+N, chúng

ta goto đến menu Edit, Paste Special…

We pressed Paste and we kept the file like CodeSPTab.bin, we closed the file more not the HexWorkshop, in the Olly we go to the zone of the code of the CodeSplicing that is 01960000 and we select from 01960000 to 01980000, we give

a Binary Copy, we go to the HexWorkshop, we stuck it just as the previous one and we kept it like CodeSPCode.bin, we closed the HexWorkshop and the Olly

Chúng ta nhấn Paste và save lại thành file CodeSPTab.bin, chúng ta close file lại, nhưng ko phải close HexWorkshop,trong olly chúng ta goto đến vùng nhớ code của CodeSplicing là 01960000 và chúng ta chọn từ 01960000 to 01980000 (01960000+20000), chúng ta chọn Binary Copy, chúng ta goto đến HexWorkshop, chúng ta dán nó vào như phần trên đã làm và save lại thành file CodeSPCode.bin, chúng ta close HexWorkshop và Olly lại

Already having the 2 binary file and the table redirigida to the zone of our election,

we execute Tools Armadillo, in the section of the CodeSplicing we put the data that requests to us

Chúng ta đã có 2 file binary và table redirect đến vùng chúng ta chỉ định, chúng

ta bật tool Armadillo , trong tab CodeSplicing chúng ta nhập dữ liệu vào như sau

Trang 3

We pressed Parchar, will say that the file uedit32_dmp.exe.bak or exists and if we wished to replace it, in the personnel I to us never I replace baks, but as you wish press If or No, later she says to us that the process has finished and it gives a little

us information

Chúng ta nhấn Parchar, nó sẽ báo file uedit32_dmp.exe.bak đã tồn tại và nếu chúng ta muốn replace nó thì nhấn If , còn ko thì nhấn No, đối với tôi thì chưa bao giờ tôi replace các file baks, sau đó nó sẽ báo cho chúng ta tiến trình thực hiện đã hòan thành và nó sẽ xuất ra 1 bảng thông báo nhỏ như sau:

This says us that according to the table, the code must be copied to the zone 005F0000 that is the one that we chose, so everything salio well

Điều này nói cho chúng ta rằng đã chấp thuận table, code đã copy đến vùng 005F0000 mà ở đó là nơi chúng ta đã chọn, mọi thứ diễn ra suông sẽ

Now renombremos the file uedit32.exe to uedit32_or.exe and the file uedit32_dmp.exe to uedit32.exe, we execute it and runs well single that says to us that the time of evaluation of 45 days has finished, to avoid this must modify 2 bytes of the code of uedit32.exe

Bây giờ chúng ta đổi tên file uedit32.exe thành uedit32_or.exe và file uedit32_dmp.exe thành uedit32.exe, chúng ta thực thi nó và runs rất tốt và đơn

Trang 4

giản thông báo cho chúng ta biết đã quá 45 ngày sử dụng thử, để tránh điều này chúng ta cần thay đổi 2 bytes của code trong file uedit32.exe

We loaded uedit32.exe in the Olly and put a conditional Breakpoint in the API LoadLibraryA, thus [ESP+4]=="armaccess.dll", when stopping we give to a Ctrl+F9 a F8 and we will see that uedit verifies if position the DLL if it does not go soon to a RETN and becomes this verification

Chúng ta load uedit32.exe vào Olly và put một conditional Breakpoint tại hàm API LoadLibraryA, với đkiện [ESP+4]=="armaccess.dll",khi stop chúng ta nhấn Ctrl+F9 , F8 và chúng ta thấy uedit thẩm tra vị trí file DLL mà ko đến ngay lệnh RETN và sau đó là đến code kiểm tra như sau (do đó thực hiện Ctrl+F9 , F8 một lần nữa sẽ đến code này)

00401EC4 84C0 TEST AL,AL

00401EC6 75 03 JNZ SHORT uedit32.00401ECB

00401EC8 895D F0 MOV DWORD PTR SS:[EBP-10],EBX

The only thing that we must do is to change the 7503 by a EB03, we give F9 and returns to stop in LoadLibraryA, once again verifies if position the DLL if it does not go soon to a RETN and becomes this verification

Chúng ta chỉ thay đổi bytes 7503 thành EB03, Chúng ta nhấn tiếp F9 và lại stop tại LoadLibraryA, một lần nữa thẩm tra vị trí file DLL mà ko đến ngay lệnh RETN và sau đó là đến code kiểm tra sau (do đó thực hiện Ctrl+F9 , F8 hai lần

sẽ đến code này)

00401EFB 59 POP ECX

00401EFC 84C0 TEST AL,AL

00401EFE 59 POP ECX

00401EFF 75 03 JNZ SHORT uedit32.00401F04

00401F01 895D F0 MOV DWORD PTR SS:[EBP-10],EBX

The same we changed 7503 by EB03, we cleared the Breakpoint, we give F9 and it continues saying that the time of evaluation I finish, this to us is so that it verifies that variable ALTUSERNAME exists, reason why we must create a small code that does

Giống như trên, chúng ta thay đổi 7503 bằng EB03,chúng ta clear bp, chúng ta nhấn F9 và nó tiếp tục báo lựơng thời gian sử dụng thử chương trình đã hết,

Trang 5

điều này xảy ra cho chúng ta do nó thẩm tra biến ALTUSERNAME đang tồn tại, vì lý do đó chúng ta cài đặt một đọan code nhỏ như sau:

push VA

push VA

Call SetEnvironmentVariableA

First push pushed the battery the direction where this the text chain finished in 00h that will be the value of the variable, the second push pushes the battery the direction of the chain finished in 00h that will be the name of the variable [ ALTUSERNAME ] and call will put it in memory, this function can be looked for just as as we looked for the APIs LoadLibrary and GetProcAddress, when making these changes uedit initiated correctly and will be registered to name of the value

of variable ALTUSERNAME

Lệnh push đầu tiên là push vào stack một direction mà ở đó chứa một text kết thúc bằng 00h,text này chính là giá trị của biến, lệnh push thứ hai cũng push vào stack một direction của một chuổi kết thức = 00h, chuổi này là name của biến [ ALTUSERNAME ] (ta sẽ tạo các chuổi text này bằng cách edit các bytes tại các direction nói trên), và sẽ Call một hàm đã nằm sẳn trong memory (SetEnvironmentVariableA), hàm này có thể được tìm thấy trong memory chỉ khi chúng ta tìm thấy các hàm APIs LoadLibrary và GetProcAddress (tức là các hàm này thực thi xong thì hàm SetEnvironmentVariableA mới có giá trị thực thi),khi ta làm những thay đổi này một cách chính xác lúc khởi đầu chương trình (như mô tả) thì chúng ta sẽ đươc registered với cái name là giá trị của biến ALTUSERNAME

I did it at the end of the code that repairs the IAT and thus is

Tôi thực hiên những gì nói ở trên tại cuối của đọan code sửa chửa IAT và nó sẽ như thế này

005E20CD | 3C 00 |CMP AL,0

005E20CF |.^0F85 7BFFFFFF \JNZ uedit32.005E2050

005E20D5 | 68 00CB5E00 PUSH uedit32.005ECB00 ; /Value =

"Tk0017/TMT"

005E20DA | 68 18CB5E00 PUSH uedit32.005ECB18 ; |VarName =

"ALTUSERNAME"

DS:[<&KERNEL32.SetEnvironmentVariableA>]

Trang 6

005E20E5 | 9D POPFD

005E20E6 | 61 POPAD

005E20E7 | 68 B54C5100 PUSH uedit32.00514CB5

005E20EC \ C3 RETN

005E20ED 90 NOP

If they use the memory of 005E2000 a 005F0000 they must have well-taken care

of since it is the memory that uses the code that repairs the IAT, if they notice I I use the zones 005ECB00 and 005ECB18, this is the memory but ` altá that can be used since from 005ECB40 [ but or less ] the

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

TỪ KHÓA LIÊN QUAN