banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thủ thuật reverse engineering Nhờ mọi người giải thích hộ đoạn mã ASM  XML
  [Question]   Nhờ mọi người giải thích hộ đoạn mã ASM 20/09/2012 05:11:26 (+0700) | #1 | 269520
minhvc
Member

[Minus]    0    [Plus]
Joined: 11/09/2012 05:37:44
Messages: 10
Offline
[Profile] [PM]
Mình có một hàm mã ASM đang cần chuyển về C/C++ nhưng đọc không hiểu. Bạn nào rành về ASM thì hỗ trợ mình với nhé. Cảm ơn nhiều

:0040237C 55 push ebp
:0040237D 8BEC mov ebp, esp
:0040237F 56 push esi
:00402380 57 push edi
:00402381 8B7D08 mov edi, dword ptr [ebp+08]
:00402384 8BC7 mov eax, edi
:00402386 8B750C mov esi, dword ptr [ebp+0C]
:00402389 8B4D10 mov ecx, dword ptr [ebp+10]
:0040238C 8BD1 mov edx, ecx
:0040238E D1E9 shr ecx, 1
:00402390 D1E9 shr ecx, 1
:00402392 FC cld
:00402393 F3 repz
:00402394 A5 movsd
:00402395 8BCA mov ecx, edx
:00402397 83E103 and ecx, 00000003
:0040239A F3 repz
:0040239B A4 movsb
:0040239C 5F pop edi
:0040239D 5E pop esi
:0040239E 5D pop ebp
:0040239F C3 ret
[Up] [Print Copy]
  [Question]   Nhờ mọi người giải thích hộ đoạn mã ASM 20/09/2012 05:18:50 (+0700) | #2 | 269525
[Avatar]
xuanphongdocco
Member

[Minus]    0    [Plus]
Joined: 19/08/2009 08:25:03
Messages: 247
Offline
[Profile] [PM]

minhvc wrote:
Mình có một hàm mã ASM đang cần chuyển về C/C++ nhưng đọc không hiểu. Bạn nào rành về ASM thì hỗ trợ mình với nhé. Cảm ơn nhiều

:0040237C 55 push ebp
:0040237D 8BEC mov ebp, esp
:0040237F 56 push esi
:00402380 57 push edi
:00402381 8B7D08 mov edi, dword ptr [ebp+08]
:00402384 8BC7 mov eax, edi
:00402386 8B750C mov esi, dword ptr [ebp+0C]
:00402389 8B4D10 mov ecx, dword ptr [ebp+10]
:0040238C 8BD1 mov edx, ecx
:0040238E D1E9 shr ecx, 1
:00402390 D1E9 shr ecx, 1
:00402392 FC cld
:00402393 F3 repz
:00402394 A5 movsd
:00402395 8BCA mov ecx, edx
:00402397 83E103 and ecx, 00000003
:0040239A F3 repz
:0040239B A4 movsb
:0040239C 5F pop edi
:0040239D 5E pop esi
:0040239E 5D pop ebp
:0040239F C3 ret 


Đoạn này chắc bạn cắt ra từ 1 debugger nào đấy phải không?
Xuân Phong Nguyễn
[Up] [Print Copy]
  [Question]   Nhờ mọi người giải thích hộ đoạn mã ASM 20/09/2012 08:10:44 (+0700) | #3 | 269528
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Hàm memcpy thôi, memcpy(dst, scr, size);
[Up] [Print Copy]
  [Question]   Nhờ mọi người giải thích hộ đoạn mã ASM 21/09/2012 19:31:34 (+0700) | #4 | 269613
minhvc
Member

[Minus]    0    [Plus]
Joined: 11/09/2012 05:37:44
Messages: 10
Offline
[Profile] [PM]
@xuanphongdocco: chính xác rồi bạn ạ.
@TQN: Cảm ơn bạn Bạn có thể giải thích chút về cách đọc hiểu được không, vì còn tầm 10 mấy cái hàm như thế này nữa.
Exported fn(): MyFunc- Ord:0001h
:00401244 55 push ebp
:00401245 8BEC mov ebp, esp
:00401247 83C4D0 add esp, FFFFFFD0
:0040124A 6A08 push 00000008
:0040124C FF7510 push [ebp+10]
:0040124F 8D45E8 lea eax, dword ptr [ebp-18]
:00401252 50 push eax
:00401253 E824110000 call 0040237C
:00401258 83C40C add esp, 0000000C
:0040125B C645F000 mov [ebp-10], 00
:0040125F 66C745E60000 mov [ebp-1A], 0000

-> call 0040237C : chính là gọi cái hàm mà mình đã post.
giải thích giúp mình cách chuyền tham số như thế nào với nhé.

Mong sớm có hồi âm của bạn. Thanks
[Up] [Print Copy]
  [Question]   Nhờ mọi người giải thích hộ đoạn mã ASM 21/09/2012 19:47:31 (+0700) | #5 | 269614
minhvc
Member

[Minus]    0    [Plus]
Joined: 11/09/2012 05:37:44
Messages: 10
Offline
[Profile] [PM]
0040237C : memcpy(dst, scr, size);
thì size có giá trị là 8. 3 tham số lần lượt là:
6A08 push 00000008 //->size
8D45E8 FF7510 push [ebp+10] //scr
l8D45E8 ea eax, dword ptr [ebp-18] //dst

hai lệnh này thì mình hiểu chút là phần khởi tạo stack đầu mỗi hàm
:00401244 55 push ebp
:00401245 8BEC mov ebp, esp
nhưng câu lệnh thứ 3
:00401247 83C4D0 add esp, FFFFFFD0
thì mình khổng hiểu vì sao lại cộng vào esp một số lớn như thế ->Chắc là do hiểu chưa đúng câu lệnh. Ai biết giải thích giùm nhé.
[Up] [Print Copy]
  [Question]   Nhờ mọi người giải thích hộ đoạn mã ASM 21/09/2012 20:08:17 (+0700) | #6 | 269616
n2tforever
Member

[Minus]    0    [Plus]
Joined: 01/07/2011 15:39:51
Messages: 92
Offline
[Profile] [PM]

minhvc wrote:
0040237C : memcpy(dst, scr, size);
thì size có giá trị là 8. 3 tham số lần lượt là:
6A08 push 00000008 //->size
8D45E8 FF7510 push [ebp+10] //scr
l8D45E8 ea eax, dword ptr [ebp-18] //dst

hai lệnh này thì mình hiểu chút là phần khởi tạo stack đầu mỗi hàm
:00401244 55 push ebp
:00401245 8BEC mov ebp, esp
nhưng câu lệnh thứ 3
:00401247 83C4D0 add esp, FFFFFFD0
thì mình khổng hiểu vì sao lại cộng vào esp một số lớn như thế ->Chắc là do hiểu chưa đúng câu lệnh. Ai biết giải thích giùm nhé. 


Theo bác thì 0xFFFFFFFF có giá trị bằng bao nhiêu (32 bit có dấu)
[Up] [Print Copy]
  [Question]   Nhờ mọi người giải thích hộ đoạn mã ASM 21/09/2012 20:22:53 (+0700) | #7 | 269618
n2tforever
Member

[Minus]    0    [Plus]
Joined: 01/07/2011 15:39:51
Messages: 92
Offline
[Profile] [PM]

minhvc wrote:
@xuanphongdocco: chính xác rồi bạn ạ.
@TQN: Cảm ơn bạn Bạn có thể giải thích chút về cách đọc hiểu được không, vì còn tầm 10 mấy cái hàm như thế này nữa.
Exported fn(): MyFunc- Ord:0001h
:00401244 55 push ebp
:00401245 8BEC mov ebp, esp
:00401247 83C4D0 add esp, FFFFFFD0
:0040124A 6A08 push 00000008
:0040124C FF7510 push [ebp+10]
:0040124F 8D45E8 lea eax, dword ptr [ebp-18]
:00401252 50 push eax
:00401253 E824110000 call 0040237C
:00401258 83C40C add esp, 0000000C
:0040125B C645F000 mov [ebp-10], 00
:0040125F 66C745E60000 mov [ebp-1A], 0000

-> call 0040237C : chính là gọi cái hàm mà mình đã post.
giải thích giúp mình cách chuyền tham số như thế nào với nhé.

Mong sớm có hồi âm của bạn. Thanks 


Code:
:0040237C 55 push ebp  //cat ebp vao stack
:0040237D 8BEC mov ebp, esp //cho ebp=esp
:0040237F 56 push esi  //cat esi vao stack
:00402380 57 push edi //cat edi vao stack
:00402381 8B7D08 mov edi, dword ptr [ebp+08] // cho edi tro den tham so thu 2 la dia chi dich 
:00402384 8BC7 mov eax, edi  //cho eax = edi la dia chi cua dich
:00402386 8B750C mov esi, dword ptr [ebp+0C] //cho esi tro den tham so thu nhat la dia chi nguon 
:00402389 8B4D10 mov ecx, dword ptr [ebp+10]  //cho ecx= tham so thu 3 la kich thuoc
:0040238C 8BD1 mov edx, ecx  //cho edx=ecx
:0040238E D1E9 shr ecx, 1 //
:00402390 D1E9 shr ecx, 1 // ecx bang kich thuoc can copy tinh theo dword (khong tinh phan du)
:00402392 FC cld // clear co direct => che do lam viec voi string tu trai sang phai
:00402393 F3 repz 	 //
:00402394 A5 movsd   //copy theo don vi dword du lieu dc tro boi esi sang dia chi tro boi edi, moi lan nhu vay giam ecx di 1, thuc hien toi khi ecx =0
:00402395 8BCA mov ecx, edx 		//
:00402397 83E103 and ecx, 00000003 	//ecx chua so byle le con lai (vi du kich thuoc can copy la 9 byte thi luc nay ecx=1)
:0040239A F3 repz	// 
:0040239B A4 movsb //copy not ecx byte le
:0040239C 5F pop edi //khoi phuc edi
:0040239D 5E pop esi // khoi phuc esi
:0040239E 5D pop ebp //khoi phuc ebp
:0040239F C3 ret	//tro ve
[Up] [Print Copy]
  [Question]   Nhờ mọi người giải thích hộ đoạn mã ASM 21/09/2012 21:24:53 (+0700) | #8 | 269624
minhvc
Member

[Minus]    0    [Plus]
Joined: 11/09/2012 05:37:44
Messages: 10
Offline
[Profile] [PM]
@n2tforever: Theo bác thì 0xFFFFFFFF có giá trị bằng bao nhiêu (32 bit có dấu)-> Lại nói kháy anh em rồi, đầu óc mu muội mà smilie
:00401247 83C4D0 add esp, FFFFFFD0
tương đương với một lệnh trừ esp -48?
[Up] [Print Copy]
  [Question]   Nhờ mọi người giải thích hộ đoạn mã ASM 21/09/2012 21:36:45 (+0700) | #9 | 269626
minhvc
Member

[Minus]    0    [Plus]
Joined: 11/09/2012 05:37:44
Messages: 10
Offline
[Profile] [PM]
@n2tforever Có thể giải thích rõ hơn được không?
00402381 8B7D08 mov edi, dword ptr [ebp+08] // cho edi tro den tham so thu 2 la dia chi dich
:00402386 8B750C mov esi, dword ptr [ebp+0C] //cho esi tro den tham so thu nhat la dia chi nguon
:00402389 8B4D10 mov ecx, dword ptr [ebp+10] //cho ecx= tham so thu 3 la kich thuoc
[Up] [Print Copy]
  [Question]   Nhờ mọi người giải thích hộ đoạn mã ASM 21/09/2012 21:54:46 (+0700) | #10 | 269627
n2tforever
Member

[Minus]    0    [Plus]
Joined: 01/07/2011 15:39:51
Messages: 92
Offline
[Profile] [PM]
em viết lộn smilie
edi trỏ đến địa chỉ đích là tham số thứ nhất
esi trỏ đến địa chỉ nguồn là tham số thứ hai
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|