۱۹-بهمن-۱۳۹۱, ۲۰:۳۱:۵۴
سلام .
من یه static inject می خوام انجام بدم.یه سری مشگل خوردم.
تو کد برنامه میام کار های زیر رو انجام می دم.
اول میام یه سکشن کد جدید به فایل مقصد اضافه می کنم.
بعد ep رو روی سکشن جدید تنظیم می کنم.
تابعی که می خوام تو فایل مقصد ازش استفاده کنم (ShellExecute) رو هم تو import table ازافه می کنم.
کدی هم که تزریق می شه این شکلی هست.
یعنی داده هام هم محلی هست نیاز نیست اونارو تو سکشن data ازافه کنم.
کد بالا هگزش تقریبا میشه کد زیر
خوب تا اینجا همه چیز حله یعنی ep تغییر می کنه سکشن جدید ازافه شده .
اما وقتی کد بالا رو تو سکشن جدید میریزم دو تا مشگل پیش میاد.
یک آدرس ascii که explorer هست تو فایل مقصد یه چیز دیگست و آدرسی که من ثابت دادم نیست.
دو ascii ها در فایل مقصد دستور شناخته میشن نه داده.
من چه طور آدرس دهی هام رو درست کنم؟
و بعد بهش بفهمونم این asci هست نه دستور؟
من یه static inject می خوام انجام بدم.یه سری مشگل خوردم.
تو کد برنامه میام کار های زیر رو انجام می دم.
اول میام یه سکشن کد جدید به فایل مقصد اضافه می کنم.
بعد ep رو روی سکشن جدید تنظیم می کنم.
تابعی که می خوام تو فایل مقصد ازش استفاده کنم (ShellExecute) رو هم تو import table ازافه می کنم.
کدی هم که تزریق می شه این شکلی هست.
کد:
Push 0
Push 0
Push 0
Push Offset exe
Push 0
Push 0
Call ShellExecute
Jmp endst
exe:
DB 'explorer', 0
کد بالا هگزش تقریبا میشه کد زیر
کد:
szShellcode \
DB 6AH, 00H, 6AH, 00H, 6AH, 00H,
68H, 19H, 10H, 40H, 00H,
6AH, 00H,
6AH, 00H,
0E8H, 6DH, 00H, 00H, 00H,
0EBH, 6AH,
65H, 78H, 70H, 6CH, 6FH, 72H, 65H, 72H, 00H,
;DB 31H, 31H, 31H, 00H
اما وقتی کد بالا رو تو سکشن جدید میریزم دو تا مشگل پیش میاد.
یک آدرس ascii که explorer هست تو فایل مقصد یه چیز دیگست و آدرسی که من ثابت دادم نیست.
دو ascii ها در فایل مقصد دستور شناخته میشن نه داده.
من چه طور آدرس دهی هام رو درست کنم؟
و بعد بهش بفهمونم این asci هست نه دستور؟