ダウンロードしたプログラムの一部であるスクリプトを変更する必要があります。しかし、vimでスクリプトを表示しようとすると、ランダムに配置された記号、数字、文字でいっぱいです。このスクリプトを読むために私ができることはありますか?これはスクリプトの一部です。
ELF > @ @ J @ 8 @ @ @ @ @ @ À À @ @ @ @ TB TB XB XBa XBa \ ˜† €B €Ba €Ba à à @ @ Påtd „( „(A „(A ´ ´ Qåtd /lib64/ld-linux-x86-64.so.2 GNU % 8 ) # 7 $ . ' " , 1 * 6 5 3 / 2 % - 0
! ( + 4 & ± A ! ® * 9 × ñ « P z â ó ³ í
a ¥
3 ¢ Æ ? s Š X ð é ö # N t 9 Ü M ) Š £ z [ - : S B Ô 3 e Ô P t : € ‘ \ È ò – É ² ï Û h : û ¦ A ÀFa ) E [ † Á H â d & ÈFa ä û Ð þ ‹ – libgfortran.so.3 _gfortran_st_write_done __gmon_start__ _Jv_RegisterClasses _gfortran_transfer_integer _gfortran_st_read _gfortran_st_inquire _gfortran_set_args _gfortran_iargc _gfortran_st_rewind _ITM_deregisterTMCloneTable _gfortran_pow_i4_i4 _ITM_registerTMCloneTable _gfortran_st_write _gfortran_st_read_done _gfortran_transfer_integer_write _gfortran_compare_string _gfortran_set_options _gfortran_st_close _gfortran_getarg_i4 _gfortran_transfer_character_write _gfortran_transfer_real_write _gfortran_transfer_logical_write _gfortran_stop_string _gfortran_transfer_real _gfortran_st_open _gfortran_transfer_character libm.so.6 truncf cosf sinf sqrtf powf log10f libgcc_s.so.1 __powisf2 libquadmath.so.0 libc.so.6 fflush exit sprintf _IO_putc fopen strncmp strncpy signal getpid calloc strlen memset stdout fputs memcpy fclose stderr fprintf memmove _IO_getc __libc_start_main free /cm/shared/apps/mpich2/3.2/gcc/lib:/cm/shared/apps/fftw/gcc/64/3.3.4/lib/ GLIBC_2.2.5 GCC_4.0.0 GFORTRAN_1.0 GFORTRAN_1.4 p ui  `Z' Î Æ ui  €eù Ø „eù å `Da ÀFa . ÈFa 4 €Da ˆDa Da ˜Da Da ¨Da °Da ¸Da
ÀDa ÈDa ÐDa
ØDa àDa èDa ðDa øDa Ea Ea Ea Ea Ea (Ea 0Ea 8Ea @Ea HEa PEa XEa `Ea ! hEa " pEa # xEa $ €Ea % ˆEa & Ea ' ˜Ea ( Ea ) ¨Ea * °Ea + ¸Ea , ÀEa - ÈEa / ÐEa 0 ØEa 1 àEa 2 èEa 3 ðEa 5 øEa 6 Fa 7 Hƒìè[ èZ èõ HƒÄÃÿ5z1! ÿ%|1! @ ÿ%z1! h éàÿÿÿÿ%r1! h éÐÿÿÿÿ%j1! h éÀÿÿÿÿ%b1! h é°ÿÿÿÿ%Z1! h é ÿÿÿÿ%R1! h éÿÿÿÿ%J1! h é€ÿÿÿÿ%B1! h épÿÿÿÿ%:1! h é`ÿÿÿÿ%21! h éPÿÿÿÿ%*1! h
é@ÿÿÿÿ%"1! h é0ÿÿÿÿ%1! h é ÿÿÿÿ%1! h
éÿÿÿÿ%
1! h é ÿÿÿÿ%1! h éðþÿÿÿ%ú0! h éàþÿÿÿ%ò0! h éÐþÿÿÿ%ê0! h éÀþÿÿÿ%â0! h é°þÿÿÿ%Ú0! h é þÿÿÿ%Ò0! h éþÿÿÿ%Ê0! h é€þÿÿÿ%Â0! h épþÿÿÿ%º0! h é`þÿÿÿ%²0! h éPþÿÿÿ%ª0! h é@þÿÿÿ%¢0! h é0þÿÿÿ%š0! h é þÿÿÿ%’0! h éþÿÿÿ%Š0! h é þÿÿÿ%‚0! h éðýÿÿÿ%z0! h éàýÿÿÿ%r0! h! éÐýÿÿÿ%j0! h" éÀýÿÿÿ%b0! h# é°ýÿÿÿ%Z0! h$ é ýÿÿÿ%R0! h% éýÿÿÿ%J0! h& é€ýÿÿÿ%B0! h' épýÿÿÿ%:0! h( é`ýÿÿÿ%20! h) éPýÿÿÿ%*0! h* é@ýÿÿÿ%"0! h+ é0ýÿÿÿ%0! h, é ýÿÿÿ%0! h- éýÿÿÿ%
0! h. é ýÿÿÿ%0! h/ éðüÿÿÿ%ú/! h0 éàüÿÿ1íI‰Ñ^H‰âHƒäðPTIÇÀ@A HÇÁPA HÇÇA°@ èWýÿÿôHƒìH‹.! H…ÀtÿÐHƒÄø¿Fa UH-¸Fa HƒøH‰åw]ø H…Àtô]¿¸Fa ÿà€ ¸¸Fa UH-¸Fa HÁøH‰åH‰ÂHÁê?HÐHÑøu]ú H…Òtô]H‰Æ¿¸Fa ÿ†€=ù/! u_UH‰åS»pBa HëhBa HƒìH‹ã/! HÁûHƒëH9Øs$fD HƒÀH‰Å/! ÿÅhBa H‹·/! H9Ørâè5ÿÿÿÆž/! HƒÄ[]À Hƒ=0+! t¸ H…ÀtU¿xBa H‰åÿÐ]é+ÿÿÿ é#ÿÿÿUH‰åH‰}è‰uä‹MäHcÉH‰Èº ‹Eä‰EøÇEô ‹Eø‰Eüƒ}ü ~.‹Eü‰EôH‹Uè‹EüƒèH˜¶< uƒ}ü”À¶Àƒmü…ÀuëÒ‹Eô]ÃUH‰åHƒì`H‰}ØH‰uÐH‰UÈH‰MÀL‰E¸D‰M´‹E´H˜I‰ÂA» ‹U´H‹EȉÖH‰Çè ‰EøH‹EØ‹ ‰EôH‹EØó‹Eøó*ÀH‹EÀóóYÂóXÁóEðH‹EÐóH‹EÀóóà óYÂó\È(ÁóEìH‹EÐóH‹EÀó óXÁóEè¿@A ¸ èTš HMèHUðHuìHEôHÇD$DA HÇ$DA A¹@A A¸@A H‰Ç¸ èZ³ H‹E¸H‰Ç¸ è š ‹Eø…À~4‹T ‰EüLMøLEüH‹MÈH‹UÀH‹uÐH‹EØ‹}´‰<$H‰Ç¸ èV« ÉÃUH‰åH‰}è‰uä‹MäHcÉH‰Èº ‹Eä‰Eø‹Eø‰Eüƒ}ü ~3‹Eü‰EôH‹Uè‹EüƒèH˜¶< t‹Eôëƒ}ü”À¶Àƒmü…ÀuëÍ‹Eô]ÃUH‰åHƒìpH‰}ÈH‰uÀH‰U¸H‰M°L‰E¨L‰M H‹E@Ç H‹E ‹ ‰EàH‹E(‹ ‰EØH‹E0‹ ‰EÜH‹E8‹ ‰EÔL‹MÀL‹E¸H‹MÈH‹U°HuØHEàH}èH‰<$H‰Çèy L‹MÀL‹E¸H‹MÈH‹U°HuÔHEÜH}äH‰<$H‰ÇèQ óEàóMÜ.Áz.Át%óEÔóMØó\ÁóMÜóUàó\Êó^ÁóEøóEØóMÔ.Áz.Át%óEÜóMàó\ÁóMÔóUØó\Êó^ÁóEô‹Eè…Àu‹Eä…À„œ ‹Eè™ÁêЃà)Ѓøu‹Eä™ÁêЃà)Ѓø„° ‹Eè‰ÂÁêÐÑø™ÁêЃà)Ѓøu‹Eä‰ÂÁêÐÑø™ÁêЃà)Ѓøtx‹EèP…ÀHÂÁø™ÁêЃà)Ѓøu‹EäP…ÀHÂÁø™ÁêЃà)Ѓøt<‹EèP…ÀHÂÁø™ÁêЃà)Ѓøu#‹EäP…ÀHÂÁø™ÁêЃà)Ѓøuéì ‹Uè‹Eä9ÂuéÝ ‹Eè…Àu‹Eä‰Eüë‹Eè‰Eü‹Eü™ÁêЃà)Ѓøu-H‹EÈó óMàó\ÁóYEøóMØóXÁóEìH‹EÈ‹ ‰Eð‹Eü‰ÂÁêÐÑø™ÁêЃà)Ѓøu-H‹EÀó óMàó\ÁóYEøóMØóXÁóEìH‹EÀ‹ ‰Eð‹EüP…ÀHÂÁø™ÁêЃà)Ѓøu-H‹E°ó óMØó\ÁóYEôóMàóXÁóEðH‹E°‹ ‰Eì‹EüP…ÀHÂÁø™ÁêЃà)Ѓøu-H‹E¸ó óMØó\ÁóYEôóMàóXÁóEðH‹E¸‹ ‰Eì‹Eè9Eüu9‹Eð‰Eà‹Eì‰EØL‹MÀL‹E¸H‹MÈH‹U°HuØHEàH}èH‰<$H‰Çèo é‹ýÿÿ‹Eð‰EÜ‹Eì‰EÔL‹MÀL‹E¸H‹MÈH‹U°HuÔHEÜH}äH‰<$H‰Çè6 éRýÿÿ‹EàH‹U¨‰‹EÜH‹U‰‹EØH‹U ‰‹EÔH‹U‰H‹E@Ç ÉÃUH‰åH‰}øH‰uðH‰UèH‰MàL‰EØL‰MÐH‹EÇ H‹EøóH‹Eàó .ÁvH‹EÇ ëH‹Eøó H‹EÐó.Áv
H‹EÇ H‹EðóH‹EØó .ÁvH‹E‹ PH‹E‰ë&H‹Eðó H‹Eèó.ÁwëH‹E‹ PH‹E‰]ÃUH‰åAUATSHìˆ H‰½øþÿÿH‰µðþÿÿH‰•èþÿÿH‰àþÿÿL‰…ØþÿÿL‰Ðþÿÿ‹EpH˜I‰ÄA½ ‹ExH˜I‰ÂA» H‹E
答え1
「スクリプト」は実際にはスクリプトではなく、コンパイルされた実行可能なバイナリです。これはテキストファイルではなく、ヘッダーが含まれていることからELF
明らかです。
つまり、これを変更するには、そのソースコード(コンピュータで利用できず、場合によってはまったく公開されない可能性があります)を見つけて変更し、バイナリ実行可能ファイルを再コンパイルする必要があります。
これを行う方法は、プログラムをどこで取得したのか、ソースコードが書かれたプログラミング言語(バイナリ出力のライブラリ名とパスで判断すると、おそらくMPIを使用するFortran)とビルドシステムによって異なります。 。
これを行うには、実行可能ファイルを再構築するために、システムに1つ以上の追加のソフトウェアとソースで使用されている可能性があるすべての依存関係(ライブラリとヘッダ)をインストールする必要があります。
答え2
元のソースコードがなく、失われた場合は、実行可能ファイルをデコンパイル(リバースエンジニアリング)することもできます。これは、アセンブラやCコード、おそらくFortranのようなものを提供します。
ただし、ソースソースコードは取得できず、ソースコードと同じバイナリでコンパイルされる簡単なガイドラインを含むいくつかの基本コードのみを取得できます。
これを理解し、変更したい問題を解決するには、多くの研究が必要になる場合があります。幅広いリファクタリング、名前変更、および抽出機能を使用して、将来の開発や他のプラットフォームへの移植に使用できるソースコードを入手することもできます。