"এই ইউপিএক্স সংকুচিত বাইনারিটিতে একটি অবৈধ মাচ-ও হেডার রয়েছে এবং এটি লোড করা যায় না।"


10

আমি ম্যাকস সিয়েরায় একটি পুরানো অ্যাপ্লিকেশন চালু করার চেষ্টা করছি। এটি এল ক্যাপিটেনে দুর্দান্ত কাজ করেছে, তবে সিয়েরার আপডেটের পরে ত্রুটি সহ এটি চালু হওয়ার সাথে সাথে ক্র্যাশ হয়ে গেছে…

এই ইউপিএক্স সংক্রামিত বাইনারিটিতে একটি অবৈধ মাচ-ও হেডার রয়েছে এবং এটি লোড করা যায় না।

এল ক্যাপ্টিনে হোমব্রু ব্যবহার করে, আমি ইউপিএক্স ইনস্টল করেছি এবং বাইনারিটি সঙ্কুচিত করার চেষ্টা করার জন্য এটি ব্যবহার করেছি, তবে এটি আমাকে বলে যে বাইনারি প্রথম স্থানে সংকুচিত হয় না।

$ upx -d /tmp/Run.app/Contents/MacOS/Run
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2013
UPX 3.91        Markus Oberhumer, Laszlo Molnar & John Reiser   Sep 30th 2013

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
upx: /tmp/Run.app/Contents/MacOS/Run: NotPackedException: not packed by UPX

Unpacked 0 files.

সিয়েরায় অ্যাপটি খোলার সময় এটিই ক্রাশ লগ।

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGKILL)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    EXEC, [0xc] This UPX compressed binary contains an invalid Mach-O header and cannot be loaded.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib          0x00007fffcffeabb2 __posix_spawn + 10
1   libsystem_kernel.dylib          0x00007fffcffe5ef2 posix_spawn + 386
2   xpcproxy                        0x000000010dbb2d75 0x10dbb0000 + 11637
3   xpcproxy                        0x000000010dbb3992 0x10dbb0000 + 14738
4   libdyld.dylib                   0x00007fffcfebc255 start + 1

সিয়েরায় এই অ্যাপটিটি কীভাবে খুলতে পারি?


1
আমার খুব একই সমস্যা আছে।
ƃıoƃı

2
এখানে অ্যাপলের চিন্তাভাবনার দুর্ভাগ্যজনক অংশটি ধরে নিচ্ছে সবাই ইউপিএক্সকে একটি মানসম্পন্ন উপায়ে ব্যবহার করে। যেহেতু ইউপিএক্স একটি ওপেন সোর্স প্রকল্প এটি বিকাশকারীদের অনুসারে এটি বিশেষ উপায়ে পরিবর্তন করা যেতে পারে। ম্যাক অ্যাপ স্টোরের বাইরে অ্যাপ্লিকেশনগুলিকে বিতরণ করার অনুমতি দেওয়ার মতো জিনিস ছিল একবার once এই ধরনের উপর সীমাবদ্ধতা নির্ধারণ করা নিষ্পাপ এবং অত্যধিক প্রশিক্ষণ, তবে, এটি স্পষ্ট হয়ে উঠেছে যে ধারণাটি আপাতদৃষ্টিতে আপডেটের পরে আপডেটটি মুছে ফেলছে।
l'L'l

উত্তর:


9

সংশোধিত উত্তর:

ট্রেসগুলি গোপন করার জন্য জলদস্যুরা সংকোচিত বাইনারি থেকে ইউপিএক্স চিহ্নিতকারীকে শূন্য করে দেয়, তাই ম্যাকোস সিয়েরার পক্ষে বাইনারিটি সংক্ষেপিত করা সম্ভব নয়। (এটি দিয়ে চেষ্টা করুন: hexdump -C YourApp.app/Contents/MacOS/YourApp | grep -C 1 UPXএবং দেখুন, সম্ভবত কোনও আউটপুট নেই))

তবে ইউপিএক্সের জেরাইজার চ্যালেঞ্জটি গ্রহণ করেছেন এবং সংকুচিত কোডের জন্য আরও দৃ rob় অনুসন্ধানের প্রয়োগের সাথে এই সমস্যাটির সমাধান করেছেন। এক্স 3 এক্সিকিউটেবলগুলি সংক্ষেপিত করার সাথে সাথে v3.92 এই অ্যাপ্লিকেশনগুলিকে আবার চলমান করা সম্ভব হবে upx -d YourApp.app/Contents/MacOS/YourApp


এটি অ্যাপলের প্রকৃতপক্ষে ঠিক করা উচিত, কারণ তারা স্পষ্টতই কোনও কারণ ছাড়াই যা কাজ করেছিল তা ভঙ্গ করেছে।
l'L'l

কেউ বাইনারি সংক্ষেপের পরে (সম্ভবত সম্ভবত প্রশ্নযুক্ত সামগ্রী সহ) হস্তক্ষেপ করেছিলেন যাতে সিয়েরা এবং অ্যাপল এ আর শুরু না করে এটি ঠিক করা উচিত? আচ্ছা হ্যাঁ, একেবারে ঠিক ... আপনি দয়া করে তাদের বলুন। :)
RyuX51

আরে, মেডডলিং হ'ল কম্পিউটিংয়ের ভিত্তি ... হস্তক্ষেপ না করে আমরা কী পেয়েছি? : P
L'মধ্যে L'ঠ

সবকিছু নিয়ে হস্তক্ষেপে নির্দ্বিধায়। তবে আপনি কেবল অ্যাপলকেই সমস্ত কিছু দোষ দিতে পারবেন না (যদিও সময়ে সময়ে এটি করার জন্য এটি সত্যই আবেদনময় হয়ে ওঠে)।
RyuX51

হ্যাঁ এটি একটি দুর্দান্ত বিষয়, এবং আমি বুঝতে পেরেছি আপনি কী বলছেন তবে যাইহোক, এখন কেউ কী জিজ্ঞাসা করতে পারে বাধাজনক আচরণের পিছনে যুক্তিটি কী। এটি প্রত্যেকের অনেক সময় নষ্ট করা (কিছু ব্যয় করে তাদের নিজস্ব সহ) ব্যতীত প্রক্রিয়াটিতে অনেক বেশি সফলতা অর্জনের পক্ষে অত্যন্ত সম্ভাবনা নেই।
'

4

3.92-বিটা রিভিশন 3 সিয়েরায় কাজ করে এবং i386 এর জন্য কাজ করে!

https://www.DPboxbox.com/s/x765t3i42p7hr8b/upx.out?dl=0 এখন I386-র জন্যও কাজ করে।

jithiser on github.com/upx # 4 মন্তব্য

৩.৯২ সিয়েরায় বাইনারি সংকোচনের পক্ষে সমর্থন করে যেগুলি সিয়েরায় চালানো যেতে পারে এবং সিয়েরায় পচনশীল বাইনারিগুলিকে সমর্থন করে। ৩.৯২-বিটাও ডিকম্প্রেসিং বাইনারিগুলিকে সমর্থন করে যা সংকেতের পরে যেমন কোনও কোড স্বাক্ষরের সাথে সংশোধন করা হয়েছে।

-dবিকল্পটি ব্যবহার করে অ্যাপ্লিকেশনটির বাইনারি সঙ্কোচন করা দুর্দান্ত কাজ করে!

$ chmod +x upx.out 
$ ./upx.out -d /tmp/Run.app/Contents/MacOS/Run
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2016
UPX 3.92-BETA   Markus Oberhumer, Laszlo Molnar & John Reiser   Sep 22nd 2016

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
     57444 <-     24576   42.78%   macho/i386    Run

Unpacked 1 file.

পুনরায়: "অ্যাপ্লিকেশন বাইনারি এ এটি চালান এবং এটি কাজ করে!", এর মধ্যে কি প্যাকড বাইনারিগুলি অন্তর্ভুক্ত রয়েছে - প্যাকড বাইনারিগুলি এখন যেমন চালু হয় বা আমরা চালানোর প্রত্যাশিত সমস্ত জিনিসই আনপ্যাক করতে পারি?
l'L'l

@ l'L'l আমি কী বলতে চাইছি তা সম্পর্কে পুরোপুরি নিশ্চিত নই - 3.92 এর পূর্বে upx দিয়ে সংকুচিত বাইনারিগুলির -d pathএকবারে 3.92-BETAr3 বা তার পরে ব্যবহার করে ডিকম্প্রেসিং করা দরকার যাতে সেগুলি চালানো যায়।
grg

আমি যা জিজ্ঞাসা করছি তা হল আপনি উল্লেখ করা সর্বশেষ বিটা ব্যবহার করে এখনই একটি সংকুচিত বাইনারি চালু করতে পারেন।
l'L'l

@ l'L'l দুঃখিত, আমি ঠিক অনুসরণ করছি না, আমি মনে করি আপনার প্রশ্নের উত্তর: হ্যাঁ তবে আপনাকে প্রথমে সেগুলি সঙ্কুচিত করতে হবে। ইউপিএক্সের এই নতুন সংস্করণটি ব্যবহার করে একবার সংক্ষেপিত হয়ে গেলে সেগুলি চালানো যেতে পারে, বা এই নতুন সংস্করণটি ব্যবহার করে আবার সংক্ষেপিত হতে পারে এবং সংক্ষেপে এখনও চালিত হতে পারে।
গ্রিগ

হ্যাঁ, আমি এটিই জিজ্ঞাসা করছিলাম, যদিও কিছু প্যাক করা (সর্বশেষ বিটা সহ) চালানোর চেষ্টা করার সময় অ্যাপটি ক্র্যাশ হয়েছিল (10.11.6)। আমি নিশ্চিত না যে আপনি কিছু প্যাক করে চালানোর চেষ্টা করেছেন কিনা, তবে মনে হচ্ছে সেখানে এখনও কিছু সমস্যা আছে।
l'l'l


1

আমি আপনার কোডটি বিশেষত সনাক্ত করতে পারি না যদিও এটি একটি নতুন ওএস রিলিজ (লিগ্যাসি সফ্টওয়্যার সামঞ্জস্য) সহ একটি সাধারণ সমস্যা।

  • প্রথম পদক্ষেপ, বিকাশকারীদের ওয়েবসাইটটি সিয়েরার জন্য তারা কীভাবে প্যাচ করবে তা একটি ইঙ্গিতের জন্য দেখুন। তারা ইতিমধ্যে একটি বিটা প্যাচ পোস্ট করেছে যা সফ্টওয়্যার আপডেটের মাধ্যমে পাওয়া যায় না।

  • তাদের সরাসরি জিজ্ঞাসা করে দেবকে ইমেল প্রেরণ করুন। এটি একাধিক প্ল্যাটফর্মে একাধিক অ্যাপ্লিকেশন থাকলে বিশেষত তাদের ধরতে কিছুটা সময় নিতে পারে।

  • দ্বৈত বুট ম্যাক থাকার কথা বিবেচনা করুন। আমি একটি নতুন ওএস ইনস্টলেশনের পরে অন্য ড্রাইভে (বা বিভাজন) সাধারণত আমার বর্তমান সিস্টেমের ক্লোন রাখি, তারপরে আমি দ্রুত পুনরায় বুট করতে এবং সফ্টওয়্যারটি ব্যবহার চালিয়ে যেতে পারি। আমি কেবল এই সমর্থনের জন্য এই দিনগুলিতে আসলে একটি উত্তরাধিকারী ম্যাক রাখি 10.6 এবং 10.8 চলছে।

  • একটি ভার্চুয়াল মেশিন বিবেচনা করুন। আপনি ওএসএক্সে একটি এমুলেটর ব্যবহার করতে পারেন এবং আপনার পছন্দ মতো ওএস সংস্করণ ইনস্টল করতে পারেন (উইন্ডোজ সহ)। যদিও সিয়েরার জন্য এমুলেটরগুলি এখনও মুক্তি পেয়েছে কিনা তা নিশ্চিত নয়।


1

ইস্যুটি ইউপিএক্স-এর উপায় হিসাবে ডারউইন 16 / ওএস এক্স সিয়েরা দ্বারা ভাঙা হিসাবে রিপোর্ট করা হয়েছে # 4

দেখে মনে হচ্ছে upx 3.92 এই সমস্যাটির সমাধান করবে।


1
এটি সম্ভবত সম্ভব হবে না, কারণ এক্সিকিউটেবল সম্ভবত ইউপিএক্স দ্বারা প্যাক করা হয়নি।
RyuX51

কিন্তু ত্রুটি বার্তা তাই ইঙ্গিত করে। শংসাপত্র ইত্যাদির সাথে এমন জিনিসও রয়েছে যা সংক্ষেপণের পথে আসে।
ƃıoƃı

2
এটি করে তবে এটি অবশ্যই ভুল wrong হ্যাক্সডাম্প-সি আপনার অ্যাপ.এপ / সামগ্রী / ম্যাকোস / ইয়োর অ্যাপ | চালান Run গ্রেপ-সি 1 ইউপিএক্স এবং নিজেই দেখুন। শংসাপত্রগুলির জন্য: আপনার লিঙ্কটি পুরোপুরি পড়ুন এবং আপনি দেখতে পাবেন যে বাইনারিটি স্বাক্ষরিত হয়েছে বা ডিকম্প্রেশনের সময় সাইন ইন করা থাকলে কোনও পার্থক্য নেই।
RyuX51
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.