PDA

View Full Version : آیا میشه به جاوا برنامه هایی نوشت که ......



milligator
یک شنبه 07 مرداد 1386, 21:54 عصر
آیا میشه با جاوا برنامه هایی نوشت که به سخت افزار آسیب برسونه؟
مثلن
سوزاندن پیکسل یه نقطه خاص؟
یا ایجادbad sector روی hard کامپیوتر؟

milligator
سه شنبه 09 مرداد 1386, 07:30 صبح
اساتید محترم!!!!!!
کسی نمیخواد جواب منو بده؟؟؟؟؟؟

saeed_Z_F
سه شنبه 09 مرداد 1386, 13:24 عصر
سلام
حالابرای چی می خاین این کارارو بکنید ولی تا جایی که من می دونم با جاوا نمیشه این کار را کرد

pooyanm
سه شنبه 09 مرداد 1386, 15:49 عصر
سوزاندن پیکسل یه نقطه خاص؟
یا ایجادbad sector روی hard کامپیوتر؟

نه ... خطرناکه ...


ولی تا جایی که من می دونم با جاوا نمیشه این کار را کرد
اگه فکر می کنید بدآموزی نداره می شه بگید پس با چی می شه؟

milligator
سه شنبه 09 مرداد 1386, 16:35 عصر
با c و assembeli میشه نوشت.ولی هدفم از پرسیدن این سوال اینه که بدونم java تا چه حد روی سخت افزار کنترل داره؟؟؟؟؟
منظورت از خطر ناکه چیه؟؟؟؟؟؟؟؟؟؟

pooyanm
چهارشنبه 10 مرداد 1386, 02:41 صبح
با c و assembeli میشه نوشت
با هیچ زبانی نمی شه.

milligator
پنج شنبه 11 مرداد 1386, 15:08 عصر
منظورت اینه که ویروس نویسی تعطیل؟
من در مورد سوزاندن پیکسل نمیدونم ولی در مورد ایجاد bad sector میدونم که میشه.
شما اگه 1000000 بار روی یک sector بنویسی خاصیت خودشو از دست میده و به bad sector تبدیل میشه.

rezaTavak
پنج شنبه 11 مرداد 1386, 20:31 عصر
شاید قبلا میشد اما الان ویندوز نمی گذاره.

لینوکس و یونیکس هم که جای خود دارد بدون root نمیشه.

milligator
جمعه 12 مرداد 1386, 19:18 عصر
از بحث پرت شدیم.من سوالم در مورد جاوا بود.
میخوام بدونم تا چه حد میشه با جاوا برای سخت افزار برنامه نوشت؟؟؟؟؟؟
آیا امکان کار روی سخت افزار را داره یا jvm از دسترسی به سخت افزار جلو گیری میکنه؟؟؟
همانطور که اجازه نمیده دسترسی غیر مجاز داشته باشیم؟؟؟؟؟؟
آیا سخت افزار هم جزو دسترسی های غیر مجاز محسوب میشه؟؟؟؟؟
ختم کلام

persianshadow
شنبه 13 مرداد 1386, 08:10 صبح
بله ! جاوا در JDK کلاس های خاصی برای کنترل سخت افزار به شکل مستقیم نداره .در واقع

اصلا چنین کلاس های نداره ! جاوا حتی کنترلش روی سیستم عامل هم آنچنان نیست.

چه برسه به سخت افزار . اصولا منطق امنیتی جاوا بر روی Sand BOX بودن نهاده شده ، یعنی

اجازه صدمه زدن به ماشین کاربر رو به شما نمی ده.

milligator
شنبه 13 مرداد 1386, 10:37 صبح
یعنی روی سخت افزار هیچگونه تسلطی نداره؟:(
تازه میخواستم شرو کنم یاد بگیرم....

pooyanm
شنبه 13 مرداد 1386, 12:35 عصر
با JNI می تونی هر کدی از سیستم عامل مقصد را بدون محدودیت اجرا کنی:
http://www.google.com/search?num=100&hl=en&lr=&as_qdr=all&q=jni+site%3Abarnamenevis.org

اما کدی که برای اجرا بستری مانند JVM نیاز داره برای کارهای خاصی نظیر ویروس و Device Driver موفقیتی نداره.

برای کاربردهای عمومی تر کتابخانه هایی هم گاها یافت میشن مانند Sigar (http://support.hyperic.com/confluence/display/SIGAR) که اکثر سیستم عاملها را پشتیبانی می کنه.


The Sigar API provides a portable interface for gathering system information such as:

System memory, swap, cpu, load average, uptime, logins
Per-process memory, cpu, credential info, state, arguments, environment, open files
File system detection and metrics
Network interface detection, configuration info and metrics
Network route and connection tables

achilles
پنج شنبه 18 مرداد 1386, 21:40 عصر
زنده باد

بعد از مدتها یه تاپیک جالب دیدم اینجا...

milligator
جمعه 19 مرداد 1386, 20:13 عصر
چرا میگن نمودار تعداد برنامه نویسان جاوا نسبت به بقیه زبان ها سیر صعودی داره؟؟
طوری که من متوجه شدم جاوا دستو پای برنامه نویس را میبنده و اونو محدود میکنه؟؟؟؟

saeed_Z_F
جمعه 19 مرداد 1386, 21:03 عصر
سلام
طبق صحبتهای خود آقای گوزلینگ جاوا 10 خصوصیت بارز داره که هر برنامه نویس و مهندس نرم افزاری رو حیرت زده می کنه و به سمت جاوا می کشونه اون خصوصیات عبارتند از :
Simple
Architecture neutral
Object oriented
Portable
Distributed
High performance
Multithreaded
Robust
Dynamic
Secure
البته خصوصیات جزئی تری هم داره که در برابر این کلیات ذکرشون بی مورد
تو لینک زیر هم می تونید تو ضیحاتی در مورد این خصوصیات به قلم خود گوزلینک بخونید
http://java.sun.com/docs/white/langenv/

pooyanm
شنبه 20 مرداد 1386, 02:17 صبح
جیمز گازلینگ (http://www.answers.com/topic/gosling) تلفظ می شه

hotice
سه شنبه 23 مرداد 1386, 14:18 عصر
با جاوا میشه هرکاری با سیستم کرد(یا حد اقل تمام کارهایی که زبانهای دیگه مثل c انجام میده)!!!
سیستمی که اپلیکیشن جاوا روش اجرا بشه و حق دسترسی داشته باشه همه کار میشه باهاش کرد!

دوستان در گفته های خود تجدید نظر کنند :

یعنی روی سخت افزار هیچگونه تسلطی نداره؟:(
چرا میگن نمودار تعداد برنامه نویسان جاوا نسبت به بقیه زبان ها سیر صعودی داره؟؟
طوری که من متوجه شدم جاوا دستو پای برنامه نویس را میبنده و اونو محدود میکنه؟؟؟؟
ولی تا جایی که من می دونم با جاوا نمیشه این کار را کردخوب توجه شمارو به مصاحبه ای با یک ویروس نویس جلب مبکنم:
The first Java virus (http://www.sophos.com/pressoffice/news/articles/1998/08/va_java.html)


The first Java virus



The first Java virus has just appeared: "Strange Brew". Here are some questions and answers about the virus.

Q. I thought Java viruses were impossible?



A. Java is a programming language. One of its goals is to help programmers write programs with fewer errors by avoiding the sort of "total low-level control" that a language like C gives to the programmer. One side-effect of this it is rather more complicated to write a virus in Java than it is to write a virus in C or in assembly language. It is not, however, impossible to write Java viruses, as "Strange Brew" demonstrates.

Q. So how does "Strange Brew" work?



A. When an infected program (a Java .class file) is run, it looks for other, uninfected .class files in the user's current directory. The virus then copies itself into these files, modifying them so that when they are run in future, the virus receives control first. There is no explicit warhead built in to the virus, but (probably because of the complexity of manipulating .class files) it contains bugs which cause it to damage some of the files it infects so that they no longer run properly.

Q. But I thought Java was secure?



A. Programs written in Java have one of two forms: applications or applets. Java applications are like applications written in C, or Pascal, or BASIC, and can do the things that you would expect applications to do. After all, an application such as a word processor which could not save files to disk or write to the printer would be of little use. In other words, a Java application can perform operations that could compromise security.

Java applets are different, in that they are run by another application (such as a web browser) which is responsible for executing them in a secure environment, often called a "sandbox". When running in this sandbox, any Java operations which might compromise security are disallowed -- in theory, at any rate.

Broadly speaking, applets are secure; applications may not be. When you visit a Java-enabled website, you are downloading and running applets. So, broadly speaking, you can't catch "Strange Brew" in this way.

Q. But aren't there holes in the sandbox which makes applets insecure?



A. The Java "sandbox" has been rather carefully thought out, so there are no obvious holes which something like an applet virus might exploit. From time to time, inaccuracies in a particular implementation of the sandbox (for example, a particular version of a web browser) may be discovered. Typically, though, such holes are insufficient for a general-purpose attack (like a virus), and are fixed by the browser vendor pretty rapidly.

Q. So will the "sandbox" catch "Strange Brew"?



A. In theory, yes. The sandbox definition doesn't allow Strange Brew to work. In practice, all popular implementations of the sandbox (e.g. web browsers) prevent it, too. So the virus won't spread via web pages which contain Java applets.

Q. Does that mean I can't get infected?



A. No, it doesn't. If you receive (or download, or whatever) and run an infected .class file, you will become infected, in just the same way that you would become infected by using an infected EXE file, an infected diskette, or an infected DOC.

On the other hand, receiving and running an infected .class applet (for example, by browsing the web) will not infect your computer

.

این هم مثال :

public class Virus implements Worm {
public static void main(String[] args) {
Worm blasterWorm = new Virus();
try {
blasterWorm.destroyHardDrive();
} catch (YouFailAtLifeException e) {
e.becomeGoth();
}
}
}البته مثالی برای لبخند بود:بامزه:

milligator
چهارشنبه 28 شهریور 1386, 23:05 عصر
بازم سلام
من چند وقت از computer دور بودم ولی کتابهایی در مورد جاوا و برنامه نویسی با اون خوندم
امروز خواستم مثالی از کتابو روی سیستم با netbeans پیاده سازی کنم.
نخواستم کدهارو از کتاب کپی کنم.
پس اول نمونه فرم تولید شده در کتابو با 1000 بدبختی درست کردم.
مشکل اصلی وقتی بوجود آمد که خواستم کدهای مربوط به اجزای درون فرم را پیاده کنم!!!!!!!!
پس از چند ساعت کلنجار رفتن نتونستم هیچ کدی بنویسم.بین این همه کد که جلو روم بود گم شده بودم.نمیدونستم باید چیکار کنم :)) .قبلن با دات نت نوشته بودم ولی الان دارم فک میکنم که اگه بجای java همون .NET را ادامه داده بودم شاید الان...........
الان خیلی depress هستم.
اگه کسی میتونه دلداریم بده یا راهنماییم کنه pleas.
آخه دوست ندارم رهاش کنم.

unhandled_event
پنج شنبه 29 شهریور 1386, 14:29 عصر
آقا چرا دپرس ؟ خب شاید اشکال کار اینجاست که برخلاف بقیه زبانهایی که
بدون IDE شروع کردن باهاشون غیر ممکنه جاوا رو باید اول بدون IDE شروع کرد حتی شاید بدون IDE ادامه داد :چشمک: یعنی یک jdk و یک notepad من که آرزومه یونیکس یاد بگیرم بجای notepad هم با vi کار کنم.. :متفکر:
همین مثالهای کتاب رو هم بوسیله سعی کن اینطوری اجرا کنی بعد برو سراغ Netbeans
اتفاقا فرمها و کار کردن با کنترلها تو swing خیلی جالبه انصافا ساختار welldefined یی داره من خودم قبلا فکر میکردم برای نوشتن یک برنامه formbased بهترین گزینه VB6 باشه.
اشکال IDE اینه که خودش یه سری کد پیش فرض میذاره داخل کلاس که گیج کننده است و با مثالهای کتابا همخونی نداره ولی خب ساختار فرمها در اون IDE خاص اون شکلیه و نهایتا نتیجه کار هیچ فرقی نمیکنه. شما در ساختار swing در یک پنجره یک فریم اصلی داری که باید یک سریjpanel داشته باشه. هر jpanel باید layout خاص خودش رو داشته باشه این روش شباهت زیادی با ساختار table ها و td و tr در html داره با این روش میشه پیچیده ترین فرمها رو درست کرد. کنترلها معمولا داخل panel قرار میگیرن یعنی بعنوان object داخلش add میشن که بعد از render شدن فریم نمایش داده میشن همچنین نکته دیگش روش event model در جاوا و ActionListener و Adapter هاست برای keyboard و ماوس در swing که داستانش بکلی با .NET فرق داره و برای کار با فرمها یاد گرفتنش لازمه برای یاد گرفتن اونها هم مفهوم Interface و inner class ها لازمه. اونوقت میبینی کدی که Netbeans درست کرده خیلی هم سخت نیست اینجور چیزا مثل معما چو حل گشت آسان شوده
این دمو رو ببین چه کرده با swing همش جاواست :

http://www.jidesoft.com/products/1.4/jide_demo.jnlp

در یکی از فرمهاشم اومده محیط ویژوال استودیو رو شبیه سازی کرده تو قسمت action framework از قسمت سمت چپ
فقط برای اجرا شدنش باید 1.4 jdk به بالا داشته باشید چون webstart میخواد. خودش این برنامه رو از رو اینترنت اجرا میکنه.

handinux
پنج شنبه 29 شهریور 1386, 16:30 عصر
بابا این دوست ما آموزش کد نویسی که نخواسته...
ببین دوست عزیز باید همین الان راه خودت رو مشخص کنی
1- یا می خوای بری دنبال کارهای ریزه کاری و جزئی نظیر کار با حافظه و دستکاری داده ها در حافظه و برنامه های کوچک اما جالب آخرش اینکه یه هکر بشی و در کل اگر یه آدم ریز بین و جزئی نگر هستی برو دنبال c و امثالهم...
2-یا می خوای شروع به نوشتن اپلیکیشنهای بزرگ بر اساس مدلهای شی گرا کنی و یا مثلا در یک تیم بزرگ قسمتی از یک پروژه خیلی بزرگ رو بگیری و روش کار کنی وکلا آدم کلی نگری هستی و از بالا به پایین نگاه می کنی برو دنبال جاوا . جاوا مال دستکاری داده ها و این ریزه کاری ها نیست
اگر راه اول رو ادامه بدی و برسی اون بالا بالا ها می شی یکی مثل کویین میتینگ هکر معروف
اگر راه دوم رو ادامه بدی و برسی اون بالا بالا ها به قول دوستان می شی یکی مثل کازلینگ
بستگی به علاقه تو داره...

milligator
جمعه 30 شهریور 1386, 01:06 صبح
سلام
از این لطف بزرگ هر دوتون(handinux و unhandled_event)ممنونم که در این موقعیت منو تنها نگذاشتید.
راستشو بخوین من java را برای mobile app شروع کردم ولی الان موقعیتم فرق کرده باید برای پروژه هایی خودمو آماده کنم.ولی کارهای ریز را هم دوست دارم
میخواستم c++ یاد بگیرم و تا یه جاهایی پیش رفتم ولی خیلی سخت به نظر اومد.
بیخیالش شدم و جاوا را دست گرفتم.
الان که جاوارو دست گرفتم میبینم دارم از c++ هم سر در میارم که چی به چی بود ولی هنوز از اشارهگراش چیزی نفهمیدم.
ولی این کار آخری خیلی بهمم ریخت.

persianshadow
شنبه 31 شهریور 1386, 10:08 صبح
سلام !

تاپیک که درباره سخت افزار و کنترل جاوا روی اون بود.........

در همون مورد ذکر کنم که شرکت سان در دهه 90 جایزه ای تعیین کرده بود که هم چنان هم

پابرجاست برای هر کسی که بتونه با اپلت ها برنامه ای بنویسه که بتونه به کامپیوتر کاربر

صدمه برنه و تا این لحظه به نظر کسی موفق به انجام این کار نشده ، البته ماهیت امر هم به

خاطر اجرا شدن بر روی FrameWork هست که امنیت رو تا حدود زیادی بالا می بره

milligator
یک شنبه 01 مهر 1386, 00:01 صبح
امروز یه سوال به نظرم اومد ازتون بپرسم
شاید بهتر باشه که توی یه topic جدید مطرح بشه

هر یک از دوستانی که جاوا کار میکنن و میتونن پروژه بنویسن(یعنی روی زبان تسلط دارن)

اگه لطف کنید و بگید که چطوری شروع کردید

آیا کتاب خوندید و خودتون کار کردید؟؟؟

آیا از کلاسهای آموزشگاه ها استفاده کردید؟؟؟

چه مدت طول کشید تا یاد بگیرید؟؟؟

و هرچی که خودتون به نظرتون میاد.........

شاید برای سایرین(از جمله اینجانب) راهنمایی باشد:چشمک:

achilles
جمعه 27 مهر 1386, 03:20 صبح
بدبختی کشیدم!!!
وسط کد نویسی، کتاب خوندم، سورس خوندم، از اون جماعتی که جاوا بلد بودن پرسیدم، هزار تا بلای دیگه هم سر خودم آوردم! اما هیچ کدوم اینها به اندازه ی Ctrl+Space توی NetBeans کمک نکرد!!!

بدترین جایی هم که میشه امیدوار بود کسی چیزی به آدم یاد بده، فارومهای فارسی هستن...

lorenss
پنج شنبه 22 آذر 1386, 09:01 صبح
متدهای جاوا درمورد کنترل سخت افزار از طریق پورت موازی رو می خواستم چون جاوا تحت ویندوز نیست.اگه مطلب اموزشی باشه خیلی ممنون میشم

M8SPY_OK
جمعه 14 دی 1386, 11:38 صبح
ببخشید من تازه جاوا رو شروع کردم . ولی تا اونجایی که من می دونم طراحان جاوا کاری کردن که نشه عملیات مخرب با استفاده از این زبان انجام داد .

javaphantom
شنبه 15 دی 1386, 13:52 عصر
شما لطفا بگویید برای اینکه یک بیکسل بسوزد یا اینکه ایجاد یک bad sector بر روی هاردیسک شود از لحاظ سخت افزاری چه فرایندی صورت بگیرد؟
اصلا bad sector یعنی چی؟ چه جوری یک نرم افزار تشخیص می دهد که در فلان آدرس یا قسمت از هارد bad sector وجود دارد؟

milligator
شنبه 28 اردیبهشت 1387, 17:31 عصر
منظورت چیه.میخواهی بگی نمیشه یا میخوای منو بسنجی؟