بروبچ عزيز!
من خيلي وقت پيش يه مبدل اسمبلي به سي داشتم. حالا گماش كردم. شما نديديد يه خوبشو با تبديل خطوط بسيار به سي.
من يكي تو اينترنت ديدم براي 50 خط 750 دلار ميگرفت و 17.5 درصد هم براي مالياتاش؟! :cry:
بابا چقدر عجله داري من حالا شيرازم و بااين اينترنت دانشگاه كه نفتيه و نفتش هم داره تموم مي شه ولي خوب اين راهش نيست (برا ي همون ريسيور مي خواي ديگه) اخه اگه به اين مفتي بود كه تمام فايلهاي exe تبديل ميشدن به سورس و همه چيز Open Source
روشهاي ديگه رو بايد دنبال كني اولا بايد ببيني با چي نوشته شده حتما كه نبايد با سي باشه
دوما نه از سي نه از اسمبلي برنامه هيچ چيز نميشه فهميد (يا اگه به خواهي ازش سر در بياري اون رو يه بار ديگه بنويسي راحت تره)
ولي براي عوض كردن يكم سعي و خطا نياز داره اگه براي عكس ها از روشهاي فشرده سازي استفاده نكرده باشه يا اگه استفاده كرده باشه يه روش استاندارد باشه نه روشي كه از تو جيبش در اورده شايد بشه يه كاري كرد
توي فايل اسمبلي ببين اولين دستور (يا يكي از 2-3 دستور اول ) JMP نيست اگه باشه خوب شايد بشه يه كاري كرد اگه نباشه ....
كاتالوگ پروسسور رو پيدا كن ببين بردار هاي وقفه كجا قرار داره (صبر كن من يكم فرست پيدا كنم يه كاري مي كنم)
بابا چقدر عجله داري من حالا شيرازم و بااين اينترنت دانشگاه كه نفتيه و نفتش هم داره تموم مي شه ولي خوب اين راهش نيست (برا ي همون ريسيور مي خواي ديگه) اخه اگه به اين مفتي بود كه تمام فايلهاي exe تبديل ميشدن به سورس و همه چيز Open Source مي شد
روشهاي ديگه رو بايد دنبال كني اولا بايد ببيني با چي نوشته شده حتما كه نبايد با سي باشه
دوما نه از سي نه از اسمبلي برنامه هيچ چيز نميشه فهميد (يا اگه به خواهي ازش سر در بياري اون رو يه بار ديگه بنويسي راحت تره)
ولي براي عوض كردن يكم سعي و خطا نياز داره اگه براي عكس ها از روشهاي فشرده سازي استفاده نكرده باشه يا اگه استفاده كرده باشه يه روش استاندارد باشه نه روشي كه از تو جيبش در اورده شايد بشه يه كاري كرد
توي فايل اسمبلي ببين اولين دستور (يا يكي از 2-3 دستور اول ) JMP نيست اگه باشه خوب شايد بشه يه كاري كرد اگه نباشه ....
كاتالوگ پروسسور رو پيدا كن ببين بردار هاي وقفه كجا قرار داره (صبر كن من يكم فرست پيدا كنم يه كاري مي كنم)
به حامدخان! با امتحانات چه كردي؟!
راستي بزار برات بگم كه هم كاتالوگ پروسسور رو پيدا كردم و همDisassembler خودشو. و حالا هم يه عالمه فايلهاي اسمبلي گنده مونده دارم. :wink:
توش هنوز JMP پيدا نكردم. :cry: چه كلمات كليدي ديگهاي رو توش جستجو كنم؟!
حامد كيه سلام منو بهش برسونيد من هادي هستم
تو كل برنامه JMP نداري :!: يه جاي كار مي لنگه
jmp رو پرسيدم چون اكثر زبانهاي برنامه نويسي سطح بالا مثل سي روتين اصلي رو اون آخر هاي برنامه مي نويسند و ابتدا به اونجا مي پرند ولي كسي كه اسمبلي مي نويسه اين كار رو نمي كنه البته دليلي هم نداره
ولي برنامه بدون دستور پرش برنامه نيست يا اسم دستور پرش فرق ميكنه يا نمي دونم ديگه
10 خط اول برنامه رو مي توني يه جوري برام بفرستي
واما امتحان قرار بود تستي بگيره (يعني 50 ساله تستي مي گيره ) به ما كه رسيد تشريحي شد يه چيزهايي هم زياد آوردم يعني يه سنسور اضافه داشت ولي بد نشد يا 10 بايد بگيرم يا 19 نمره هاي ديگه زياد با هم فرقي نداره
ha_60 نوشته است:حامد كيه سلام منو بهش برسونيد من هادي هستم
:lol:
اي آقا شرمنده. بيسواتييه ديگه.
اما در مورد اينكه برنامه چطوريه. بنظر من برنامه اسمبلي با برنامه اصلي شروع ميشه. ابتدا يه ليست بلند بالا از سابروتينها داره اينطوري:
کد:
=====================================================
Subroutine Summary
=====================================================
Subroutine Called From
sub_0000008E 00005735
sub_00000093 00000092
sub_000000BF 00000077
sub_000000D0 000000C7
sub_000000E2 000000B5
بعد از اتمام يه عالمه سابروتين برنامه اصلي رو داره اونهم اينطوري:
کد:
=====================================================
00000000 55 ldnlp #5
00000001 AA cj loc_C
00000002 55 ldnlp #5
00000003 AA cj loc_E
00000004 00 j loc_5
00000005 00 loc_00000005: j loc_6
00000006 A8 loc_00000006: cj loc_F
00000007 DD stl #D
00000008 7F ldl #F
00000009 E9 stnl #9
0000000A 00 j loc_B
0000000B 00 loc_0000000B: j loc_C
0000000C 00 loc_0000000C: j loc_D
0000000D 14 loc_0000000D: ldlp #4
0000000E F0 loc_0000000E: rev
0000000F 00 loc_0000000F: j loc_10
00000010 00 loc_00000010: j loc_11
00000011 00 loc_00000011: j loc_12
00000012 02 loc_00000012: j loc_15
بعد هم شروع ميكنه به تعريف سابروتينها:
کد:
sub_0000008E called from:
00005735
0000008D 28242A27BF ajw #84A7F
00000092 90 call sub_93
sub_00000093 called from:
00000092
00000093 71 sub_00000093: ldl #1
00000094 C0 eqc #0
00000095 21AF cj loc_B6
00000097 17 ldlp #7
00000098 FF outword
00000099 F0 rev
0000009A 2C6B25281F ldlp -#CBA71
0000009F 0D j loc_AD
000000A0 59 ldnlp #9
000000A1 30 loc_000000A1: ldnl #0
000000A2 02 j loc_A5
000000A3 249D call sub_F2
000000A5 37 loc_000000A5: ldnl #7
000000A6 00 j loc_A7
000000A7 BD loc_000000A7: ajw #D
000000A8 AE cj loc_B7
000000A9 19 ldlp #9
000000AA 00 j loc_AB
000000AB 2523259B loc_000000AB: call sub_540A
000000AF 20 .db #20
000000B0 0C j loc_BD
000000B1 5F ldnlp #F
000000B2 E6 stnl #6
000000B3 30 ldnl #0
000000B4 02 j loc_B7
000000B5 229B call sub_E2
000000B7 37 loc_000000B7: ldnl #7
000000B8 01 j loc_BA
000000B9 FF outword
000000BA F0 loc_000000BA: rev
اين چيزيه كه من از برنامه ميبينم.فكر ميكني اشتباه ميكنم. بگو تا يادبگيرم. راستي ميدوني خيلي خوشحالم كه اين بحث رو شروع كردم. چون داره به معلوماتم اضافه ميشه. دم آقا اشكان و شما هادي خان گرم.
:wink: :wink:
هان راستي يادم نره!
اين چيزايي كه من دانلود كردم. يه امولاتور داره و يه دونه نرمافزار بنام JKeys. در مورد امولاتور تو فايل Read me! نوشته:
کد:
How to use
----------
To start, type 'st20emu' in a DOS command window. At the '>'
prompt, type
l 7ff80000 <filename>
where <filename> is the name of a file with ST20 instructions in
it (e.g. a TSOP dump). If you forget to do this, you'll get lots
of errors since the emulator won't have any ST20 instructions to
emulate.
Now you can start issuing commands to the emulator
Emulator commands
-----------------
Before going into the commands, here is a list of the parameters
that the commands use.
<value> refers to a 32 bit octal word.
<address> refers to a 32 bit octal address
<filename> refers to a TSOP dump filename
<register> is either
a (A register)
b (B register)
c (C register)
i (Iptr)
بعد پر كامند و پارامتر است. من اصلا دست بهش نزدم. ميدوني گذاشتم جنابعالي از شيراز برگرديد! :wink: اما در مورد اون نرمافزار JKeys اينها رو ميتوني بخوني:
کد:
jKeys Version 2.9.10 by Dave2
jKeys is a program primarily used to access memory on IRDs. It works by utlizing processor diagnostic devices via the JTAG port. This software has been used on STMicroelectronics STiXXXX (ST20 based core) and LSI SC2000 processors.
As of version 2.9.10, jKeys supports a new device called jInterface. This device connects to a PC using the serial port as opposed to the parallel port. It uses a microcontroller to perform the majority of JTAG communications, removing the burden from the PC. In doing so it alleviates many of the problems associated with poor timing and electrical characteristics exhibited by computers. It provides buffering and standard level signals at consistent clock rates to provide stable and reliable reads/writes. It is completely hands free, and with the exception of 2 simple removable adapters, is configured totally by jKeys operation.
Basic
-----
- works on Windows 95/98/Me/NT/2K/XP
- auto detects STMicroelectronics ST20 base processors and LSI SC2000
(ST micros STi5500, STi5505, STi5508, STi5510, [b]STi5518,[/b] ST20-TP2, ST20-TP4, ST20-GP6) (LSI micro SC2000).
- auto detects most Echostar IRDs (2700, 2800, 3700, 3800, 3900, 4700, 4900, 501/5100, 301/3100, 6000)
- for IRDs detected, automatically read IRD number, Box Keys, Build Config, Model ID, Boot Strap and Software version
- works on several DTV IRDs (DRD420RE, DRD431RG, DRD220)
- for all IRDs known by jKeys, base memory flash configuration is provided
- allows flash reads for non-16 bit wide memory layouts
- reads memory and saves to file
- parallel port diagnostics
شرمنده رودهدرازي كردم. فكر كنم از شيراز كه اومدي يه كلاس مباني كامپيوتر و اسمبلي پيشدانشگاهي بايد برام بذاري
زدی به خاکی کدهای اول برنامه رو نگاه کن( 55AA 55 AA 00 00)
دوست داری باینری اینها رو هم ببینی پشت سر هم این میشه
00000000 00000000 10101010 01010101 10101010 01010101
خیلی جالبه نه ، چند درصد احتمال داره این کد برنامه باشه این همه صفر و یک پشت سر هم و این همه صفر خالی (منظورم اينه كه هيچ در صد)
ولی تا اونجا که یادمه کدهای 55 AA توی کامپیوتر های شخصی برای مشخص کردن ابتدای درایور استفاده می شه ( همون بایوس بعضی از دستگاه های جانبی) چیزی که توی EEPROM مثلا کارت گرافیک ریغته می شه برای شناسایی اولیه (البته درست یادم نیست شاید مال چیز دیگه ای بوده)
ولی در کل به این معناست که شما نمی دونی کدهای برنامت از چه آدرسی شروع میشه یعنی دیس اسمبل نمی تونی بکنی و ...... چون اگه بایت اول برنامت رو یه بایت این طرف اون طرف کنی برنامه یه چیز دیگه می شه توي كد هاي برنامه دنبال متنها بگرد با همون مثلا ورد ميكروسافت
راستي اومدم اصفهان
سلام به جگر گوشگان من
آقا ميشه بگين مشكل اصلا چيه ؟ شايد ما هم يه چيزي بفهميم .
ha_60 نوشته است:توي كد هاي برنامه دنبال متنها بگرد با همون مثلا ورد ميكروسافت
راستي اومدم اصفهان
زيارت قبول :wink: حتما يه سري به من بزن. سفت و سخت زيارت قبولي بگيم. تو كدوم برنامه دنبال متن بگردم. تو فايل اسمبلي يا فايل بين؟ :(
اما من اونو با ديس اسمبل خودش اسمبل كردم. :( يعني فكر ميكني اين نميتونه برنامه باشه. :cry: راستي فلاش مموريها چياند؟ :(
توروخدا يا به من سربزن يا زنگ بزن. :(
behzad-hacker نوشته است:سلام به جگر گوشگان من
آقا ميشه بگين مشكل اصلا چيه ؟ شايد ما هم يه چيزي بفهميم .
سلام به عزيز دل برادر
آقا ما يك فايل بين داريم.مال ميكروپروسسور STI5518 كه جز فاميل ST20 (پروسسورهاي اصلي ريسيورهاي ماهواره). اين را با ديس اسمبلر خود ST20 به اسمبلي تبديل كردم. حالا خودم هم بوق بوق تشريف دارم. ميخوام ببينم ميشه باهاش چه كرد؟! :(
اين توضيح من پستهاي از بالا تا پايين هم بخون؟! :cry: