ناراحت نشین...تقصیر من نیست.به نقل از gooliof_iran :اگر منظورتون Source خود برنامه است
خوب به صورت رشته در متن برنامه آن را قرار دهيد و در خروجي آن را چاپ كنيد.
در غير اينصورت سوالتان را واضح تر بيان كنيد.
:hmm:
اگر منظورتون Source خود برنامه است
خوب به صورت رشته در متن برنامه آن را قرار دهيد و در خروجي آن را چاپ كنيد.
[LEFT]#include
main()[/LEFT]
printf("inja\n")
سلام عزيز.
ببينيد چند خط برنامه است كه جزو سورس است و ما خودمان داخل كدمان گذاشته ايم.
و موقع اجراي اين برنامه به زبان سي سورس چاپ ميشه.
اگر لانگ هورن نيامد خودم مي روم كد را پيدا مي كنم و اين جا مي گذارم.
سورس ويژوال سي اش را هم پيدا كردم در يك سايت خارجي.
ولي به قول جناب پاتريوت كه در بالا فرموده كار بيهوده اي است. من هم استفاده اي براش بلد نيستم. يك جور سرگرمي است فقط. البته شايد من دارم بد نظر ميدم. شايد يه كاربردهايي هم داشته باشه.
.
به نقل از shankimout :اها . در واقع سورس در یک متغیر ذخیره میشه و موقع اجرا چاپ میشه .
#include <stdio.h>
#include <conio.h>
char *program = "#include <stdio.h>%cchar *program = %c%s%c;%cint main()%c{%cprintf(program, 10, 34, program, 34, 10, 10, 10, 10, 10, 10);%c return 0;%c}%c";
int main()
{
printf(program, 10, 34, program, 34, 10, 10, 10, 10, 10, 10);
getch();
return 0;
}
void main (void)
{
FILE *fp = fopen ("selfWrite.cpp", "r");
if (NULL != fp)
{
int c;
while (EOF != (c = getc(fp)))
putchar(c);
fclose (fp);
}
}
دوستي در اين تاپيك به تفاوتهاي كامپايلرها اشاره كرده. يعني كه نمي توانيم به راحتي راه برگشت از اسمبلي به سوي سورس سي را برويم.به نقل از saeedsmk :با سلام
در مورد اینکه از روی فایل اگزه بشه سورس برنامه را در اورد ( یعنی خود فایل نه ) این کار تقریبا یعین به احتمال 99.99 درصد برای سی امکان پذیر نیست . اما میشه کد اسمبلی ان را در اورد
به نقل از gooliof_iran :فكر مي كنم كه بايد واقعا به زبان ماشين و آدرسهاي حافظه مسلط باشيم تا بتونيم چنين كاري رو بكنيم.
يعني سرس برنامه اجرائي رو با استفاده از مهندسي معكوس به دست بياريم.
چون معلوم نيست كه كه كامپايلر چي بوده.
فقط از انجام همون چهار عمل اصلي كامپيوتر مي شود با استفاده از مهندسي معكوس شبيه سرس را بدست آورد.
:
http://forum.itengineering.org/showthread.php?t=222
به نقل از longhorn0 :----------------------