Let us press the Parchar button, will say to us that the process has finished, was created a backup with the name of uedit32_dmp.exe.bak and it will give a little us extra information Ch
Trang 1E5B332, in the Dump we positioned in the beginning of the section data1, give a Ctrl+B, we put value HEX: invested, we give OK and stops in
Vì vậy giá trị dữ liệu 7 là 0062205C, chúng ta làm tương tự, Chúng ta put trong thanh bar của command như sau: ` GetProcAddress', nĩ sẽ cho ra giá trị HEX: 77E5B332, trong Dump chúng ta goto đến đầu addr của section data1, nhấn Ctrl+B, chúng ta put giá trị HEX đã thu được, nhấn OK và stop tại đây:
00622054 32 B3 E5 77 02 15 F4 77 2³åw1[1]ơw
0062205C 61 D9 E5 77 0C 15 F4 77 aÙåw.ơw
00622064 AF DD E5 77 5D 26 E5 77 ¯Ýåw]&åw
0062206C 9B 58 E5 77 BC 1B E4 77 ›Xåw¼äw
00622074 58 E3 E5 77 7E 17 E4 77 Xãåw~äw
0062207C 6B 90 E4 77 4C A4 E5 77 k äwL¤åw
The value of data 8 is 00622054, we put these data in the Tools Armadillo and was tus
Gía trị của dữ liệu 8 là 00622054, chúng ta lắp các dữ liệu này vào tools Armadillo và sẽ được như sau:
Trang 2Let us press the Parchar button, will say to us that the process has finished, was created a backup with the name of uedit32_dmp.exe.bak and it will give a little us extra information
Chúng ta nhấn button Parchar, sẽ báo cho chúng ta biết tiến trình thực hiện đã hòan thành, được cài đặt bảng sao lưu với tên file là uedit32_dmp.exe.bak và nó
sẽ cho ta biết thêm một ít thông tin nữa
Trang 3lists that the code uses that was copied to the direction 005E2000 [ in case to somebody it interests ] to him, now we must publish the file uedit32_dmp.exe with the LordPE and change the EntryPoint so that it aims thus at 005E2000
Thông tin này sẽ nói cho chúng ta biết IAT có 830 thành phần , trong đó 687 thành phần đúng, 687 thành phần APIs này thuộc 18 modules khác nhau là các chỉ thị directions của danh sách list mà code sử dụng chúng , đã được copy đến 005E2000 [ trong case vài người là có khả năng liên quan đến addr giống như vầy], bây giờ chúng ta phải thay đổi file uedit32_dmp.exe một chút bằng cách dùng LordPE và thay đổi EntryPoint thành 005E2000
We pressed Save, OK and ready our feasible one already has the repaired IAT, loads, in the Olly, the file uedit32_dmp.exe and sees
Chúng ta nhấn Save, OK và vùng có khả năng thực thi đã đươc sữa chửa IAT xong, loads vào trong Olly file uedit32_dmp.exe và sẽ thấy như sau:
Trang 4This it is the code that loaded each I modulate, will solve each API and it copied it
to its corresponding place, in the line that this selected is where EAX will have the
direction of the present API, if EAX is equal to zero means that the API was not
found, we put a Breakpoint conditional
Đây là code đươc loaded vào của module trên máy tôi, nó sẽ xử lý tính tóan trên
mỗi hàm API và nó copy hàm API đó đến vùng tương ứng, trong dòng lệnh
đươc chọn như hình trên là nơi EAX sẽ có direction của hàm API hiện tính, nếu
EAX = 0 thì hàm API sẽ ko tìm thấy, chúng ta put 1 Breakpoint conditional tại
đây
And a F2 in 005E20DC that is where returned the control to him to the OEP, we
give a F9 and the conditional Breakpoint does not stop what means that each API
was found and copied to its corresponding place, once in 005E20DC we give a F2
Trang 5Và set F2 tại 005E20DC là nơi trả lại điều khiển đến OEP, chúng ta nhấn F9 và conditional Breakpoint sẽ ko dừng lại có nghĩa là mỗi hàm API đều đươc tìm thấy và đươc copy đến vùng tương ứng của nó, nó dừng lại tại 005E20DC mà chúng ta đã set F2 tại đó, xóa bp đó đi, và cũng xóa luôn bp conditional Breakpoint và chúng ta nhấn F8, chúng ta sẽ thấy OEP như sau:
00514CB5 55 PUSH EBP
00514CB6 8BEC MOV EBP,ESP
00514CB8 6A FF PUSH -1
00514CBA 68 80885700 PUSH uedit32_.00578880
00514CBF 68 A0855100 PUSH uedit32_.005185A0
00514CC4 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
00514CCA 50 PUSH EAX
00514CCB 64:8925 00000000 MOV DWORD PTR FS:[0],ESP
00514CD2 83EC 58 SUB ESP,58
00514CD5 53 PUSH EBX
00514CD6 56 PUSH ESI
00514CD7 57 PUSH EDI
00514CD8 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
00514CDB FF15 18256100 CALL DWORD PTR DS:[612518] ; kernel32.GetVersion
00514CE1 33D2 XOR EDX,EDX
As the API can be observed kernel32.GetVersion were solved and copied to their corresponding place, the IAT was repaired automatically whenever the file is executed
Như vậy hàm API mà ta quan sát đươc là kernel32.GetVersion nó đã đươc xử lý xong và đã đươc copy đến vùng tương ứng của nó, IAT đã đươc sữa chửa xong một cách tự động , file có thể thực thi bất cứ khi nào
With the repaired IAT we see the CodeSplicing
IAT đã đươc sữa chửa, chúng ta sẽ đến phần CodeSplicing
Let us load uedit32 exe in the Olly, hide dbg, we put a Breakpoint Hardware on execution in direction 00514CB5 [ OEP ], give a F9 and for here
Trang 6Chúng ta load uedit32.exe trong Olly, hide dbg, chúng ta put một bp Breakpoint Hardware on execution tại direction 00514CB5 [ OEP ], nhấn F9 và chúng ta đến đây
00514CB5 55 PUSH EBP
00514CB6 8BEC MOV EBP,ESP
00514CB8 6A FF PUSH -1
00514CBA 68 80885700 PUSH uedit32.00578880
00514CBF 68 A0855100 PUSH uedit32.005185A0
00514CC4 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
00514CCA 50 PUSH EAX
00514CCB 64:8925 00000000 MOV DWORD PTR FS:[0],ESP
00514CD2 83EC 58 SUB ESP,58
00514CD5 53 PUSH EBX
Already in the OEP, we go to the Memory Map and we look for a zone with the following characteristics
Chúng ta đang đứng tại OEP, chúng ta goto đến Memory Map và chúng ta tìm thấy một vùng với các thông số như sau:
Memory map Address Size Owner Section Contains Type Access Initial