Archive for the ‘Dùng thử IDA 5.2 và HexRays’ Category


Download được IDA 5.2 và HexRays rồi mà mãi đến hôm nay mới có thời gian ngồi “nghịch”… từ trước đến nay thỉnh thoảng vẫn vọc IDA, nhưng mỗi lần load target để IDA analyze xong là “choáng”. Choáng vì khả năng analyze của IDA kinh quá, choáng vì khi nhìn vào kết quả mà IDA phân tích chỉ có nước hoa mày chóng mặt.Choáng vì Yag Team giang hồ quá , thế nên anh em mới có hàng mà dùng !! Chưa hết choáng với IDA thì lại choáng với HexRays, có câu “nghề chơi cũng lắm công phu”. Các công cụ hàng đầu có trong tay nhưng mà không biết dùng thì cũng đến nước mà vứt vào sọt rác, hoặc cùng lắm là chỉ “cưỡi ngựa xem hoa”. Nếu như biết xài IDA “đúng cách và có nghệ thuật” thì HexRays đúng là trợ thủ đặc lực trong việc xây dựng lại “mã giả” khiến cho đoạn code trở nên rõ ràng và dễ đọc hơn. Tuy nhiên để có thể làm được điều này thì cần phải có thời gian luyện tập rất nhiều và cũng phải có cả kiến thức về coding nữa . Hic coding thì bỏ lâu quá rồi nến khi đặt tên biến thấy gượng gạo quá mà có khi còn sai bét …….Sau một hồi nghịch bung bét dòm kết quả thấy cũng tàm tạm, không đến nỗi nào ………. gọi là tạm hài lòng


void __userpurge WndProc(int a1, HWND hWndParent, UINT Msg, WPARAM wParam, LPARAM lParam)
{
int v5; // eax@21
int v6; // ST0C_4@21

if ( Msg == 2 )
goto end_program;
if ( Msg != 516 && Msg != 5 && Msg != 1 && Msg != 513 )
{
if ( Msg == 36 )
{
*(_DWORD *)(lParam + 24) = 280;
*(_DWORD *)(lParam + 28) = 160;
*(_DWORD *)(lParam + 32) = 280;
*(_DWORD *)(lParam + 36) = 160;
return;
}
if ( Msg != 273 )
{
DefWindowProcA(hWndParent, Msg, wParam, lParam);
return;
}
if ( wParam == 103 )
{
DialogBoxParamA(hInstance, “DLG_ABOUT”, hWndParent, DialogFunc, 0);
return;
}
if ( wParam != 101 )
{
if ( wParam == 102 )
{
if ( DialogBoxParamA(
hInstance,
“DLG_REGIS”,
hWndParent,
(INT_PTR (__stdcall *)(HWND, UINT, WPARAM, LPARAM))sub_401253,
0) )
{
process_chars_of_szName__((char)szName); // v5 = process_chars_of_szName__((char)szName);
v6 = v5;
calculate_with_szSerial((char)szSerial);
if ( v6 == a1 )
show_good_work();
else
show_no_luck();
}
}
return;
}
end_program:
PostQuitMessage(0);
}
}