যাচাই করুন যে প্রদত্ত উত্স কোড থেকে একটি APK তৈরি করা হয়েছে


10

একই অ্যাপের জন্য আমার কাছে রয়েছে:

  • একটি অ্যাপ স্টোর থেকে একটি APK ,
  • একই সংস্করণে উত্স কোড বলে দাবি করা হচ্ছে । একটি দুর্দান্ত স্বাভাবিক গ্রেডল বিল্ড স্ক্রিপ্ট এবং কাঠামো সহ।

আমি যাচাই করতে চাই যে APKটি সত্যই সেই উত্স কোড থেকে তৈরি হয়েছিল কিনা or
কিভাবে তা যাচাই করবেন?

মন্তব্য:

  • এপিপি অবরুদ্ধ নয়।
  • কারও স্বাক্ষর বিশ্বাস করার কোনও কারণ আমার নেই। আমি কেবল উত্স কোডটিতে বিশ্বাস করি।
  • আমি ইতিমধ্যে নিজের জন্য অ্যাপটি তৈরি করেছি, তবে এখন আমি জানতে চাই যে এপিপিটি ঠিক আছে কি না।
  • সাধারণত লিনাক্স কমান্ড-লাইন সরঞ্জামের সাথে তবে কোনও সরঞ্জাম ঠিক আছে।

2
আমি এটি চেষ্টা করে দেখিনি, তবে আপনি এ উদ্দেশ্যে অপট্টোলটি ব্যবহার করতে সক্ষম হবেন : উভয় .apkফাইলের বিপরীত প্রকৌশলী , তারপরে ফলাফলের ডিরেক্টরিগুলির বিরুদ্ধে পৃথক চালান। কেবলমাত্র তফাত হ'ল স্বাক্ষর হওয়া উচিত (যা সুস্পষ্ট কারণে মেলে না)। এটি সম্পর্কে চিন্তা করা: কেবল .apkফাইলগুলি আনজিপ করা এবং বাইনারি ডিফ করা একই কাজ করা উচিত। উভয় অবশ্যই প্রথম স্থান সংকলন করার সময় একই গ্রন্থাগার সংস্করণ ইত্যাদি ব্যবহার করা প্রয়োজন :)
Izzy

@ আইজি: " একই লাইব্রেরি সংস্করণ ": এপিআই সংস্করণ গ্রেডল স্ক্রিপ্টে ম্যানিফেস্ট এবং লাইব্রেরি সংস্করণে রচিত, যাতে অংশটি ঠিকঠাক হওয়া উচিত, আমার ধারণা। ফাইল / ফোল্ডারগুলির একটি তালিকা যা উপেক্ষা করা যায় সেটিকে দুর্দান্ত উত্তর দেওয়া হবে (আসল কমান্ড লাইনের জন্য বোনাস)।
নিকোলাস রাউল

1
আমি ঘরে বসে যদি আমার কম্পিউটারে থাকতাম, তবে আমি বর্তমানে এটি করতে পারি না। তবে এটি একটি "সম্মানজনক উত্তর" হওয়ার জন্য, আমাকে প্রথমে এটি চেষ্টা করার দরকার ছিল :) যদি আমি ভুলে যাই (এবং অন্য কেউ আমার আগে এটি করেনি) তবে আমাকে অন্য একটি পিং (উদাহরণস্বরূপ আড্ডায়) প্রেরণ করতে দ্বিধা বোধ করবেন 8..10h :)
Izzy

@ ইজজি diffপদ্ধতিটি খুব ঝরঝরে মনে হচ্ছে ... তবে অ্যাপ স্টোরের লোকেরা এপিএলটি সংকলনের সময় অবিচ্ছিন্ন করে ফেললে কী হবে?
গ্রিমোয়ার

আইএমএইচও যেখানে অপট্টোল খেলতে আসে। আপনি কি লিঙ্কটি পরীক্ষা করেছেন? এছাড়াও এটি ব্যবহার করে এমন LibRadar দেখুন । এএফআইএআর এটি ডি-ওফফেস্কেটিংয়ে সহায়তা করে (কিছু অবশ্যই আবশ্যক, বা লিবিডারকে এই লাইব্রেরিগুলি সনাক্ত করতে একটি কঠিন কাজ করতে হবে)।
ইজি

উত্তর:


2

আপনি কেবল পুনরুত্পাদনযোগ্য বিল্ডগুলি দিয়ে এটি করতে পারেন :

"যদি একটি উত্স পুনরায় উত্পাদনযোগ্য হয় যদি একই উত্স কোড দেওয়া হয়, পরিবেশ তৈরি করা হয় এবং নির্দেশাবলী তৈরি করা হয়, যে কোনও পক্ষ সমস্ত নির্দিষ্ট নিদর্শনগুলির বিট-বিট অভিন্ন অনুলিপিগুলি পুনরায় তৈরি করতে পারে।"

সুতরাং অ্যাপ্লিকেশন বিকাশকারী বা অ্যাপ স্টোরটিকে কাজ করার জন্য বোর্ডে থাকা দরকার।
অন্যথায় আপনার একমাত্র বিকল্প এটি নিজেই তৈরি করা।

বর্তমানে এটি করেন এমন বিকাশকারীর একটি উদাহরণ হ'ল ওপেন হুইপার সিস্টেমগুলি: https://github.com/WhisperSystems/Signal-Android/wiki/Rrodroducible- বিল্ডস


খুব আকর্ষণীয়! সুতরাং, আপনি কি নিশ্চিত যে বিকাশকারী বোর্ডে না থাকলে তুলনা করা যায় না? দুর্ভাগ্যক্রমে (তবে বোধগম্য) বেশিরভাগ ওপেন সোর্স অ্যাপ্লিকেশনগুলি বিল্ডগুলির জন্য ডকার বা অনুরূপ ব্যবহার করে না, রক্ষণাবেক্ষণকারী যে কোনও সিস্টেমে চালিত হওয়ার জন্য এগুলি কেবল নির্মিত।
নিকোলাস রাউল

বিকাশকারী হতে হবে না, যতক্ষণ কেউ উত্স থেকে অ্যাপ্লিকেশন তৈরি করে ততক্ষণ তাদের বিল্ড পরিবেশটি ঠিকঠাকভাবে তৈরি করা সম্ভব করে তোলে। নির্ভরশীলতাগুলি এই জাতীয় বিল্ডগুলি সেট আপ করার সময় একটি বিশাল ব্যথা হতে পারে।
ডেডাব্লু

"তাদের বিল্ড পরিবেশ ঠিকঠাক তৈরি করুন": অনুমান করা কি সম্ভব? উদাহরণস্বরূপ, যদি কোনও কারণে ম্যাক বা লিনাক্সে বিল্ডিং একটি পৃথক এপিপি তৈরি করে তবে আমি কী অনুমান করতে পারি যে অ্যাপ স্টোরের APKটি ম্যাক বা লিনাক্সে নির্মিত হয়েছে কিনা?
নিকোলাস রাউল

এটি অনুমান করা এবং অর্থপূর্ণ যে ফলাফল পাওয়া সম্ভব নয়। অবশেষে এটি বাস্তবায়ন করা সহজ হয়ে যাবে এবং আপনি এটি আরও বেশি করে ওপেন সোর্স প্রকল্পগুলি করতে দেখবেন।
ডেডাব্লু 15'17

1

জাভা এবং এপিএস সম্পর্কে একটি দুর্দান্ত বিষয় আপনি জাভা উত্স কোডে APK কে সম্পূর্ণরূপে বিঘ্নিত করতে পারেন।

যাইহোক, ফলাফল উত্স কোডটি অভিন্ন হওয়ার গ্যারান্টিযুক্ত নয়।

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

ডিকম্পাইল করতে, ডেক্স 2জার এবং জেডি-গুই ব্যবহার করুন ।

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


যদি আমি সঠিকভাবে বুঝতে পারি তবে আপনার পদ্ধতিটি হল সোর্স কোডের সংগ্রহস্থলের সর্বশেষ পরিবর্তনটি কী তা পরীক্ষা করে দেখুন, তারপরে APK কে বিভক্ত করুন এবং ম্যানুয়ালি পরীক্ষা করে দেখুন যে সর্বশেষ পরিবর্তনটিও পঁচানো কোডটিতে পাওয়া যায়, তাই না? আকর্ষণীয় পদ্ধতির, তবে এটি আমাকে বলবে না যে কোনও কল-হোম বা এমবেডেড বিজ্ঞাপনটি APK সংস্করণে যুক্ত করা হয়েছে, তাই না?
নিকোলাস রাউল

1
এটি অফিসে আমি একটি উত্স পুনর্বিবেচনার সাথে অজানা এপিএলের সাথে মেলে যাবার চেষ্টা করেছি এবং যা আপনি যদি জানেন যে আপনি বিকাশকারীদের বিশ্বাস করতে পারেন তবে এটি যথেষ্ট ভাল। তবে আপনি যেমনটি বলেছেন, অবিশ্বস্ত দলটির পক্ষে কিছু ছিটিয়ে থাকা সম্ভবত এখনও সম্ভব I আমি আশা করছি যে কেউ আরও সুস্পষ্ট উত্তর দেবে, আমার পক্ষেও এটি কার্যকর হবে।
মার্ক অধ্যায়

কীভাবে আপনি নিজেই APK এ উত্সটি সংকলন করবেন, তারপরে এটিকে আবার সোর্স কোডে ছড়িয়ে দিয়ে প্লে স্টোর এপিপি থেকে সংযোগকারী উত্সের সাথে তুলনা করবেন? কেউ কি এই চেষ্টা করেছেন?
সের্গেই বেলোজোরোভ

1
@ সার্জিবেলোজারোভ দুঃখিত আমি এর উত্তর দিতে পারছি না, আমি আর অ্যান্ড্রয়েডের সাথে সত্যিই আর কাজ করি না, তবে এটি খুব ভাল ধারণা বলে মনে হচ্ছে।
চিচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.