banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: sieudot  XML
Profile for sieudot Messages posted by sieudot [ number of posts not being displayed on this page: 0 ]
 
Thôi, em tự tìm ra rồi, search cái lệnh SAR thì nó là phép chia của số nguyên có dấu smilie
Ví dụ lệnh C sau:

signed int ret = -1000;
k = ret / 256;

Khi biên dịch sang ASM, thì nó được tối ưu hoá ra đoạn code assembly chết đâm đó smilie
Chào mọi người, mình đang đảo mã một ứng dụng viết bằng C, sử dụng IDA 6.1. Gặp một đoạn mã assembly như thế này,

MÃ ASSEMBLY
Code:
call system
mov edx, eax
sar edx, 1Fh
shl edx, 8
sbb eax, edx
sar eax, 8
mov [0x7F8], eax


Mình tự dịch sang C thì nó như thế này:
int ret = system("a string"smilie;
dw7F8 = (ret - ((ret >> 31) << 8) ) >> 8;

Debug thì giá trị ret= 0x0100 sau đoạn lệnh sẽ chuyển thành 0x01 smilie

Không hiểu là nó làm gì nữa, bác nào có kinh nghiệm có thể giải thích ngắn gọn lại xem nó làm gì giúp mình.
Xin cảm ơn.
 

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