bytecode

phoenix

Member
نمي دونم كسي به اين موضوع علاقه داره يا نه. ميشه مستقيما در يك فايل فلش به جاي AS نوشتن bytecode نوشت.چيزي مثل كد كامپايل شده:

کد:
__bytecode__("88240002006900486F6C7920736869742C2062797465636F646520696E2074686520666C612100960B000800
0600000000000000003C96020008001C960500070A00000048129D02001500960200080126960400080008001C501D990200D6FF00");
 

fafa^mx

Member
به دليل مسايل امنيتي حذف شد!(و اجتمايي سياسي فرهنگي ووووو جنسي!)FBI
 

pedymx

Member
سلام
بله چرا كه نه اگه لطف كنيد توضيحاتي بديد بد نيست
خوش باشيد ...
 

phoenix

Member
متاسفانه اطلاعاتم فقط در همين حد هست. اين كد رو يكي از مهندس هاي macromedia در يك forum برنامه نويسي اعلام كرد. براي دستيابي به اون بايد از معماري flash IDE آشنا بود.

براي ايجاد يك فايل فلش 2 سطح compile وجود داره. سطح اول تبديل كد هاي AS به bytecode براي compiler فلش است. چيزي كه نمونه اش در بالا است. اين وظيفه IDE هست. اگر بتوانيم با اين كد برنامه بنويسيم فقط مدت زمان compile رو كم كرديم. اين كد در platform هاي مختلف متفاوته به اين دليل كه compiler فلش در platform هاي مختلف متفاوته.

سطخ دوم تبديل كد آماده شده به نوع دوم bytecode براي compiler فلش هست كه platform independent هم هست. bytecode ايجاد شده شبيه كد هاي assembly هست ولي فقط در flash player قابل تفسير هست
 

amozesh

Member
سلام
اگه برنامه اي باشه كه اكشن رو به باي كد تبديل كنه خيلي خوب منم با اين روش موافقم
 

fafa^mx

Member
بايت كد كامپايل شدرو ميتونه از تو اكشن اسكريپت ويور در بياري!ولي ديكامپايلش با خودت :)!
 

phoenix

Member
همونطور كه فريد گفت bytecode رو از طريق ActionScript viewer ميشه بدست آورد. فقط مساله اينه كه با ASV بايت كد رو از فايل compile شده ميشه بدست آورد دقيقا عكس چيزي كه ما مي خواهيم.

يك مثال:

كد زير AS هست:
کد:
var i = 0;
while (i < 10) 
{
	trace ("Hello this is bytecode!");
	i++;
}

اين كد در نرم افزار فلش به bytecode تبديل ميشه و بدين صورت در مي آيد:

کد:
    __bytecode__("881C000200690048656C6C6F20746869732069732062797465636F64652100960B0008000600000000000000003C96020008001C960500070A00000048129D02001500960200080126960400080008001C501D990200D6FF00");
bytecode توسط compiler تبديل به نوع دوم bytecode يا P-code ميشود:

کد:
	constants 'i', 'Hello this is bytecode!'
	push 'i', 0.00
	varequals
@4	push 'i'
	getVariable
	push 10
	lessThan
	not
	branchIfTrue @17
	push 'Hello this is bytecode!'
	trace
	push 'i', 'i'
	getVariable
	increment
	setVariable
	branch @4
@17	end

P-code در واقع چيزي است كه در فايل swf وجود دارد و بر روي كليه platform ها به يك صورت قابل اجرا است
 

جدیدترین ارسال ها

بالا