Professional Documents
Culture Documents
Emmutaler: ﺶﻳﻮﺸﺗ ﻞﻤﺤﻣ ﺪﻴﻬﻤﺘﻟا iOS
Emmutaler: ﺶﻳﻮﺸﺗ ﻞﻤﺤﻣ ﺪﻴﻬﻤﺘﻟا iOS
ﺘﻤﻬﻴﺪ iOS
ﺗﺸﻮﻳ ﺶ ﻣﺤﻤﻞ اﻟ
Emmutaler:
ﺑﻜﺎﻟﻮرﻳﻮسرﺳﺎﻟ ﺔ
ﺒﺮ 2021
ﺘﻤﺒ
ﻣﺎرس 2021إﱃﺳ
Machine Translated by Google
ﺧﻼﺻ ﺔ
أﻧﺎ
Machine Translated by Google
ﺗﻘﺪﻳﺮ
ﺷﻜﺮ و
ﺒﺎ ت
ﺛﺗﻴ ﺐ ﻣﻌﻴﻦ ،أﺷﻜﺮ ﻟﻮﻛﺎس ﻋﲆ إ
ﺑﺪونﺗﺮﺒ ﺔ.
ﺘﻰ ﻓ ﻲ اﻷوﻗﺎ ت اﻟﻌﺼﻴ
ﺋﻤﺎ ﻫﻨﺎك وداﻋﻤﻴﻦ ،ﺣ
ﺑﺸﻜﺮ ﺧﺎص إﱃ أﺻﺪﻗﺎﺋ ﻲ وزﻣﻼﺋ ﻲ ﻓ ﻲ اﻟ ﺴﻜﻦ اﻟﻤﻮﺟﻮدﻳﻦ دا ًﺗﻮﺟﻪ
أ
ﺑ ﺔ اﻟﻨﻮاة اﻟﻌﺎﻣ ﺔ .أﺷﻜﺮ ﻟﻮﻛﺎ ،ﻷﻧﻪ
ﺒﻖ اﻟﻤﻄﺎﻃ ﻲ QEMUوﻏﺮا
ﺗ ﻲ ﻓ ﻲ اﻟ
ﺘﺮاح وأﻃﺮوﺣ ﺔ ودﻋﻢ ﻛﻞ ﻣﺎ أﻓﻌﻠﻪ .أﺷﻜﺮ Matteo ،ﻟﻤ ﺴﺎﻋﺪ
ﺘﺮوﻧ ﻲ واﻗ
ﺑﺮﻳﺪ إﻟﻜﺗﻪ ﻟﻜﻞ رﺳﺎﻟ ﺔ
ﻗﺮاء
ﺘﻌﻠﻘ ﺔ
ﺘﺮدد اﻷﻓﻜﺎر اﻟﻤ
ﺑﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻷﺷﻴﺎء اﻟﺼﻐﻴﺮة .أﺷﻜﺮ ﻧﻮح ﻋﲆ اﻟ ﺴﻤﺎح ﻟ ﻲﺘﺮاح اﻷوﻟ ﻲ ،
ﺗ ﻲ ﻓ ﻲ اﻻﻗ
ﺘﺤﺪ ث ﻋﻦ أي ﺷ ﻲء وﻣ ﺴﺎﻋﺪ
ﺑﺎﻟﺳﻤﺢ ﻟ ﻲ
ﺘﻜﺎر اﺳﻢ "Emmutaler" ،و ]ParmeSAN [30ﻟﻺﻟﻬﺎم.
ﺑﺑﻴﺎن ﻋﲆ ا
ﺘﺎﺋﺞ .أﺷﻜﺮ ﻓﺎ
ﺗﻪ اﻟﻘﻴﻤ ﺔ ﻓ ﻲ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻨ ﺒﻴﻘﺎ ت اﻟﻜﻮﻣ ﺔ و USBوأ ً
ﻳﻀﺎﺗﻘﺪﻳﻢ ﻣﺪﺧﻼ ﺘﻄﺑ
ﺛﺎﻧﻴﺎ
Machine Translated by Google
ﺘﻮﻳﺎ ت
ﻣﺤ
1اﻟﻤﻘﺪﻣ ﺔ 1
1.1اﻟﺪاﻓﻊ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........ 1
ﺜﺎ
ﺛﺎﻟ
Machine Translated by Google
ﺘﻮﻳﺎ ت
ﻣﺤ ﺑﻌﺎ
را
ﺑ ﺖ.
ﺜﺎ
ﺘﺤﻠﻴﻞ اﻟ
ﺘﺨﺪام اﻟﺮﻣﻮز ﻣﻦ اﻟ
5.2.3اﺳ . . . . . . . . . . . . ........ 21
. 5.2.4
. . .Backtrace
ﺑﺮﻣﺰ. . . . . . . . . . . . . . . . . ........ 22
إﻧﺸﺎء. .
ﻣﺪﺧﻼ ت IMG4. . . 5.3
. . . . . . . . . . . . . . . . . . . ........ 23
إﻋﺪاد .اﻟ .
ﺘﺸﻮﻳ ﺶ. . . . . . . . . 5.4
. . . . . . . . . . . . . . . . . . . ........ 24
ﺒﺎ ت.
ﺜ5.4.1 AFL ++. . . . . . . . . . . . . . . . . .وﺿﻊ اﻟ ........ 24
ﺘﻘﺎطﺳﺮﻳﻊ ﻟﻠﺬاﻛﺮة.
5.6.2وﺣﺪة Kernelﻻﻟ . . . . . . ........ 27
. . . . . . USB.
ﺗﺸﻮﻳ.ﺶ. . .. . ... . .. . .
. 5.7
. . . . . . . . ........ 27
ﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ USBﻣﺨﺼﺺ. . . . . . . . . . . . . . . . . . . . . .
5.7.1 ........ 27
5.7.2ﻟﻠﺬﻋﺮ أو ﻋﺪم اﻟﺬﻋﺮ. . . . . . . . . . . . . . . . . . . ........ 29
ﻣﻠﻒ .
اﻹدﺧﺎل. ﺴﻴﻖ . .
ﺗﻨ . .
.5.7.3
. . . . . . . . . . . . . . . . ........ 29
ﺘﺸﻮﻳ ﺶ USB.
ﺑﺖ ﻟ
ﺜﺎ
5.7.4اﻟﻮﺿﻊ اﻟ . . . . . . . . . . . . . . ........ 30
ﺘﺸﻮﻳ ﺶ.
ﺗﺤ ﺴﻴﻨﺎ تﺳﺮﻋ ﺔ اﻟ
7.3 . . . . . . . . . . . . . . . . . . . . ........ 47
8.2 Fuzzing Whiteboxﻣﻦ Android Boot Loaders. . . . . . . . . . . . . ........ 48
ﺋﻴ ﺔ . .
ﻋﲆ ARM. ﺜﻨﺎ .
ﺑ.ﺔ اﻟ.إﻋﺎدة .اﻟﻜ.
ﺘﺎ . 8.3
. . . . . . . . . . . . . . ........ 49
9اﻟﺨﻼﺻ ﺔ 50
ﻓﻬﺮس 51
Machine Translated by Google
ﺘﻮﻳﺎ ت
ﻣﺤ ﻓﻲ
A.1. . . . . . . . . . . . . . . . . . . .اﻟ
ﺒﻴﺎﻧﺎ ت اﻟﻮﺻﻔﻴ ﺔ داﺧﻞ SecureROM. ........ أﻧﺎ
. . . . . . . . . . . . . . . . . . . .
ﺗﻨ ﺴﻴﻖ B.1 SET. . . . . . . . . . . ........ ﺑﻌﺎ
را
ﺑﻌﺪ اﻟﻤﻘﺎرﻧ ﺔ
ﺒﻞ و
Cأﻃﻮل ﻗ ﺑﻌﺎ
ﺳﺎ
ﺘﻐﻄﻴ ﺔ اﻟﻜﺎﻣﻠ ﺔ
د ﻣﻌﻠﻮﻣﺎ ت اﻟ اﻟﺤﺎدي ﻋﺸﺮ
Machine Translated by Google
اﻟﻔﺼﻞ 1
ﻣﻘﺪﻣ ﺔ
1.1اﻟﺪاﻓﻊ
ﺑﺮﻧﺎﻣﺞ ﻣﻮﺟﻮد ﻓ ﻲ أﺟﻬﺰة iPhone.ﻋﲆ ﺣﺪ ﻋﻠﻤﻨﺎ ،ﻓﺈن ﻫﺬهﺒﺎ راﺋﻌً ﺎ ﻟﻔﺼﻞ أي
ﺒً
ﺗﻒ اﻟﺬﻛﻴ ﺔﺗﻮﻓﺮﺳ
ﺑﺄﻣﺎن اﻟﻬﻮاﺘﻤﺎم
ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ أﻋﻼه ،ﻓﺈن اﻟﺰﻳﺎدة اﻷﺧﻴﺮة ﻓ ﻲ اﻻ ﻫ
ً
ﻫﺪﻓﺎ ﺘﻤﻬﻴﺪ
ﺋﻴ ﺴﻴﺎن ﻟﻜﻮن أداةﺗﺤﻤﻴﻞ اﻟ
ﺒﺎن ر
ﺒﺑﺸﻜﻞ ﻋﺎم أﺣﺪ ث ﺣﺎﻟ ﺔ ﻣﻦ اﻟﻐﻤﻮض ﻋﲆ ﻣﺤﻤﻞ إﻗﻼع iPhone.ﻫﻨﺎكﺳﺒﻖ
ﺘ ﻲﺗﻄ
اﻷﻃﺮوﺣ ﺔ ﻫ ﻲ اﻷوﱃ ﻣﻦ ﻧﻮﻋﻬﺎ اﻟ
ﺘﻨ ﺴﻴﻘﺎ ت اﻟﻤﻌﻘﺪة
ﺑﺸﻜﻞ ﺧﺎص ﻟﻸﺧﻄﺎء -ﻣﻦ اﻟﺘ ﻲﺗﻤﻴﻞ إﱃ أنﺗﻜﻮن ﻣﻌﺮﺿ ﺔ
ﺘﺤﻠﻴﻞ -واﻟ
ﺑﺎﻟﺘﻌﻠﻘ ﺔ
ﺒﺮﻣﺠﻴ ﺔ اﻟﻤ
ﺘﻌﻠﻴﻤﺎ ت اﻟ ﺘﺸﻮﻳ ﺶ .أوﻻ ً ،ﻫﻨﺎك اﻟﻜ
ﺜﻴﺮ ﻣﻦ اﻟ ﺟﻴﺪًا ﻟﻠ
ﺜﻞ رﺳﺎﺋﻞ USBأو ASN.1.
ﺘﻠﻔ ﺔ ،ﻣ
اﻟﻤﺨ
1
Machine Translated by Google
ﺘﺤﺪﻳﺎ ت
1.2اﻟ 2
ﺘﺤﺪﻳﺎ ت
1.2اﻟ
1.3اﻟﺤﻞ
ﺘﻤﻬﻴﺪ .إﺣﺪى
ﺘﺪﻋﺎء أﺟﺰاء ﻣﻌﻴﻨ ﺔ ﻣﻦ أداةﺗﺤﻤﻴﻞ اﻟ
ﺛﻨﺎﺋ ﻲ ﻋﺎديﻳﻤﻜﻨﻪ اﺳ
ﺘ ﻲﺗ ﺴﺎﻋﺪ ﻓ ﻲ إﻧﺸﺎء ﻧﻈﺎم Linux ELF
ﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻷدوا ت اﻟ
ﺣﻠﻨﺎ - emmutaler -ﻋ
ﺑﻔﻀﻞ اﻟﺠﻬﻮدﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﺑﺸﺮﻛ ﺔ Appleأو أﺟﻬﺰة ﻣﻔﻘﻮدة.ﺘﻌﺎﻣﻞ ﻣﻊ أيﺗﻔﺎﺻﻴﻞ ﺧﺎﺻ ﺔ
ﺑﺎﻟﺘ ﻲﺗ ﺴﻤﺢ ﻟﻨﺎ
ﺜﻨﺎﺋﻴ ﺔ اﻟ
ﺘﺼﺤﻴﺢ اﻟ
اﻷدوا ت اﻟﻤﻬﻤ ﺔ ،ﻫ ﻲ أداة اﻟ
ﺑﻮاﺳﻄ ﺔ Linux ELF.ﺘﺨﺪام اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﺟﺰاء
ﺘﺮداد ﻣﻌﻈﻢ اﻟﺮﻣﻮز وﻳﻤﻜﻦ اﺳ
ﺒﻴﺮة ،ﻳﻤﻜﻦ اﺳ
اﻟﻬﻨﺪﺳﻴ ﺔ اﻟﻌﻜ ﺴﻴ ﺔ اﻟﻜ
1.4ﻧﻈﺮة ﻋﺎﻣ ﺔ
ﺘﺮض.
ﺘﻬﺪﻳﺪ اﻟﻤﻔ
ﺗﺼﻤﻴﻢ emmutaler ،ﻳﻘﺪم اﻟﻔﺼﻞ 3ﻧﻤﻮذج اﻟ
ﺒﻞ أنﻳﻘﺪم اﻟﻔﺼﻞ 4
ﺘﺎﻟﻴ ﺔ .ﻗ
ﻳﻘﺪم اﻟﻔﺼﻞ 2اﻟﻤﻌﻠﻮﻣﺎ ت اﻷﺳﺎﺳﻴ ﺔ اﻟﻼزﻣ ﺔ ﻟﻔﻬﻢ اﻟﻔﺼﻮل اﻟ
اﻟﻔﺼﻞ 2
ﺧﻠﻔﻴ ﺔ
ﺘﻤﻬﻴﺪ
ﺘﻮي أﺣﺪ ث أﺟﻬﺰة ARM Macﻋﲆ ﻧﻔ ﺲ أداةﺗﺤﻤﻴﻞ اﻟ
ﺗﺤﺘﻰ ﻣﻌﻈﻢ OS1 [16].
ﺘﻤﻬﻴﺪ اﻟﺸﺎﺋﻌ ﺔ وﺣ
ﺒﺎ ﻓ ﻲ ﻧﻔ ﺲ أداةﺗﺤﻤﻴﻞ اﻟ
ﺗﻘﺮﻳ ً
ﺘﺮك ﺟﻤﻴﻊ أﺟﻬﺰة Apple
ﺗﺸ
ﺑﻌﺾﺗﻬﻢ ،ﻣﻊ
ﺘﻪ ﻣﻦ اﻵن ﻓﺼﺎﻋﺪًا ﺣﻮل أﺟﻬﺰة iPhone / iOSﻋﲆ ﻣﻌﻈﻢ أﺟﻬﺰ
ﺒﻖ أي ﺷ ﻲءﺗﻤ ﺖ ﻣﻨﺎﻗﺸ
ﺜﻞ أﺣﺪ ث أﺟﻬﺰة iPhone [18].ﻟﺬﻟﻚ ،ﻳﺠ ﺐ أنﻳﻨﻄ
ﻣ
ﺘﻼﻓﺎ ت.
اﻻﺧ
ﺗ ﺴﻠ ﺴﻞﺗﻤﻬﻴﺪ iOS
2.1
ﺘﻰ
ﺘﺤﺪﻳ ﺚ ،وﺣ
ﺘﺮداد أو اﻟ
ﺑﺪء ﻋﻤﻠﻴ ﺔ اﻻﺳ
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚﺗﺤﻤﻴﻞ kernelcache ،وﺘﻮي ﻋﲆ ﻣﻌﻈﻢ اﻟﻮﻇﺎﺋﻒ ،
ﺋﻴ ﺴ ﻲ ﻣﻦ ﻣﺤﻤﻞ اﻹﻗﻼع.ﻳﺤ
• iBootﻫﻮ اﻟﺠﺰء اﻟﺮ
ﺘﺸﺨﻴﺺ.
اﻟ
ﺘﺤﻤﻴﻞ
) • iBoot Single Stage (iBSSﻫﻮ إﺻﺪارُﻣﺠﺮد ﻣﻦ iBECو ﻫﻮ ﻣ ﺴﺆول ﻋﻦ اﻟ
ﻫﻮ -ﻫ ﻲ.
ﺘﻠﻒ.
ﺘ ﺴﻮﻳﻖ ﻗﺪﻳﺨ
1ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أن ﻗ ﺴﻢ اﻟ
ﺗ ﻲ اﻻﺳﻢ.
2ﻣﻦ أﻳﻦﻳﺄ
ﺛﻮان أﺧﺮى.
ٍ ﺘﻤﺮار ﻓ ﻲ اﻟﻀﻐﻂ ﻋﲆ زر ﺧﻔﺾ اﻟﺼﻮ ت ﻟﻤﺪة 5
ﺛﻢﺗﺤﺮﻳﺮ زر اﻟﻄﺎﻗ ﺔ واﻻﺳﺛﻮان ،
ٍ ﺜﺎل ،ﻓ ﻲ ﺟﻬﺎز iPhone X ،ﻋﻠﻴﻚ اﻟﻀﻐﻂ ﻋﲆ زري اﻟﻄﺎﻗ ﺔ وﺧﻔﺾ اﻟﺼﻮ ت ﻟﻤﺪة 5
ﺒﻴﻞ اﻟﻤ
3ﻋﲆﺳ
3
Machine Translated by Google
ﺘﺮداد
ﺘﺮﻗﻴ ﺔ واﻻﺳ
)• iBoot Epoch Change (iBECﻣ ﺴﺆول ﻋﻦﺗﻨﻔﻴﺬ اﻟ
اﻟﻌﻤﻠﻴﺎ ت.
ﺘﺸﻐﻴﻞ
ﺘﺤﻘﻖ واﻟ
ﺘﺤﻤﻴﻞ واﻟ
اﻟ DFU ﺘﺮﻗﻴ ﺔ
ﺘﺮداد /اﻟ
اﻻﺳ
ﻳﺠﺮي
iBSS iBEC
ﺒ ﺲ ﻣﻦ [16].
ﺘﺘﻤﻬﻴﺪ ﻟﺠﻬﺎز iPhone ،ﻣﻘ
ﺗ ﺴﻠ ﺴﻞ اﻟ
اﻟﺸﻜﻞ 2.1:
ﺘﻮي ﻣﻌﻈﻢ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﺗﺤﺒﻴﻘﺎ ت اﻟﻔﻌﻠﻴ ﺔ.
ﺘﻄﺜﺎلﺗﻨﻔﻴﺬ اﻟ
ﺒﻴﻞ اﻟﻤ
ﺘﻢ ﻋﲆﺳ
ﺋﻴ ﺴ ﻲ ﻓ ﻲ اﻟﺠﻬﺎز ،ﺣﻴ ﺚﻳ
ﺒﻴﻘﺎ ت )(APإﱃ اﻟﻤﻌﺎﻟﺞ اﻟﺮ
ﺘﻄﻳﺸﻴﺮ ﻣﻌﺎﻟﺞ اﻟ
ﺑﻴﻦ اﻟﻤﻬﺎم اﻷﺧﺮى ذا تﺘﺨﺪم ﻣﻦ
ﺑﻴﺎﻧﺎ ت اﻟﻤ ﺴﺘﺮك ﻣ ﺴﺆول ﻋﻦﺗﺸﻔﻴﺮ
ﺑـ Secure Enclave Processor (SEP) ،و ﻫﻮ ﻣﻌﺎﻟﺞ ﻣﺸاﻷﺟﻬﺰة ﻋﲆ ﻣﺎﻳ ﺴﻤﻰ
ﺑﺎﻷﻣﺎن.اﻟﺼﻠ ﺔ
ﺑﻞ ﻣﺤﻞ ﻣﻌﻠﻮﻣﺎ ت إﺻﺪار
ﺒﺎ ﻣﺎﻳﺤﻞ اﺳﻢﺗ ﺴﻮﻳﻖ APاﻟﻤﻘﺎ
ﺘﺼﻨﻴﻊ .ﻟﺬﻟﻚ ،ﻏﺎﻟ ً
ﺛﻨﺎء اﻟ
ﺘﻢ ﺣﺮﻗﻪ ﻓ ﻲ ﻧﻘﻄ ﺔ اﻟﻮﺻﻮل أ
ﺘﻢ ﻗﺮاءة SecureROMﻓﻘﻂ ،ﻳ
ﻧﻈ ﺮًاﻷﻧﻪﻳ
SecureROMاﻟﻤﻄﻮﻟ ﺔ.
ﺑﻴﻦ أﺳﻤﺎء APوإﺻﺪارا ت iPhone4و SecureROM.راﺟﻊ اﻟﺠﺪول 2.1ﻟﻼﻃﻼع ﻋﲆ اﻟﻤﺮاﺳﻼ ت
ﺗ ﺴﻮﻳﻖ iPhone AP /اﻻﺳﻢ اﻟﺪاﺧﻠ ﻲ SecureROMاﻹﺻﺪار T8015 iPhone XS A12 / T8020 iPhone 11 A13 / T8030 iPhone 12 A14 / T8101
A iBoot-3332.0.0.1.23
5 ISA iPhone 7 A10ARMv8.2- A ARMv8.3-
/ T8010 iPhone X A11A/
iBoot-2696.0.0.1.33 ARMv8.1-
iBoot-3865.0.0.4.7
ARMv8.4-A iBoot-5281.0.0.100.22 ARMv8.5-A
iBoot-4479.0.0.100.4
ﺘﻌﻠﻴﻤﺎ ت
ﺜﻮر ﻋﲆ اﻟ
ﺗﻢ اﻟﻌ
ﺜﻨﺎء kernelcache ،
ﺘﺑﺎﺳﺒﻴﺎﻧﺎ ت.
ﺒﺮﻣﺠﻴ ﺔ واﻟ ﺑ ًﻘﺎ ﻣﻦ ﻛﻞ ﻣﻦ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ ﺘﻜﻮن ﻛﻞ ﻣﺮﺣﻠ ﺔ ﻣﻦ اﻟﻤﺮاﺣﻞ اﻟﻤﺬﻛﻮرةﺳﺎ
ﺛﻨﺎﺋ ﻲ ،ﺗﺒﻴﻖ
ﺜﻞ أيﺗﻄ
ﻣ
ﺒﻴﺎﻧﺎ ت إﱃ
ﺑﻨﻘﻞ ﺟﺰء اﻟﺜﻨﺎﺋ ﻲ ﻧﻔ ﺴﻪ
ﺛﻢﻳﻘﻮم اﻟﺜﻨﺎﺋ ﻲ
ﺑﺪاﻳ ﺔ اﻟﻤﻠﻒ اﻟﺘﻨﻔﻴﺬ ﻓ ﻲ
ﺒﺪأ اﻟ
ﺘﺤﻤﻴﻞ ،ﻳ
ﺛﻨﺎﺋﻴ ﺔ واﺣﺪة ،ﺗ ﺴﻤﻰ ﺻﻮرة .ﻋﻨﺪ اﻟﺑﻴﺎﻧﺎ ت اﻟﻤﺮﺣﻠ ﺔ ﻣﻌً ﺎ ﻓ ﻲ ﻓﻘﺎﻋ ﺔ
ﺒﺮﻣﺠﻴ ﺔ و
اﻟ
ﺑﻞ ،ﻓﺈن
ﺜﻨﺎﺋ ﻲ .ﻓ ﻲ اﻟﻤﻘﺎ
ﺜﻞ ﻋﻤﻠﻴﺎ ت اﻟﻨﻘﻞ ،داﺧﻞ اﻟﻨﻈﺎم اﻟ
ﺑﻴﺎﻧﺎ ت وﺻﻔﻴ ﺔ ﻣﻌﻘﺪة ،ﻣﺜ ﺔ ،ﻻﺗﻮﺟﺪ
ﺘﺸﻐﻴﻞ اﻟﺤﺪﻳ
ﺟﺰء آﺧﺮ ﻣﻦ اﻟﺬاﻛﺮة .ﻋﲆ ﻋﻜ ﺲ اﻟﻌﺪﻳﺪ ﻣﻦ أﻧﻈﻤ ﺔ اﻟ
ﺒﻴﺎﻧﺎ ت اﻟﻮﺻﻔﻴ ﺔ.
ﺜﻞ ﻫﺬه اﻟ
kernelcacheﻫﻮ ﻣﻠﻒ Mach-Oﻋﺎديﻳﻀﻢ ﻣ
ﺘﺤﻘﻖ ﻣﻦ ﺻﺤ ﺔ
ﺘﻮي ﻋﲆ ﺟﻤﻴﻊ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻼزﻣ ﺔ ﻟﻠ
)• IMG4 Manifest (IM4Mﻳﺤ
اﻟﺤﻤﻮﻟ ﺔ.
ﺘﺮف
ﺘﻌﺎدة ﻣﺤ
ﺘﺤﻘﻖ ﻣﻦ اﺳ
ﺘﻮي ﻋﲆ ﻣﻌﻠﻮﻣﺎ ت إﺿﺎﻓﻴ ﺔ ﺿﺮورﻳ ﺔ ﻟﻠ
)• IMG4 Restore (IM4Rﻳﺤ
ﺘﻴﺎري 10.
ﺘﺎﻟ ﻲ ﻓﻬﻮ اﺧ
ﺑﺎﻟ
ﺘﻌﺎدة و
ﺑ ًﺎ ﻓﻘﻂ ﻋﻨﺪ إﺟﺮاء اﺳ
ﺒ ﺔ.ﻳﻜﻮن ﻣﻄﻠﻮ
ﺿﺮﻳ
ﺘﻢﺗﻀﻤﻴﻨﻪ.
ﺘﻢ ﺣﺮق ﺟﺬر اﻟ ﺴﻠ ﺴﻠ ﺔ ﻓ ﻲ ﻣﺤﻤﻞ اﻹﻗﻼع وﻻﻳ
ﺗﺸﻜﻞﺳﻠ ﺴﻠ ﺔ ﺷﻬﺎدا ت .ﻋﲆ وﺟﻪ اﻟﺨﺼﻮص ،ﻳ
ﺑﺸﻬﺎدا ت X.509•ﻗﺎﺋﻤ ﺔ
ﺘﻢ
ﺘﻰﻳ
ﺘﻮﻓﺮة ﻟﻠﺼﻮرة ﺣ ﺒﻴﺌ ﺔ أ ً
ﻳﻀﺎ ﻣﻊ ﺟﻤﻴﻊ اﻟﺨﺼﺎﺋﺺ اﻟﻤ ﺑﻖ اﻟ
ﺘﻄﺎ
ﺘﻮﻗﻴﻊ اﻟﺼﺎﻟﺢ ،ﻳﺠ ﺐ أنﺗ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ اﻟﺘﺨﺪام اﻟﺼﻮرة.
ﺘﻘﻴﻴﺪ اﺳ
ﺒﻴﺎن ﺧﺼﺎﺋﺺ ﻟ
ﺗﺤﺪد ﺧﺼﺎﺋﺺ اﻟ
ﺑﻮاﺳﻄ ﺔﺑﻌﻀﻬﺎﺘﻢﺗﺠﺎوز ً
ﺒﺎﺷﺮة ،وﻟﻜﻦ ﻗﺪﻳ
ﺘﺮداد ﻣﻌﻈﻤﻬﺎ ﻣﻦ اﻟﺼﻤﺎﻣﺎ ت اﻟﻤﻮﺟﻮدة ﻓ ﻲ اﻟﺠﻬﺎز ﻣ
ﺘﻢ اﺳ
ﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ اﻟﺨﺼﺎﺋﺺ ،ﻳ
ﺒﻴﺌ ﺔ ﻋ
ﺒﺎر ﻫﺎ ﺻﺎﻟﺤ ﺔ .اﻟ
ﺘاﻋ
ﺒﺮاﻣﺞ .أ ﻫﻢ اﻟﺨﺼﺎﺋﺺ
اﻟ
ﻧﻜﻮن:
ﺒ ًﻘﺎ.
ﺘﺎج ووﺿﻊ اﻷﻣﺎن ﻋﲆ اﻟﻨﺤﻮ اﻟﻤﻮﺿﺢ ﻣ ﺴ
ﺘﻢﺗﺤﺪﻳﺪ ﺣﺎﻟ ﺔ اﻹﻧ
•ﻳ
ﺘﺎﻟ ﻲ:
ﺘﺤﻘﻖ ﻣﻦ ﻣﻠﻒ IMG4ﻋﲆ اﻟﻨﺤﻮ اﻟ
ﺘﻢ اﻟ
ﻳ
ﺒﻴﺌ ﺔ.
ﺑﻖ اﻟﺨﺼﺎﺋﺺ ﻣﻦ MANPﻣﻊ اﻟﺨﺼﺎﺋﺺ اﻟﻤﻜﺎﻓﺌ ﺔ ﻓ ﻲ اﻟ
ﺗﺤﻘﻖ ﻣﻦﺗﻄﺎ
3.
ﺋﻴ ﺴﻴ ﺔ
Keybag :: = SEQUENCE { type INTEGER ، IVﺳﻠ ﺴﻠ ﺔ OCTET ،ﺳﻠ ﺴﻠ ﺔ OCTETاﻟﺮ
}
ﺘﺮﻣﻴﺰ ﻗﻴﻤ ﺔ
ﺑﺘﺸﻔﻴﺮ اﻟﻤﻤﻴﺰة ) (DERﻫ ﻲﺗﺮﻣﻴﺰ ﻣﻦ ﻧﻮع -ﻃﻮل -ﻗﻴﻤ ﺔ (TLV) ،ﻳﻘﻮم
ﺘ ﺴﻠ ﺴﻞ ASN.1.ﻗﻮاﻋﺪ اﻟ
ﺘﺸﻔﻴﺮ اﻟﻤﻤﻴﺰة ﻟ
ﺑﻘﻮاﻋﺪ اﻟﺘﺨﺪم Appleﻣﺎﻳ ﺴﻤﻰ
ﺗﺴ
ﺑﺔ
ﺒ ﺐ ﺻﻌﻮ
ﺘﻮﺿﻴﺢﺳ ﺛﻢ اﻟﻄﻮل وأﺧﻴﺮا ً اﻟ
ﺒﻴﺎﻧﺎ ت .ﻟ ﺘﺸﻔﻴﺮ اﻟﻨﻮع ،
ﺑﺗﻘﻮم DERأوﻻ ً
ﺒﺎﻳ ﺖ اﻟﻤﻄﻠﻮ ب .ﻟﻜﻞ ﻗﻴﻤ ﺔ ASN.1 ،
ﺒ ﺲ ﻓﻴﻪ ،ﻣﻊﺗﻘﻠﻴﻞ ﻣﻘﺪار اﻟ
ﺑﺸﻜﻞ ﻻ ﻟ
ASN.1
ﺘﺤﻮﻳﺮ ASN.1 ،ﻧﻘﺪم وﺻ ًﻔﺎ ﻣﻮﺟ ًﺰا ﻟﻌﻤﻠﻴ ﺔ اﻟ
ﺘﺸﻔﻴﺮ: ﺑﻗﻴﺎم ﻣﺼﻬﺮ
ﺘﻐﻴﺮ اﻟﻄﻮل.
ﺘﺨﺪام ﻣﺨﻄﻂﺗﺸﻔﻴﺮ ﻣ
ﺑﺎﺳﺑﻪ -ﻣﺸﻔﺮﺑﺎﻷﺣﺮى رﻗﻢ اﻟﻮﺳﻢ اﻟﺨﺎص•اﻟﻨﻮع -أو
ﺘﻢﺗﻌﻴﻴﻦ
ﺑﺎﻳ ﺖ واﺣﺪ إﺿﺎﻓ ﻲ ﻋﲆ اﻷﻗﻞ ،أو ﻣﺎ ﻫﻮ ﺿﺮوري.ﻳﺘﺨﺪم
ﺒﺮ ﻣﻦ 30 ،اﺳ
ﺑﺎﻳ ﺖ واﺣﺪ .اﻟﻌﻼﻣﺎ ت اﻷﻛﺘﻢﺗﺮﻣﻴﺰ ﻫﺎ ﻋﲆ أﻧﻬﺎ
أي ﻋﻼﻣ ﺔ أﺻﻐﺮ أوﺗ ﺴﺎوي 30ﻳ
ﺑﺎﻳ ﺖ ،واﻟﺬيﺗﻢﺗﻌﻴﻴﻨﻪ ﻋﲆ 0.ﺘﻰ آﺧﺮ
ﺘﺎ ت اﻟﻼﺣﻘ ﺔ ﻋﲆ 1 ،ﺣ
ﺒﺎﻳ
ﺒ ﺖ اﻷﻋﲆ ﻟﻠ
اﻟ
ﺑﺎﻳ ﺖﺘﻢﺗﺮﻣﻴﺰه ﻓ ﻲ
ﺘﺨﺪم ﻟﻠﻮﺳﻢ .إذا ﻛﺎن اﻟﻄﻮل أﺻﻐﺮ أوﻳ ﺴﺎوي 127 ،ﻳ
ﺘﻠﻒ ﻋﻦ اﻟﻤﺨﻄﻂ اﻟﻤ ﺴ
ﺘﻐﻴﺮ اﻟﻄﻮل ،ﻳﺨ
ﺘﺨﺪام ﻣﺨﻄﻂ ﻣ
ﺑﺎﺳ ﺘﻢﺗﺸﻔﻴﺮ اﻟﻄﻮل أ ً
ﻳﻀﺎ •ﻳ
ﺘﺮﻣﻴﺰ اﻟﻄﻮل.
ﺘﺨﺪﻣ ﺔ ﻟ
ﺘﺎﻟﻴ ﺔ اﻟﻤ ﺴ
ﺒﺎﻳ ﺖ اﻟ
ﺒﺎﻳ ﺖ اﻷول ﻋﺪد وﺣﺪا ت اﻟ
ﺑﺨﻼف ذﻟﻚ ،ﻳﺤﺪد اﻟواﺣﺪ.
Machine Translated by Google
ﺗﺤﻘﻖ 8
2.4 7
ﺗﺼﺎﻻ ت " ،ﻣﻌﺮف اﻟﻜﺎﺋﻦ ﻫﻮ آﻟﻴ ﺔﺗﺤﺪﻳﺪ ﺘﺨﺪام -ﺧﺎﺻ ﺔ ﻓ ﻲﺳﻴﺎق ﺷﻬﺎدا ت X.509 -ﻫﻮ ﻣﺎﻳ ﺴﻤﻰ ﻣﻌﺮف اﻟﻜﺎﺋﻦ (OID).وﻓ ًﻘﺎ ﻟﻼ
ﺗﺤﺎد اﻟﺪوﻟ ﻲ ﻟﻼ ﻧﻮع ASN.1ﺷﺎﺋﻊ اﻻﺳ
ﺑﺎﺳﻢ
ﺘ ﺴﻤﻴ ﺔ أي ﻧﻮع ﻣﻦ اﻷﺷﻴﺎء أو اﻟﻤﻔﺎ ﻫﻴﻢ أو" اﻟﺸ ﻲء "
ﺗﺼﺎﻻ ت و ISO / IECﻟ
ﺒﻞ ﻗﻄﺎعﺗﻘﻴﻴ ﺲ اﻻ
ﺘﺮك ﻣﻦ ﻗ
ﺑﺸﻜﻞ ﻣﺸﺘﺨﺪﻣ ﺔ ﻋﲆ ﻧﻄﺎق واﺳﻊﺗﻢﺗﻄﻮﻳﺮ ﻫﺎ
ﻣﺴ
ﺘﺨﺪاﻣﻪ ﻓ ﻲ ّﻓﺎ ت اﻟﻜﺎﺋﻦﺗ ﺴﻠ ﺴ ﻼ ً ﻫﺮﻣ ًﻴﺎ ﻣﻌً ﺎ ،ﻣﺎﻳ ﺴﻤﻰ "ﺷﺠﺮة OID".ﻳ
ﺘﻢ اﺳ ﺗﺸﻜﻞ ﺟﻤﻴﻊ ﻣﻌ ﺮ
ﺘًﺎ )ﻃﻮﻳﻞ اﻟﻌﻤﺮ -اﻟﻮﻗ ﺖ( "[20].
ﺑﺛﺎﺳﻤﺎ
ﺘﻄﻠ ﺐ ا ً
ﺒ ﺲ ﻓﻴﻪﻳ
ﻋﺎﻟﻤ ﻲ ﻻ ﻟ
ﺘﻜﻮن ﻣﻦ اﻟﻮاﻟﺪﻳﻦ
ﺘﺨﺪام SHA-384ﻣﻊﺗﺸﻔﻴﺮ RSA.ﻳ
ﺜﺎل OIDﻫﻮ 1.2.840.113549.1.1.12 ،ﻳﺤﺪد اﺳ
ﺑﺸﻜﻞ ﻓﺮﻳﺪ .ﻣ
ﺘ ﺴﻤﻴ ﺔﺳﻤﺎ ت ﺷﻬﺎدا ت X.509
اﻟﻐﺎﻟ ﺐ ﻟ
ﺘﺎﻟﻴﻴﻦ ﻓ ﻲ ﺷﺠﺮة OID:
اﻟ
ﺘﺤﺪة اﻷﻣﺮﻳﻜﻴ ﺔ
• 1.2.840:اﻟﻮﻻﻳﺎ ت اﻟﻤ
ﺒﻞ ISO
• 1:ﻣﻌﺮﻓﺎ ت اﻟﻜﺎﺋﻦ اﻟﻤﻌﻴﻦ ﻣﻦ ﻗ
2.4 checkm8
ﺘﻐﻼﻟﻪ
ﺒﻴﺮ -وإذاﺗﻢ اﺳ
ﺑﻌﺪﺗﺤﺮﻳﺮ اﻟﻤﺆﺷﺮ اﻟﻤﺬﻛﻮر .ﻫﺬا ﻋﺎدة ﻣﺎﻳﺆدي إﱃ ﻓ ﺴﺎد ﻛﺑﻮﻳﺮ ﻋﲆ اﻟﻜﻮﻣ ﺔ ،ﺘﺨﺪام ﻣﺆﺷﺮ إﱃ
ﺘﻢ اﺳ
ﺘﺨﺪام اﻟﻼﺣﻖ (UAF) ،ﻋﻨﺪﻣﺎﻳ
ﻳﺤﺪ ث اﻻﺳ
ﺑﺮﻣﺠﻴ ﺔ ﻋﺸﻮاﺋﻴ ﺔ.ﺑﺸﻜﻞ ﺻﺤﻴﺢ -إﱃﺗﻨﻔﻴﺬﺗﻌﻠﻴﻤﺎ ت
ﺗﻢ إﺻﻼﺣﻬﺎ
ﺜﻐﺮة اﻷﻣﻨﻴ ﺔ اﻷﺳﺎﺳﻴ ﺔ - UAF -
ﺘﺮض أن اﻟ
ﺘﻐﻼل اﻟﻜﺎﻣﻠ ﺔﺗﻌﻤﻞ ﻋﲆ ﺟﻤﻴﻊ اﻟﻤﻌﺎﻟﺠﺎ ت ﻣﻦ A5إﱃ A11.وﻣﻊ ذﻟﻚ ،ﻣﻦ اﻟﻤﻔ
ﺗﻢﺗﺄﻛﻴﺪ أنﺳﻠ ﺴﻠ ﺔ اﻻﺳ
ﺘﻐﻴﻴﺮا ت اﻷﺳﺎﺳﻴ ﺔ
ﺘﻐﻼل ﻋﲆ A12وﻣﺎ ﻓﻮق .وﻣﻊ ذﻟﻚ ،ﺗﺸﻴﺮ ﺟﻤﻴﻌﻬﺎ إﱃ أن اﻟ
ﺒ ﺐ ﻋﺪم ﻋﻤﻞﺳﻠ ﺴﻠ ﺔ اﻻﺳ
ﺑ ﺔ ﺣﻮلﺳ
ﺘﻀﺎر
ﻓﻘﻂ ﻋﲆ ﺷﺮﻳﺤ ﺔ A14.ﻫﻨﺎكﺗﻘﺎرﻳﺮ ﻣ
ﺘﻐﻼل.
ﺛﺎﻧﻮﻳ ﺔ ﻓ ﻲ اﻻﺳﺛﻐﺮةﺑﺪون وﺟﻮدﺘﺤﻴﻞ
ﻓ ﻲ اﻟﻜﻮﻣ ﺔﺗﺠﻌﻞ ﻣﻦ اﻟﻤ ﺴ
ﺑ ﺔ ﻓ ﻲ اﻟﻜﻮﻣ ﺔ.
ﺘﺠﺎ
ﺘﻢﺗﺨﺼﻴﺺ ﻛﺎﺋﻨﺎ ت اﻻﺳ 12ﻳ
ﺛﻢ ﻟﻢﻳﻔﺮج ﻋﻨﻪ ﻗﻂ.13وﻣﻦ
Machine Translated by Google
ﺜ ﺔ ﻋﲆ اﻟﺬراع
2.5اﺟﺮاءا ت اﻻﻣﻦ اﻟﺤﺪﻳ 8
ﺜ ﺔ ﻋﲆ ARM
ﺑﻴﺮ اﻷﻣﻨﻴ ﺔ اﻟﺤﺪﻳ
ﺘﺪا
2.5اﻟ
ﺘﻮﻗﻴﻊ وﻣﺆﺷﺮا ت
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺗﻴﺢ * Iو * Dﻟ
ﺘﺨﺪام ﻣﻔﺎ
ﺘﻢ اﺳ
ﺘﺎح * Bﻓﺮﻳﺪًا ﻟﻜﻞ ﻋﻤﻠﻴ ﺔ 15.ﻳ
ﺑﻴﻨﻤﺎﻳﻜﻮن ﻛﻞ ﻣﻔﺑﻴﻦ ﺟﻤﻴﻊ ﻋﻤﻠﻴﺎ ت اﻟﻨﻈﺎم ،
ﺘﺎح *
ﺘﻢ ﻣﺸﺎرﻛ ﺔ ﻛﻞ ﻣﻔ
ﻋﺎدة ،ﻳ
ﺘﻮاﻟ ﻲ.
ﺒﻴﺎﻧﺎ ت ،ﻋﲆ اﻟ
اﻟ
ﺘﻮﻗﻴﻊ ﻟﻸﻏﺮاض اﻟﻌﺎﻣ ﺔ.
ﺘﺎح GAﻟﻠ
ﺘﺨﺪام ﻣﻔ
ﺘﻢ اﺳ
ﻳ
ﺘﺸﻮﻳ ﺶ
2.6اﻟ
ﺘﺎنﺗﺰﻳﺪان ﻣﻦ
ﺒﺎ ت ،و ﻫﻨﺎك ﻧﻘﻄ
ﺘﺒﺎﺷﺮة ﻓ ﻲﺗﺤﻠﻴﻞ اﻟﻤﻜ
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ AFL ++ ،ﻣﻮﺟﻬ ﺔ ﻧﺤﻮ اﻟﻌﻤﻞ ﻣﻊ اﻟﻜﻮد اﻟﻤﺼﺪري وﻣﺘﺼﻔﺤﺎ ت ،
ﻟ ﺴﻮء اﻟﺤﻆ ،ﻓﺈن ﻣﻌﻈﻢ اﻟﻤ
ﺘﻮﻓﺮ أي ﻣﻨﻬﻤﺎ ﻟﻨﺎ.
ﺑ ﺔ ﻫﺬا اﻟﻤﺸﺮوع ،ﺣﻴ ﺚ ﻻﻳ
ﺻﻌﻮ
ﺜﺮ إﺣﻜﺎﻣﺎ.
ﺑﺮﻣﺠﻴ ﺔ أﻛ ﺗﻮﺟﺪ أ ً
ﻳﻀﺎ إرﺷﺎدا ت ﻟﻤﺼﺎدﻗ ﺔ ﻣﺆﺷﺮ اﻹرﺟﺎع واﻟﻌﻮدة ﻓﻮ ًرا ،ﻟﻌﻤﻞﺗﻌﻠﻴﻤﺎ ت 14
اﻟﻔﺼﻞ 3
ﺘﻬﺪﻳﺪ
ﻧﻤﻮذج اﻟ
ﺛﻐﺮة ،ﻳﻤﻜﻦ أنﺗﻜﻮن ﻗﻮﻳ ﺔ ﺟﺪًا ،ﻷﻧﻬﺎﺜﻮر ﻋﲆ ﻣﻦ ﻧﺎﺣﻴ ﺔ أﺧﺮى ،ﻳﻤﻜﻦ ﻟﻠﻤﻬﺎﺟﻢ أ ً
ﻳﻀﺎﺗﺮﻛﻴﺰ ﺟﻬﻮده ﻋﲆ اﻟﻄﺮف اﻵﺧﺮ ﻣﻦ اﻟ ﺴﻠ ﺴﻠ ﺔ SecureROM. ،إذاﺗﻢ اﻟﻌ
ﺒﺮ ﻟـ SEP ،ﻣﻤﺎﻳ ﺴﻤﺢ
ﺒﻴ ﺔ 2.ﻋﻼوة ﻋﲆ ذﻟﻚ ،ﻳﻤﻜﻦ أنﻳﺆدي إﱃﺳﻄﺢ ﻫﺠﻮم أﻛ
ﺑ ﺴﻬﻮﻟ ﺔ ﻧ ﺴﺘﻰ ﻧﻮاة ﻣﺨﺼﺼ ﺔ
ﺗﺤﻤﻴﻞ ﺣ
ﺘﺸﻐﻴﻞ أي رﻣﺰ و
ﺑﺗ ﺴﻤﺢﻷي ﺷﺨﺺ
ﺑﺎﻹﺿﺎﻓ ﺔﺒﺮﻣﺠﻴ ﺔ ﻓ ﻲ SecureROMﻟﻠﻤﻬﺎﺟﻢﺗﻔﺮﻳﻎ SecureROMﻧﻔ ﺴﻪ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻴﺢﺗﻨﻔﻴﺬ اﻟ
ﺘﺨﺪﻣﻴﻦ [28].أﺧﻴ ﺮًا ،ﻳ
ﺑﻴﺎﻧﺎ ت ﻣﺸﻔﺮة ﻟﻠﻤ ﺴﺑﺎﻟﻮﺻﻮل إﱃﻟﻠﻤﻬﺎﺟﻤﻴﻦ
ﺜﻐﺮا ت اﻷﻣﻨﻴ ﺔ [23].
ﺜﻮر ﻋﲆ اﻟﻤﺰﻳﺪ ﻣﻦ اﻟ
ﺘﺸﻔﻴﺮ اﻟﻤﻬﻤ ﺔ 3 ،ﻣﻤﺎﻳ ﺴﺎﻋﺪ ﻫﻢ ﻓ ﻲ اﻟﻌ
ﺗﻴﺢ اﻟ
إﱃ ﻣﻔﺎ
3.1اﻟﻮﺻﻮل اﻟﻤﺎدي
ﺘﺎز.
ﺘﻀﻤﻦﺗﺤﻠﻴﻞ ASN.1اﻷﺳﺎﺳ ﻲ ،ﻓﺈن ﻫﺬاﻳﻮﻓﺮﺳﻄﺢ ﻫﺠﻮم ﻣﻤ
ﺘﺤﻘﻖ ﻣﻦ IMG4ﻳ
ﻧﻈ ًﺮاﻷن اﻟ
9
Machine Translated by Google
ﺘﻤﺪ ﻣﻌﻈﻢ
ﺋﻤﺎ.ﺗﻌ
ﺣﺎ دا ً
ﺘﺎ ً
ﺗﻮﻛﻮل DFUﻣ
ﺑﺮوﺑﺎﻷﺟﻬﺰة ﻏﻴﺮ اﻟﻤﺆﻣﻨ ﺔ ﻓﻘﻂ -ﻳﺠ ﺐ أنﻳﻜﻮن
ﺗﺼﺎل USB
ﺘﻘﻴﻴﺪ ا
ﺑﺘﺸﻐﻴﻞ اﻟﻌﺎدي -ﺣﻴ ﺚ ﻗﺎﻣ ﺖ Apple
ﻋﲆ ﻋﻜ ﺲ اﻟ
ﺘﺨﺪم 4.
ﺘﺸﻐﻴﻞ ﻓ ﻲ ﻣ ﺴﺎﺣ ﺔ اﻟﻤ ﺴ ﺜﺮ أﻣﺎﻧًﺎ أو ﻣﺼﺎدﻗ ﺔ اﻟﻤﺆﺷﺮ أو ﺣ
ﺘﻰ اﻟ اﻟﺪﻓﺎﻋﺎ ت ﻋﲆﺗﻌﺰﻳﺰ أﻣﺎن SecureROMﻧﻔ ﺴﻪ ﻣﻦ ﺧﻼلﺗﻨﻔﻴﺬ ﻛﻮﻣ ﺔ أﻛ
3.2اﻟﺠﺬر ﻋﲆ اﻟﺠﻬﺎز
ﺋﻴ ﺴﻴ ﺔ واﺣﺪة
ﺘﻔﺎﻋﻞ ﻣﻊ SecureROM.ﻫﻨﺎك ﻃﺮﻳﻘ ﺔ ر
ﺗﻪ ﻟﻠ ﺘﺼﺮ أ ً
ﻳﻀﺎ ﻋﲆ ﺧﻴﺎرا ُﻌﺪ أو ﻟﺪﻳﻪ وﺻﻮل ﻣﺎدي( ﺟﺬ ًرا ﻋﲆ اﻟﺠﻬﺎز ،ﻓﺈﻧﻪﻳﻘ
ﺑﺘ ﺴ ﺐ اﻟﻤﻬﺎﺟﻢ )ﻋﻦ
ﺑﻤﺠﺮد أنﻳﻜ
ﺘﺤﻘﻖ ﻣﻦ IMG4ﻋﻦ ﻃﺮﻳﻖ
ﺘﺨﺰﻳﻦ ﻟﻠﻤﺮاﺣﻞ اﻟﻼﺣﻘ ﺔ ﻣﻦ ﻣﺤﻤﻞ اﻹﻗﻼع .ﻣﺮة أﺧﺮى ،ﻗﺪﻳﺮﻏ ﺐ اﻟﻤﻬﺎﺟﻢ ﻓ ﻲ ﻛ ﺴﺮ ﻋﻤﻠﻴ ﺔ اﻟ
ﺘﻔﺎﻋﻞ ﻣﻊ SecureROMﻣﻦ اﻟﻨﻮاة ،وﺳﻴﻂ اﻟ
ﻟﻠ
ﺒﻞ A11 -ﻛﺎن ﻫﻨﺎكﺳﻄﺢ إﺿﺎﻓ ﻲ ،و ﻫﻮﺗﺤﻠﻴﻞ ﻣ ﺴﺎﺣﺎ ت أﺳﻤﺎء NVME
ﺘﺨﺪم APsﻗ
ﺘ ﻲﺗ ﺴ
ﺗﻠﻚ اﻟ
ﺘﺎﻟﻴ ﺔ .ﻋﲆ أﺟﻬﺰة iPhoneاﻷﻗﺪم -
ﺗﻌﺪﻳﻞ ﻣﻠﻒ IMG4ﻟﻠﻤﺮﺣﻠ ﺔ اﻟ
ﺒﺎﺷﺮة ﻣﻦ SPI NANDدون أيﺗﺤﻠﻴﻞ ﻣﻌﻘﺪ.
ﺘﺎﻟﻴ ﺔ ﻣ
ﺗﺤﻤﻴﻞ اﻟﻤﺮﺣﻠ ﺔ اﻟ
ﺘﺎﻟﻴ ﺔ .ﻋﲆ أﺟﻬﺰة iPhoneاﻷﺣﺪ ث ،ﺗﻤ ﺖ إزاﻟ ﺔ ﻫﺬا اﻟ ﺴﻄﺢ و
ﺜﻮر ﻋﲆ اﻟﻤﺮﺣﻠ ﺔ اﻟ
ﻟﻠﻌ
ﺘﺸﻮﻳ ﺶ
ﺘﺎﺟﺎ ت ﻟﻠ
ﺘﻨ3.3اﺳ
ﺧﺎﺿﻊ ﻟﻠ ﺴﻴﻄﺮة
ﺑﺪﻧ ﻲ
IMG4
وﺻﻮل
ﺧﺎﺿﻊ ﻟﻠ ﺴﻴﻄﺮة
رﺳﺎﺋﻞ USB
*
*
ﺟﺬر
ذاﻛﺮة IMG4 ﻗﺮص IMG4
وﺻﻮل
ﺧﺎﺿﻊ ﻟﻠ ﺴﻴﻄﺮة
اﻟﻔﺼﻞ 4
ﺗﺼﻤﻴﻢ
ﺗﻤﺎﻣﺎ
ً ﺋﻤﺎ آﻣﻨًﺎ
ﺜﻮر ﻋﲆ أي ﻧﻘﺎط ﺿﻌﻒ ﺟﺪﻳﺪة .ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أن ﻫﺬاﺳﻴﻜﻮن أﻣ ﺮًا راﺋﻌً ﺎ ،إﻻ أن SecureROMﻛﺎن دا ً
اﻟﻬﺪف اﻟﻮاﺿﺢ ﻣﻦ ﻫﺬه اﻷﻃﺮوﺣ ﺔ ﻫﻮ اﻟﻌ
ﺘﺸﻔﻬﺎ Apple
ﺜﻮر ﻋﲆ ﻧﻘﺎط ﺿﻌﻒ ﻟﻢﺗﻜ
ﺗﻤﺎﻣﺎ اﻟﻌ
ً ﺘﺸﻮﻳ ﺶ .ﻟﺬﻟﻚﺳﻴﻜﻮن ﻣﻦ اﻟﻤﺪ ﻫ ﺶ
ﺘﺰاﻳﺪ ﻟﻠ
ﺑﺸﻜﻞ ﻣ
ﺘﺨﺪام Apple
ﺘﻤﺎﻋﻴ ﺔ إﱃ اﺳ
وﻗﺪ أﻟﻤﺤ ﺖ اﻟﻤﺼﺎدر ﻏﻴﺮ اﻻﺟ
ﺑﺎﻟﻔﻌﻞ 1.ﻧﻔ ﺴﻬﺎ
ﺘﺤﺪﻳﺎ ت
4.2اﻟ
ﺑﺪﻻ ً ﻣﻦ اﻟﻮﺻﻮل إﱃ اﻟﻜﻮد اﻟﻤﺼﺪري ،ﺘﺮﻛ ﺔ".
ﺘﺤﺪﻳﺎ ت اﻹﺿﺎﻓﻴ ﺔ ،ﻏﻴﺮ ﻣﻮﺟﻮدة ﻋﻨﺪ ﻣﺤﺎوﻟ ﺔﺗﺸﻮﻳ ﺶ اﻷ ﻫﺪاف "اﻟﻤﺸ
ﺒﻴﺮة ﻣﻦ اﻟ
ﺗﻘﺪم Fuzzing SecureROMﻣﺠﻤﻮﻋ ﺔ ﻛ
ﺘﻮﻗﻊ أنﻳﻌﻤﻞ ﻋﲆ اﻟﻤﻌﺪن ،ﻣﻊ إﻣﻜﺎﻧﻴ ﺔ اﻟﻮﺻﻮل
ﺘﻪ ﻟﻤﻌﺎﻟﺠﺎ ت Appleوﻣﻦ اﻟﻤ
ﺒﻴﻌ
ﺑﻄﺜﻨﺎﺋ ﻲ
ﺒﺮﻧﺎﻣﺞ اﻟ
ﺠﻤﻊ ﻟﻠﻌﻤﻞ ﻣﻌﻪ .ﻋﻼوة ﻋﲆ ذﻟﻚ ،ﺗﻢﺗﺼﻤﻴﻢ اﻟ
ﺛﻨﺎﺋ ﻲُﻣ ﱠﻟﺪﻳﻨﺎ ﻓﻘﻂ
إﱃ اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﺟﻬﺰة اﻟﻄﺮﻓﻴ ﺔ اﻟﺨﺎﺻ ﺔ اﻟﻤﻮﺟﻮدة ﻋﲆ أﺟﻬﺰة Apple.
ﺛ ﺔ أﺣﺮف.
ﺛﻼﺘ ﻲﺗﺪﻋﻤﻬﺎ وﻛﺎﻻ ت ﻣﻦ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،أي ﻣﻦ اﻟﺸﺮﻛﺎ ت اﻟﻌﺪﻳﺪة اﻟ1أو
11
Machine Translated by Google
4.3ﺣﻠﻮل 12
ﺛﻨﺎﺋ ﻲ اﻟﻨﻘﻄ ﺔ
4.2.1
ﺒﺎ
ﺘﻨﻔﻴﺬ .ﻋﻼوة ﻋﲆ ذﻟﻚ ،ﻏﺎﻟ ً
ﺘﻌﻠﻴﻤﺎ ت ﻟﻬﺎﺳﻠﻮك ﻣﺤﺪد ﻟﻠ
ﺑﻌﺾ اﻟﺑﻞ إنﺒﺎﺋﻊ ﻓﺤ ﺴ ﺐ ،
ﺑﺎﻟﺗﻌﻠﻴﻤﺎ ت ﺧﺎﺻ ﺔ
ﺒﺎﺋﻌﻴﻦ اﻟﻘﺪرة ﻋﲆ اﻟﺤﺼﻮل ﻋﲆﺳﺠﻼ ت و
ﻻﻳﻤﻨﺢ ARMاﻟ
ﺒ ﺴﺎﻃ ﺔﺗﺸﻐﻴﻞ SecureROMﻋﲆ أﺟﻬﺰة
ﺑﺗﻤﺎﻣﺎ .ﻟﺬﻟﻚ ،ﻻﻳﻤﻜﻦ
ً ﺘﺄﺧﺮﻳﻦ
ّﻌﻴﻦ اﻵﺧﺮﻳﻦ ﻣ
ﺒﻖ ﻣﻌﺎﻟﺠﺎ ت Appleأﺣﺪ ث ﻣﻮاﺻﻔﺎ ت ARM ،ﻓ ﻲ ﺣﻴﻦ أن اﻟﻤﺼﻨ
ﻣﺎﺗﻄ
ﺘ ﻲﺗﻢ إﺻﺪار ﻫﺎ ﻣﺆﺧ ﺮًا ،إﻻ أﻧﻪ ﻻﻳﻮﺟﺪ إﺻﺪار ﻛﺎﻣﻞ ﻣﻦ Linux
ﺑﻴﻨﻤﺎﻳﻤﻜﻦ ﻟﻠﻤﺮء ﻣﺤﺎوﻟ ﺔﺗﺸﻐﻴﻠﻪ ﻋﲆ أﺟﻬﺰة ARM Macاﻟ
ﺜﻞ Raspberry Pi.
ARMﺳﻬﻠ ﺔ اﻟﻮﺻﻮل ،ﻣ
ﺑ ﺔ ﻫﺬه اﻷﻃﺮوﺣ ﺔ 2.
ﺘﺎ
ﺘﻰ ﻛ
ﺣ
ﺜﺎل ﻧﺼﻔ ﻲ
4.2.3اﻟﻤﻌﺪن اﻟﻌﺎري أوﺗﻤ
ﺘﻴﺎز( ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟﺠﺪول 4.1 [15].ﻳﺸﻴﺮ ﺗ ﺴﻤﻰ أﺣﻴﺎﻧًﺎ اﻟﺤﻠﻘﺎ ت ﻓ ﻲ X86أو ﻣ ﺴ
ﺘﻮﻳﺎ ت اﻻﻣ ﺘﻠﻔ ﺔ )
ﺜﻨﺎء ﻣﺨ
ﺘﺘﻮﻳﺎ ت اﺳ
ﺜﻞ أي ﻣﻌﺎﻟﺞ ﺣﺪﻳ ﺚ ،ﻳﻮﻓﺮ ARMﻣ ﺴ
ﻣ
ﺘﻴﺎزا ت
ﺘ ﺴﺠﻴﻞ.ﺗﺸﻴﺮ اﻣ
ﺘﻴﺎزا ت اﻟﺬاﻛﺮة واﻟﻮﺻﻮل إﱃ اﻟ
ﺘﻴﺎزا ت ،اﻣ
ﺘﻨﻔﻴﺬ اﻟﺤﺎﻟ ﻲ .ﻫﻨﺎك ﻧﻮﻋﺎن ﻣﻦ اﻻﻣ
ﺑﻬﺎﺳﻴﺎق اﻟﺘﻊ
ﺘﻤﺘ ﻲﻳ
ﺘﻴﺎزا ت اﻟ
ﺜﻨﺎء اﻟﺤﺎﻟ ﻲ إﱃ اﻻﻣ
ﺘﺘﻮى اﻻﺳ
ﻣﺴ
ﺑﺼﻔﺤ ﺔ 3.ﻟﻠﻮﺻﻮل إﱃﺘﻌﻠﻖ
ﺘﻨﻔﻴﺬ اﻟﺤﺎﻟ ﻲ ﻓﻴﻤﺎﻳ
ﺘﺤﻘﻖ ﻣﻦ ﺣﻘﻮقﺳﻴﺎق اﻟ
ﺘﻴﺎزا ت ﻋﻨﺪ اﻟ
ﺘﺨﺪم اﻷذوﻧﺎ ت ﻏﻴﺮ اﻟﻤﻤﻴﺰة أو ذا ت اﻻﻣ
ﺘﺴاﻟﺬاﻛﺮة إﱃ ﻣﺎ إذا ﻛﺎﻧ ﺖ MMUﺳ
ﺘﻮى
ﺘﻬﺎ .أﺧﻴ ﺮًا ،ﻻﻳﻤﻜﻦ أنﻳﺤﺪ ثﺗﻐﻴﻴﺮ ﻓ ﻲ ﻣ ﺴ
ﺑﺘﺎ
ﺗﻬﺎ أو ﻛ
ﺜﻨﺎء اﻟﻤﻄﻠﻮ ب ﻟﻘﺮاء
ﺘﺘﻮى اﻻﺳ
ﺘﻮي أيﺳﺠﻼ ت ﻧﻈﺎم ﻋﲆ suxﻳﺸﻴﺮ إﱃ اﻟﺤﺪ اﻷدﻧﻰ ﻣﻦ ﻣ ﺴ
اﻟ ﺴﺠﻞ ،ﺗﺤ
ﺜﻨﺎء أو اﻟﻌﻮدة ﻣﻨﻪ.
ﺘﺜﻨﺎء إﻻ ﻣﻦ ﺧﻼل أﺧﺬ اﺳ
ﺘاﻻﺳ
ﺑﻞﺘﻮﻗﻊ ﻓﻘﻂ اﻟﻮﺻﻮل اﻟﻜﺎﻣﻞ إﱃ ذاﻛﺮة اﻟﻮﺻﻮل اﻟﻌﺸﻮاﺋ ﻲ اﻟﻔﻌﻠﻴ ﺔ وأيﺳﺠﻼ ت ﻧﻈﺎم ،
ﺘﺼﻤﻴﻤﻨﺎ ،ﺣﻴ ﺚ أن SecureROMﻻﺗ
ﺜﻨﺎء ﻣﻬﻤ ﺔ ﻟ
ﺘﺘﻮﻳﺎ ت اﻻﺳ
ﺗﻌﺪ ﻣ ﺴ
ﺜﻞ
ﺘﻮﻗﻊ SecureROMاﻟﻌﺪﻳﺪ ﻣﻦ اﻷﺟﻬﺰة اﻟﻄﺮﻓﻴ ﺔ ،ﻣ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﺗ
ﺘﺮاﺿﻴ ﺔ 4.
ﺘ ﻲ ﻻﻳﻤﻜﻦﺗﺤﻮﻳﻠﻬﺎ إﱃ اﻓ ﺗﻌﻤﻞ اﻷﺟﻬﺰة اﻷﺣﺪ ث أ ً
ﻳﻀﺎ ﻓ ﻲ EL3ﻓ ﻲ ﻧﻘﺎط ،واﻟ
ﺒﻴ ًﺮا.
ﺘﻄﻠ ﺐ ﺟﻬﺪًا ﻫﻨﺪﺳ ًﻴﺎ ﻋﻜ ﺴ ًﻴﺎ ﻛ
ﺗﺑﺸﻜﻞ ﺻﺤﻴﺢ وﺑﻬﺎ.ﻳﺼﻌ ﺐ ﻣﺤﺎﻛﺎة ﻫﺬه اﻷﺟﻬﺰة اﻟﻄﺮﻓﻴ ﺔﺗﺼﺎل
ﺘ ﻲﻳﻤﻜﻦ اﻻ
ﻣﻌﺎﻟﺞ SEPاﻟﻤ ﺴﺎﻋﺪ أو واﺟﻬ ﺔ USB ،اﻟ
4.3اﻟﺤﻠﻮل
ﺒﻴﺮ
ﺘﻢ ﻣﻨﺎﻗﺸ ﺔﺗﺼﻤﻴﻤﻪ ﻓ ﻲ اﻟﻘ ﺴﻢ 4.4.ﺟﺰء ﻛ
ﺘﺸﻮﻳ ﺶ ﻓ ﻲ اﻟﻐﺎﻟ ﺐ ﻣﻦ ﺧﻼل ]AFL ++ [8وﻳ
ﺘﻢ اﻟ
ﺘﻌﺪدة.ﻳ
ﺘﺤﺪﻳﺎ ت واﻷ ﻫﺪاف اﻟﻤﺬﻛﻮرة أﻋﻼه ﻣﻦ أﺟﺰاء ﻣ
ﺘﻜﻮن ﺣﻠﻨﺎ ﻟﻠ
ﻳ
ﻣﻨﻪ ،
ﺒﻴﺪ
ﺗﺼﻤﻴﻢ ﻣ
4.4 13
ﺘﻴﺎز
ﺑﺎﻣﺘﻴﺎز
ﺑﺎﻣﺘﻴﺎز
اﻣ ﺑﺮﻧﺎﻣﺞ Hypervisor * EL0
ﺗﺸﻐﻴﻞ ﺒﻴﻖ ﻧﻈﺎم
ﺗﻄ
ﺘﻴﺎز
ﺑﺎﻣ )* THE (0 | 1 EL1ﺔ
أو رﻣﺰ اﻟﺤﻤﺎﻳ
)* THE (0 | 1 | 2 EL2
ﺑﺔ
ﺘﺎ
ﺘﺮداد أﺳﻤﺎء اﻟﻮﻇﺎﺋﻒ وﻛ
ﺘﻨﺎ IDA -ﻳﻤﻜﻨﻨﺎ اﺳ
ﺘ ﺔ ﺟﻴﺪة -ﻓ ﻲ ﺣﺎﻟ
ﺑﺛﺎﺘﺨﺪام أداةﺗﺤﻠﻴﻞ
ﺑﺎﺳﺋﻴ ﺴ ﻲ ﻟﺤﻠﻨﺎ.
ﺑ ﺖ -وﻓ ﻲ اﻷﺟﺰاء اﻷﻗﻞ دﻳﻨﺎﻣﻴﻜﻴ ﺔ -اﻷﺳﺎس اﻟﺮ
ﺜﺎ
ﺘﺤﻠﻴﻞ اﻟ
ﻳﺸﻜﻞ اﻟ
ﺘﺪﻋﺎﺋﻬﺎ ﻣﻦ ﺧﺎرج SecureROM ،ﻣﻤﺎﻳﻌﻨ ﻲ أﻧﻪﻳﻤﻜﻦ
ﺘﺨﺪام اﻷدوا ت اﻟﻤﺨﺼﺼ ﺔ ،ﻳﻤﻜﻦﺗﺼﺪﻳﺮ اﻟﺮﻣﻮز واﺳ
ﺑﺎﺳ
اﻟﻤﻌﻠﻮﻣﺎ ت ،ﻋﻦ ﻃﺮﻳﻖ اﻟﻬﻨﺪﺳ ﺔ اﻟﻌﻜ ﺴﻴ ﺔ SecureROM.
ﺗﺠﺎ ﻫﻞ اﻷﺟﺰاء ﻏﻴﺮ ذا ت اﻟﺼﻠ ﺔ.
ﺜﻨﺎﺋ ﻲ
ﺘﺮﻗﻴﻊ اﻟ
4.3.2اﻟ
ﺗﻬﺎ
ﺘﺨﺪم أوﺗﻌﻠﻴﻤﺎ ت أﺧﺮى ﻻﻳﻤﻜﻦ ﻣﺤﺎﻛﺎ
ﺘﺼﺤﻴﺢﺳﺠﻼ ت Appleاﻟﺨﺎﺻ ﺔ أوﺗﻌﻠﻴﻤﺎ ت وﺿﻊ ﻏﻴﺮ اﻟﻤ ﺴ
ﺘﺨﺪﻣﻪ ﻟ
ﺑﺸﻜﻞ ﺟﻴﺪ .ﻧ ﺴﺛﻨﺎﺋﻴ ﺔﺗﻌﻤﻞﺟﺰء ﻣﻬﻢ آﺧﺮ ﻫﻮ أداةﺗﺮﻗﻴﻊ
ﺒﻴﻖ
ﺘﻄﺑﺘﻌﻠﻴﻤﺎ ت اﻟﻔﺮدﻳ ﺔ
ﺘﻰﺗﺠﺎوز اﻟ
ﺒﺪالﺗﻨﻔﻴﺬ اﻟﻜﻮﻣ ﺔ ،راﺟﻊ اﻟﻘ ﺴﻢ 5.8 -وﺣ
ﺘﺜﺎل اﺳ
ﺒﻴﻞ اﻟﻤ
ﺘﻘﺎﺋ ﻲ -ﻋﲆﺳ
ﺑﺸﻜﻞ اﻧﺑﻂ اﻟﻮﻇﺎﺋﻒ
ﺘﻴﺢ ﻟﻨﺎ ر
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﻳﺑ ﺴﻬﻮﻟ ﺔ.
ﻣﺨﺼﺺ.
ﺒﻴﻖ أ ً
ﻳﻀﺎ ﻋﲆ اﻷﻧﻈﻤ ﺔ اﻷﺳﺎﺳﻴ ﺔ اﻷﺧﺮى .أوﻻ ً ، ﺘﻄﺑﻠ ﺔ ﻟﻠ
ﺘ ﻲﻳﻤﻜﻦ أنﺗﻜﻮن ﻗﺎ
ﺘﺎﻟﻴ ﺔ واﻟ
ﺘﻮى اﻟ
ﺘﺨﺪم اﻟﻌﻤﻠﻴ ﺔ ﻋﺎﻟﻴ ﺔ اﻟﻤ ﺴ
ﺗﻘﻠﻴﺪي ،ﻧ ﺴ
ﺑﻨﺎء Linux ELFﺘﻜﻮن ﻗﺎد ًرا ﻋﲆ
ﻟ
ﺘﻲ
ﺘﺪﻋﺎء أي وﻇﻴﻔ ﺔ SecureROM ،واﻟ
ﺘﺨﺪام ﻟﻐ ﺔ Cاﻟﻌﺎدﻳ ﺔ ،ﻳﻤﻜﻨﻨﺎ اﺳ
ﺑﺎﺳﺑﻌﺪ ذﻟﻚ ،ﺘﻮﻗﻊ أنﻳﻜﻮن ﻓﻴﻪ.
ﺜﻨﺎﺋ ﻲ SecureROMﻓ ﻲ ﻣﻮﻗﻊ اﻟﺬاﻛﺮة اﻟﺬيﻳ
ﺘﻢﺗﻌﻴﻴﻦ اﻟﻤﻠﻒ اﻟ
ﻳ
ﺑﻨﺎ .أﺧﻴ ﺮًا ،ﻧﻘﻮم أ ً
ﻳﻀﺎ ﺒﻴﻌ ﻲ ﻣﻦ ﻛﻮد Cاﻟﺨﺎص
ﺑﺸﻜﻞ ﻃﺘﺪﻋﺎء وﻇﺎﺋﻔﻬﺎ
ﺒ ﺔ أﺧﺮى ،ﻳﻤﻜﻨﻨﺎ اﺳ
ﺘﺜﻞ أي ﻣﻜ
ﺘﻌﺎﻣﻞ ﻣﻊ SecureROMﻣ
ﺑﻤﻌﻨﻰ ﻣﺎ ،ﻧ
ﺗﻢﺗﺼﺪﻳﺮ رﻣﺰ ﻫﺎ ﻣﻦ IDA.
ﺘﺼﺤﻴﺢ أو إزاﻟ ﺔ أي وﻇﺎﺋﻒ ﻏﻴﺮ ذا ت ﺻﻠ ﺔ.
ﺑ
ﺑﻲ
ﺒﺎ
ﺗﺼﻤﻴﻢ ﺿ
4.4
ﺘﺸﻐﻴﻞ
ﺑﺒﺬور.ﻳﻘﻮم AFL ++ ﺜﻠ ﺔ ﻋﲆ اﻟﻤﺪﺧﻼ تﺗ ﺴﻤﻰ أ ً
ﻳﻀﺎ اﻟ ﺑﻌﺾ اﻷﻣ ً
ﻫﺪﻓﺎ - Linux ELF -و ﺘﺤﻘﻴﻖ ﻫﺬه اﻟﻐﺎﻳ ﺔ ،ﻧﻌﻄ ﻲ AFL ++
ﺘﺨﺪم AFL ++ [8].ﻟ
ﺘﺸﻮﻳ ﺶ ﻧ ﺴ
ﻟﻠ
ﺘﺪاد
ﺘﻤﺮ ،ﻣﻤﺎﻳﻮﻓﺮ ﻟﻪ اﻣ
ﺑﺸﻜﻞ ﻣ ﺴاﻟﻬﺪف
Machine Translated by Google
ﺒﻴﺪ
ﺗﺼﻤﻴﻢ ﻣ
4.4 14
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎ
ﺜﺮﺗﻌﻘﻴﺪًا.ﻳ
ﺒ ﺔ إﱃﺗﺸﻮﻳ ﺶ DFU ،ﻫﺬا أﻛ
ﺑﺎﻟﻨ ﺴﺒﺎﺷﺮة إﱃﺗﺤﻤﻴﻞ اﻟﺼﻮرة .
ﺴﻴﻄﺎ وﻳﻤﻜﻨﻨﺎﺗﻤﺮﻳﺮ اﻹدﺧﺎل ﻣ
ً ﺑﻓ ﻲ ﺣﺎﻟ ﺔﺗﺸﻮﻳ ﺶ IMG4 ،ﻳﻜﻮن ﻫﺬا أﻣ ﺮًا
ﺑﻨﺎ ،واﻟﺬيﺗﻢﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ USBاﻟﺨﺎصﺑﻌﺪ ذﻟﻚﺋﻴ ﺴﻴ ﺔ ﻣﻦ ﻣﻜﺪس USBﻟﻤﻌﺮﻓ ﺔ اﻟﻮﻇﺎﺋﻒ اﻟﻤ ﺴﺆوﻟ ﺔ ﻋﻦ ﻣﻌﺎﻟﺠ ﺔ اﻟﺮﺳﺎﺋﻞ.ﺳﻨﻮﻓﺮ
إﺟﺮاء ﻫﻨﺪﺳ ﺔ ﻋﻜ ﺴﻴ ﺔﻷﺟﺰاء ر
ﺘﻢﺗﻤﺮﻳﺮ ﻫﺎ إﱃ وﻇﻴﻔ ﺔ
ﺘ ﻲﻳ
ﺘﺎﻟ ﻲ -واﻟ
ﺗﻔﺎﺻﻴﻞ ﻋﻦ ﻫﺬا ﻓ ﻲ اﻟﻔﺼﻞ اﻟ
ﺘﻢﺗﻘ ﺴﻴﻢ اﻟﻤﺪﺧﻼ ت اﻟﻤﺰﻋﺠ ﺔ إﱃ رﺳﺎﺋﻞ -
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﻳﺘﺸﻮﻳ ﺶ.
ﺧﺼﻴﺼﺎ ﻟﻠ
ً ﺗﺼﻤﻴﻤﻪ
ﺜﻨﺎﺋ ﻲ اﻟﺬيﺗﻢ إﻧﺸﺎؤه ﺣﺮﻳﺺ أ ً
ﻳﻀﺎ ﺘﻬﺎ ،ﻓﺈن اﻟ
ﺒﻴﻌ
ﺑﻄﺘﻌﺪدة اﻟﺨﻴﻮط
ﺒﺾ USB.ﻧﻈ ﺮًاﻷن ﻣﻌﺎﻟﺠ ﺔ DFUﻣ
ﺑﻤﻘﺒﻞﺗﺤﻜﻢ USBاﻷﺳﺎﺳ ﻲ
ﺘﻘﺘ ﻲﺗ ﺴ
ﻣﻌﺎﻟﺠ ﺔ mes sageاﻟ
ﺘﻤﺮار.ﻳﻘﺪم اﻟﺸﻜﻞ ً 4.1
ﻋﺮﺿﺎﺗﺨﻄﻴﻄ ًﻴﺎ ﻟﻜﻞ ﻣﻦ ﻫﺬﻳﻦ ﺑﺎﺳ
ﺘﺪﻋ ﻲ getDFUImage
ﺑﻴﻨﻤﺎ اﻵﺧﺮﻳ ﺴﺒﺮ اﻟﺮﺳﺎﺋﻞ ،
ﻋﲆﺗﻜﺮار ﻫﺬا اﻟ ﺴﻠﻮك ﻣﻊ ﺧﻴﻄﻴﻦ .أﺣﺪ ﻫﻤﺎﻳﻤﺮ ﻋ
ﺘﺼﻤﻴﻤﻴﻦ.
اﻟ
ﺘﺤﻘﻖ IMG4.
)أ(ﺗﺼﻤﻴﻢ ﻟﻠ
...
اﻟﺰﻏ ﺐ
ﻫﺪفﻫﻞ ﺒﺎل usbاﻷﺳﺎﺳﻴ ﺔﺗﺤﻜﻢ usb
ﺘﻘاﺳ
AFL ++ ﻣﺪﺧﻞ
ﺋﻴ ﺴ ﻲ USB
اﻟﺨﻴﻂ اﻟﺮ getDFUImage
SecureROM
...
ﺘﺼﻤﻴﻤﻨﺎ اﻟﻐﺎﻣﺾ.
اﻟﺸﻜﻞ 4.1:ﻋﺮضﺗﺨﻄﻴﻄ ﻲ ﻟ
Machine Translated by Google
اﻟﻔﺼﻞ 5
ﺒﻴﻖ
ﺗﻄ
ﺘﺸﻮﻳ ﺶ .ﻋﲆ
ﺘﻔﺼﻴﻞ ،ووﺻﻒ أي أدوا ت إﺿﺎﻓﻴ ﺔ وﻣﻨﺎﻗﺸ ﺔ ﻃﺮقﺗﺤ ﺴﻴﻦﺳﺮﻋ ﺔ اﻟ
ﺑﺎﻟﺘﻘﻞ اﻵن إﱃﺗﻨﻔﻴﺬه
ﺘﻮى ﻟـ emmutaler ،ﻧﻨ
ﺘﺼﻤﻴﻢ ﻋﺎﻟ ﻲ اﻟﻤ ﺴ
ﺑﻌﺪﺗﻘﺪﻳﻢ اﻟ
ﺜﻨﺎﺋﻴ ﺔ اﻟﺨﺎﺻ ﺔ
ﺘﺼﺤﻴﺢ اﻟ
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ أداة اﻟﺒﺔ ،
ﺘﺘﺨﺪاﻣﻨﺎ SecureROMﻛﻤﻜ
ﺑﻮﺻﻒﺗﻔﺼﻴﻠ ﻲ ﻟﻜﻴﻔﻴ ﺔ اﺳﺒﻮﻋً ﺎ
ﺘﺑﺖ ،ﻣ
ﺜﺎ وﺟﻪ اﻟﺨﺼﻮص ،ﻧﻘﺪم أوﻻ ً ﻧﻬﺠﻨﺎ ﻟﻠ
ﺘﺤﻠﻴﻞ اﻟ
ﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ
ﺗﺤ ﺴﻴﻦ اﻟ ﺴﺮﻋ ﺔ و
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚﺗﻮﻟﻴﺪ اﻟﻤﺪﺧﻼ ت ،وﻣﻌﻠﻤﺎ ت AFL ++ ،وﺘﻔﺼﻴﻞ ،
ﺑﺎﻟﺘﺸﻮﻳ ﺶ
ﺑﻌﺪ ذﻟﻚ ،ﻧﻨﺎﻗ ﺶ ﻋﻤﻠﻴ ﺔ اﻟﺑﻨﺎ وﻛﻴﻔﻴ ﺔﺗﺼﺪﻳﺮ اﻟﺮﻣﻮز.
ﺘﺤﻠﻴﻞ.
ﺘﻐﻄﻴ ﺔ ﻟﻠ
ﺘﻔﺎﺻﻴﻞ ﺣﻮل ﻛﻴﻔﻴ ﺔ ﺟﻤﻊ ﻣﻌﻠﻮﻣﺎ ت اﻟ
ﺘﺸﻮﻳ ﺶ واﻟ
ﺧﺼﻴﺼﺎ ﻟﻠ
ً ﺑﻨﺎ اﻟﻤﺼﻤﻢﺒﻴﻖ اﻟﻤﺨﺼﺺ اﻟﺨﺎص
USBاﻟﻤﺨﺼﺺ .أﺧﻴ ﺮًا ،ﻧﻘﺪمﺗﻄ
ﺘﺤﻠﻴﻞ اﻟ ﺴﺎﻛﻦ
5.1اﻟ
ﺘﻜﻮﻳﻦ
ﺘﻢﺗﺨﺰﻳﻦ ﻗﻴﻢ اﻟ
ﺘﻌﺎﻣﻞ ﻣﻊ رﺳﺎﺋﻞ USBوأﻳﻦﻳ
ﺘﻨﻔﻴﺬ .وﺷﻤﻞ ذﻟﻚ ﻣﻌﺮﻓ ﺔ ﻛﻴﻔﻴ ﺔ ﻋﻤﻞﺗﻨ ﺴﻴﻘﺎ ت اﻹدﺧﺎل وﻛﻴﻔﻴ ﺔ اﻟ
ﺘﻤﺮ ﺧﻼل ﻣﺮﺣﻠ ﺔ اﻟ
ﺑ ﺖ ﻣﺴ
ﺛﺎﺗﻢ إﺟﺮاءﺗﺤﻠﻴﻞ
ﺑ ﺖ ،إﻻ أﻧﻬﺎ ﻛﺎﻧ ﺖ ﻗﺪﻳﻤ ﺔ أ ً
ﻳﻀﺎ ﻓ ﻲ ﺜﺎ
ﺘﺤﻠﻴﻞ اﻟ
ﺜﻴ ﺮًا ﻓ ﻲ اﻟ
ﺑ ﺔ ﻣﻦ 20161ﺳﺎﻋﺪ ت ﻛ
ﺒﺮﻣﺠﻴ ﺔ اﻟﻤﺼﺪر اﻟﻤ ﺴﺮ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺜﻴﺮ .ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أن اﻟ
اﻟﻤﻬﻤ ﺔ وﻏﻴﺮ ذﻟﻚ اﻟﻜ
ﺛﻴﻖ 2.
ﺘﻮﺑﺸﺪة إﱃ اﻟﺘﻘﺮ
ﺗﻔﺋﻴ ﺴﻴ ﺔ و
اﻷﺟﺰاء اﻟﺮ
5.1.1ﺧﺮﻳﻄ ﺔ اﻟﺬاﻛﺮة
ﺑﻔﻀﻞ اﻟﻜﻮد ﻛﺎﻧ ﺖ اﻟﺨﻄﻮة اﻷوﱃ اﻟﻤﻬﻤ ﺔ ﻟﻴ ﺲ ﻓﻘﻂ ﻓ ﻲ اﻟﻬﻨﺪﺳ ﺔ اﻟﻌﻜ ﺴﻴ ﺔ SecureROM ،وﻟﻜﻦ أ ً
ﻳﻀﺎﺗﺤﻤﻴﻠﻬﺎ ﻓ ﻲ ELFﻫ ﻲ ﻓﻬﻢﺗﺨﻄﻴﻂ اﻟﺬاﻛﺮة ﻟـ SecureROM.
ﺒﻴﺎﻧﺎ ت اﻟﻮﺻﻔﻴ ﺔ وﻧﻄﺎﻗﺎ ت ﻋﻨﺎوﻳﻦ اﻟﺬاﻛﺮة اﻟﻤﻬﻤ ﺔ.ﻳﻤﻜﻦ رؤﻳ ﺔ اﻟﻤﻌﻠﻮﻣﺎ ت اﻟﻜﺎﻣﻠ ﺔ اﻟﻤﻮﺟﻮدة
ﺑﻌﺾ اﻟاﻟﻤﺼﺪري وﻋﻜ ﺲ ﺣﻠﻘ ﺔ اﻟﻨﻘﻞ اﻷوﻟﻴ ﺔ ،ﺣﺪدﻧﺎ ﺟﺰءًا ﺻﻐﻴ ﺮًا 3ﻳﺨﺰن
ﺑ ﺖ ،ﺗﻤﻜﻨﺎ ﻣﻦ اﻟﺤﺼﻮل ﻋﲆ ﺧﺮﻳﻄ ﺔ ذاﻛﺮة ﻛﺎﻣﻠ ﺔ ﻟـ
ﺜﺎ
ﺘﺤﻠﻴﻞ اﻟ
ﺑﻌﺾ اﻟ
ﺘﺨﺪام ﻫﺬا و
ﺑﺎﺳ
ﺒﻴﺎﻧﺎ ت و bss.
ﻓ ﻲ اﻟﻤﻠﺤﻖ A.1 ،وﻟﻜﻦ أ ﻫﻢ اﻷﺟﺰاء ﻫ ﻲ ﻣﻮاﻗﻊ ﻗ ﺴﻢ اﻟﻨﺺ واﻟ
ﺜﺎل ﻟﻬﺎ ﻓ ﻲ اﻟﻤﻠﺤﻖ A.2.
SecureROM ،وﻳﻤﻜﻦ رؤﻳ ﺔ ﻣ
ﺒﻌ ﻲ.
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ اﻟﺨﻄﺄ اﻟﻤﻄ
ﺘﻨﺪا ت ﻣﻨﺎﺳ ﺐ ﻓﻘﻂ "Optimisim." ،
2وﺻﻒ ﻣﺠﻠﺪ اﻟﻤ ﺴ
ﺒﺪء ﻣﻦ 0x200ﻣﻦ ﻗﺎﻋﺪة SecureROM.
3اﻟ
15
Machine Translated by Google
ﺑﺖ
ﺛﺎﺗﺤﻠﻴﻞ
5.1 16
ﺘﺮض SecureROMأن
ﺜﺎل ،ﻳﻔ
ﺒﻴﻞ اﻟﻤ
ﺒﻘﻴ ﺔ SecureROM.ﻋﲆﺳ ﺛﻨﺎﺋ ﻲ ELF ،ﻓﻬ ﻲ ﻣﻔﻴﺪة أ ً
ﻳﻀﺎ ﻟﻠﻬﻨﺪﺳ ﺔ اﻟﻌﻜ ﺴﻴ ﺔ ﻟ ﺒﻨﺎء
ﻓ ﻲ ﺣﻴﻦ أن ﺧﺮﻳﻄ ﺔ اﻟﺬاﻛﺮة ﻣﻬﻤ ﺔ ﻟ
ﺘﻠﻔ ﺔ ﻓ ﻲ اﻷﻣﺎﻛﻦ اﻟﺼﺤﻴﺤ ﺔ
ﻣﺨﺼﺼﺎ ﻟـ IDA ،ﻳﻀﻊ اﻷﻗ ﺴﺎم اﻟﻤﺨ
ً ً
ﻣﺤﻤﻼ ﺒﻨﺎ
ﺘﺘﻢ ﻋﻤﻞ ﻣﺮاﺟﻊ ﻟﻬﺬه اﻟﻌﻨﺎوﻳﻦ .ﻛ
ﺘﺎﻟ ﻲﻳ
ﺑﺎﻟ
ﺒﻴﺎﻧﺎ ت ﻗﺪﺗﻢﺗﻌﻴﻴﻨﻪ ﻓ ﻲ ﻋﻨﻮان ﻣﺤﺪد ،و
ﻗ ﺴﻢ اﻟ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ.ﺘﻢ ﺣﻞ اﻟﻤﺮاﺟﻊ
ﺑﺤﻴ ﺚﻳﻓ ﻲ اﻟﺬاﻛﺮة ،
ّﻓﺎ ت اﻟﻜﺎﺋﻨﺎ ت
5.1.2.1ﺷﺮح ﻣﻌ ﺮ
ﺘﻮﻗﻴﻊ
ﺘﺨﺪم ﺷﻬﺎدا ت X.509.ﻟﻠﻤ ﺴﺎﻋﺪة ﻓ ﻲ ﻣﻌﺮﻓ ﺔ ﺧﻮارزﻣﻴ ﺔ اﻟ
ﺘﻮﻗﻴﻊ ،واﻟﺬيﻳ ﺴ ﺑ ًﻘﺎ ،ﻓﺈن ﻣﻌﺮﻓﺎ ت اﻟﻜﺎﺋﻦ ﻣﻨ
ﺘﺸﺮة ﺟﺪًا ﻓ ﻲ أي ﻧﻮع ﻣﻦﺳﻴﺎقﺗﺤﻠﻴﻞ اﻟ ﻛﻤﺎ أوﺿﺤﻨﺎﺳﺎ
ﺑ ﺴﻴﻂ ﻟﻠﻐﺎﻳ ﺔ ،وﻟﻜﻨﻪﻳﺠﻌﻞ ﻋﻜ ﺲ ﺧﻮارزﻣﻴﺎ ت X.509ﺘﻌﻠﻴﻖ ﻋﻠﻴﻬﺎ .إﻧﻪ
ﺜﻮر ﻋﻠﻴﻬﺎﺗﻠﻘﺎﺋ ًﻴﺎ واﻟ
ﺑﺮﻣﺠ ﻲ ﻟﻠﻌﺘﻮﻗﻴﻊ ،ﺗﻢ إﻧﺸﺎء ﻧﺺ
ﺘﺤﻘﻖ ﻣﻦ اﻟ
ﺘﺨﺪﻣ ﺔ وﻛﻴﻔﻴ ﺔ ﻋﻤﻞ اﻟ
اﻟﻤ ﺴ
ﺜﻴ ﺮًا.
أﺳﻬﻞ ﻛ
addr = 0
ﺑﻴﻨﻤﺎ addr ! = BADADDR:
#ﻳﺠ ﺐ أنﻳﻜﻮن ﺣﻘﻞ اﻟﻄﻮل ﻋﻨﺪ )dref + 8 len = get_qword (dref + 8إذا ﻛﺎن dref ! = BADADDRو len == oid_length (oid):
#ﻋﻠﻖ oidاﻟﻤﻮﺟﻮد ﻓ ﻲ addr ،أيﺗﻌﻴﻴﻦ اﻻﺳﻢ وﻧﻮع اﻟﻤﻌﻠﻮﻣﺎ ت )annotate_oid (oid ، addr
ﺑﻠ ﺔ
ﺘﺨﺰﻳﻦ اﻟﻤﻌﻠﻤﺎ ت اﻟﻘﺎ
ﺘﺨﺪﻣﻪ ﻟ
ﺛﻢ Appleﻋﲆ اﻷرﺟﺢ(ﺗ ﺴﺗﺼﺎﻻ ت .وﻣﻊ ذﻟﻚ ،ﻓﺈن )BSDوﻣﻦ
ﺒﻜ ﺔ ا
ﺑﻴﺎﻧﺎ ت ﻹدارة اﻟﻜﻴﺎﻧﺎ ت ﻓ ﻲ ﺷﻋﺎدة ،ﻳﺸﻴﺮ MIBإﱃ ﻗﺎﻋﺪة
ﺛﺎﻧﻴ ﺔ.
ﺜﺎل ﻋﺪد اﻟﻘﺮاد ﻓ ﻲ ﻣﻴﻜﺮو
ﺒﻴﻞ اﻟﻤ
ﺒﻂ ،ﻋﲆﺳ
ﻟﻠﻀ
ﺘﻬﺎ
ﺘﺪﻋﺎء داﻟ ﺔ ،وﺳﻴﻄ
ﺒﺮ اﺳ
ﺗﻤ ﺖ ﻗﺮاءة MIBsﻋ
ﺑﻌﻨﻮاﻧﻬﺎ 4 ،ﺘ ﺔ ﻣﺸﺎر إﻟﻴﻬﺎ
ﺑﺛﺎﺑﻴﺎﻧﺎ تﺘ ﻲ ﻛﺎﻧ ﺖ ﻣﺠﺮد ﻋﻨﺎﺻﺮ ﻟﻢﻳﻜﻦﺳﻬ ﻼ ً ﻣ
ﺜﻞ ﻣﻌﺮﻓﺎ ت اﻟﻜﺎﺋﻦ .ﻋﲆ ﻋﻜ ﺲ ﻣﻌﺮﻓﺎ ت اﻟﻜﺎﺋﻦ اﻟ
ﺘ ﻲﺗﻢ ﺣﻠﻬﺎ
ﺑﺎﻟﻘﻴﻢ اﻟﺘﺨﺪام ﻟﻠﻮﻇﻴﻔ ﺔ
ﺛﻢ ﻧﻌﻠﻖ ﻋﲆ أي اﺳﺑ ﺖ واﻟﻘﻴﻤ ﺔ ،
ﺜﺎ
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ ﻧﻮﻋﻬﺎ واﻟﺘﺤﻤﻴﻞ ﺟﻤﻴﻊ MIBsأوﻻ ً ،
ﺑﺮﻧﺎﻣﺠًﺎ ﻧﺼ ًﻴﺎ ﻟﺒﻨﺎ
ﺘﺑ ﺖ .ﻟﻘﺪ ﻛ
ﺛﺎﺒﺎرة ﻋﻦﺗﻌﺪاد
ﻋ
ﺘﻴﺠ ﺔ.
ﺜﺎل ﻟﻠﻨ
ﺘ ﺐ اﻟﻤﻌﻠﻮﻣﺎ ت .اﻧﻈﺮ اﻟﻜﻮد 5.2ﻟﻠﺤﺼﻮل ﻋﲆ ﻣ
واﻛ
ﺘﻴﺠ ﺔ intﻏﻴﺮ ﻣﻮﻗﻌ ﺔ ؛ //ﻗﻴﻤ ﺔ intﻏﻴﺮ ﻣﻮﻗﻌ ﺔ [xsp + Ch] [xbp-14h] BYREF
ﻧ
//؛ x0
}
ﺘ ﻲﻻ
ﺑﻞ ،ﻳﻤﻜﻦ إﻧﺸﺎء اﻷﻗ ﺴﺎم اﻟ
ﺜﺎل ﻟﻘ ﺴﻢ اﻟﻨﺺ ﻓ ﻲ اﻟﻜﻮد 5.3أ .ﻓ ﻲ اﻟﻤﻘﺎ
ﺒﺎﺷﺮة ﻓ ﻲ ﻫﺬه اﻷﻗ ﺴﺎم.ﻳﻤﻜﻦ رؤﻳ ﺔ ﻣ
ﺜﻨﺎﺋ ﻲ ﻣ
ﺑﺮﻧﺎﻣﺞ SecureROMاﻟﺧﺎص ،ﻳﻤﻜﻦﺗﻀﻤﻴﻦ
ﺘﻮﺟﻴﻪ ، llif.ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ Code 5.3b.
ﺘﺨﺪام اﻟ
ﺑﺎﺳﺑﺼﻔﺮ ،ﺘﻬﺎ
ﺘﻢﺗﻬﻴﺌ
ﺜﻨﺎﺋ ﻲ ،وﻟﻜﻦﻳﺠ ﺐ أنﻳ
ﺘﻮي ﻋﲆ أي ﺷ ﻲء ﻣﻦ اﻟﻤﻠﻒ اﻟ
ﺗﺤ
*/
*/
ﺘﻤﻬﻴﺪ.
ﺘﺨﺰﻳﻦ ﺻﻮرة اﻟ
ﺘﺨﺪم ﻟ
اﻟﻘ ﺴﻢ اﻟﻤ ﺴ
ﺘﺨﺮج ﻣﻦ ﺻﻮرة romاﻵﻣﻨ ﺔ.
ﻗ ﺴﻢ اﻟﻨﺺ ،اﻟﻤ ﺴ
ﺘﺸﻮﻳ ﺶ ﻓ ﻲ اﻟﻮﻗ ﺖ اﻟﺤﺎﻟ ﻲ.
ﺘﺨﺪم ﻓﻘﻂ ﻟﻠ
ﺗﺴ
)__start_rom_img __start_rom_img: .fill 0x10000 (b
"ax" .incbin "... / rom"، 0، 0x25390
ﺘﻠ ﺊ
ﺜﺎل ﻋﲆ ﻗ ﺴﻢ ﻣﻤ
* / .section .rom.img، "awx" .globalﻣ
* / .section .rom.text،
ﺑﺎﻟﺼﻔﺮ.
ﺜﺎل ﻋﲆ ﻗ ﺴﻢ اﻟﻨﺺ.
)أ( ﻣ
ﺘﺠﻤﻊ.
ﺘﻠﻔﺎن ﻓ ﻲ اﻟ
اﻟﻜﻮد 5.3:ﻗ ﺴﻤﺎن ﻣﺨ
1 ﺗﺤﻮﻳﻞ ﻓﺮع PACإﱃ ﻓﺮع ﻋﺎدي ))"}})r.PatchInstruction ("blraaz ") .Patch (r.PatchTmpl ("blr {{(index .Args 0
//
2
8 )
9 ﺜﻨﺎء )"}})("msr s3_0_c12_c0_0،"). Patch ( r.PatchFunctionTmpl ("vbar_el1_handler"، "{{(index .Args 1
ﺘﺘﺠﻪ اﻻﺳ
//ﻣﻌﺎﻟﺠ ﺔ ﻣ
10 r.PatchInstruction
11
12 )
13 ﺗﺼﺤﻴﺢ ﻓ ﻲ ﺷﻬﺎدة ﺟﺬر ﻣﺨﺼﺼ ﺔ ))_ r.RawPatch (symb.rom_root_ca.Start ، len (certData)، fmt.Sprintf (`.incbin "٪ s "`، certPath
//
14 certPath : = filepath.Join (filepath.Dir (r.inputPath)، ".."، "certs"، "root_ca.der") certData،
15 ): = os.ReadFile (certPath
16
ﺘﻠﻔ ﺔ.
ﺘﻤﺎﻻ ت اﻟﻤﺨ
ﺘﺮﻗﻴﻊ ،ﻋﺮض اﻻﺣ
ﺜﺎل ﻋﲆ اﻟ
اﻟﻜﻮد 5.4:ﻣ
ﺜﻨﺎﺋ ﻲ
ﺗﺮﻗﻴﻊ اﻟ
5.2.2
ﺘﻌﻠﻴﻤﺎ ت ﻣﻊ
ﺑﻬ ﺔ أو ﻧﻔ ﺲ اﻟ
ﺘﺸﺎ
ﺘﻌﻠﻴﻤﺎ ت اﻟﻤ
ﺘﺎج اﻟ
ﺜﻴﺮ ﻣﻦ اﻷﺣﻴﺎن ،ﺗﺤ
ﺘﺮﻣﻴﻢ ﻓ ﻲ أﻧﻪ ﻓ ﻲ ﻛ
ﺜﻮر ﻋﲆ اﻟﻤﻮاﻗﻊ اﻟﺼﺤﻴﺤ ﺔ ﻟﻠ
ﺋﻴ ﺴﻴ ﺔ ﻓ ﻲ اﻟﻌ
ﺑﺎ ت اﻟﺮ
ﺜﻞ إﺣﺪى اﻟﺼﻌﻮ
ﺘﻤﺗ
ﺘﻠﻔ ﺔ
ﺑﻪ ﻣﻦﺗﻌﻠﻴﻤﺎ ت blraazﻣﻊ ﻣﻌﺎﻣﻼ ت ﻣﺨﺑﺄسﺑﺪ ﻣﻦﺗﺼﺤﻴﺢ ﻋﺪد ﻻ
ﺜﻠ ﺔ ،ﻛﺎن ﻻ
ﺑﻬ ﺔ ﺟﺪًا .ﻓ ﻲ أﺣﺪ اﻷﻣ
ﺒﻂ أو إﱃ رﻗﻌ ﺔ ﻣﺸﺎ
ﺑﺎﻟﻀﺘﺼﺤﻴﺢ
ﺘﻠﻔ ﺔ إﱃ ﻧﻔ ﺲ اﻟ
ﻣﻌﺎﻣﻼ ت ﻣﺨ
ﺘﻢ
ﺑﻘ ﺔ regexﻣﻊ ﻛﻞﺗﻌﻠﻴﻤﺎ ت داﺧﻞ SecureROMوﻳ
ﺘﻢ ﻣﻄﺎ
ﺗﺒﻴﺮ ﻋﺎدي (regex).
ﺘﻌﺘﺼﺤﻴﺢ ﻛ
ﺘﻐﻠ ﺐ ﻋﲆ ﻫﺬا ،ﻳﻤﻜﻦﺗﺤﺪﻳﺪ ﻣﻮﻗﻊ اﻟ
ﺗﻬﺎ ﻏﻴﺮ PACاﻟﻤﻜﺎﻓﺌ ﺔ blr. ،ﻟﻠ
ﻣﻊ ﻧﻈﻴﺮ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃﺑﻐﺾ اﻟﻨﻈﺮ ﻋﻦ اﻟﻤﻌﺎﻣﻼ ت.ﺑ ﺴﻬﻮﻟ ﺔ ،
ﺘﻴﺢ ذﻟﻚﺗﺼﺤﻴﺢ ﺟﻤﻴﻊﺗﻌﻠﻴﻤﺎ ت blraaz
ﺑﻘ ﺔ .ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟ ﺴﻄﺮ 2ﻣﻦ اﻟﻜﻮد 5.4 ،ﻳ
ﺗﺼﺤﻴﺢ أيﺗﻌﻠﻴﻤﺎ ت ﻣﻄﺎ
ﺘﺼﺤﻴﺢ
ﺑﺎدﺋ ﺔ rom.ﻫﺬاﻳﺠﻌﻞ أداة اﻟﺘﺎﺣ ﺔ ﻓ ﻲ patcherﻣﻦ ﺧﻼل
ﺘﻢﺗﺼﺪﻳﺮ ﻣﻮاﻗﻊ اﻟﺮﻣﻮز ﻣﻦ IDAوﻣ
ﺘﺼﺤﻴﺢ ﻋﲆ ﻫﻴﺌ ﺔ ﻣﺠﻤﻮﻋ ﺔ ﻣﻦ رﻣﺰ.ﻳ
ذﻟﻚ ،ﻳﻤﻜﻦﺗﺤﺪﻳﺪ ﻣﻮاﻗﻊ اﻟ
ﺘﻐﻴﺮ -.
ﺒﺎ ﻣﺎﺗ
ﺘ ﻲ ﻏﺎﻟ ً
ﺘﻠﻔ ﺔ ،ﺣﻴ ﺚ ﻻﺗﻮﺟﺪ ﺣﺎﺟ ﺔ إﱃ ﻋﻨﺎوﻳﻦ ﻣﺸﻔﺮة -واﻟ
ﺜﺮ ﻗﻮة ﻟﻠﻌﻤﻞ ﻣﻊ إﺻﺪارا ت SecureROMاﻟﻤﺨ
أﻛ
ﺑﻤﻌﺎﻣﻼ تﺘﻔﺎظ
ﺑﺪ ﻣﻦ اﻻﺣ
ﺑﻖ ،ﻛﺎن ﻻ
ﺜﺎل اﻟ ﺴﺎ
ﺑﺎﻟﻌﻮدة إﱃ اﻟﻤ
ﺒﻴﻘﻪ 8.
ﺘﻢﺗﻄ
ﺘﺼﺤﻴﺢ ﻋﲆ اﻟﻤﻮﻗﻊ اﻟﻤﺤﺪد ﺣﻴ ﺚﻳ
ﺘﻮﻳﺎ ت اﻟ
ﺘﻤﺪ ﻣﺤ
ﺛﻠ ﺔ ﻣﻊ اﻟﺮﻗﻊ .ﻗﺪﺗﻌ
ﺑ ﺔ ﻣﻤﺎ
ﺗﻨﺸﺄ ﺻﻌﻮ
ﺒﺪﻟ ﺔ .ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟ ﺴﻄﺮ 2
ﺘﺘﻌﻠﻴﻤﺎ ت اﻟﻤ ﺴ
ﺑﺎﻟﻮﺻﻮل إﱃ أي ﻣﻌﻠﻮﻣﺎ ت ﺣﻮل اﻟﺑﺄنﺗﻜﻮن ﺣﺠﺠﻬﺎ ﻧﻤﻮذﺟﻴ ﺔ ،ﻣﻤﺎﻳ ﺴﻤﺢﺘﺮﻗﻴﻊ
ﺑﻌﺾ أدوا ت اﻟblraazﻛﻤﺎ ﻫ ﻲ.ﺗ ﺴﻤﺢ
ﺒ ﺔ.
ﺑﻪ ﺷﺎﺋ
ﺑﺸﻜﻞ ﻻﺗﺸﻮﺘﺮﻗﻴﻊ blraazﻟﻠﻌﻤﻞ
ﺑﻣﻦ اﻟﻜﻮد 5.4 ،ﻓﺈن ﻫﺬاﻳ ﺴﻤﺢ
ﺗﻈﻬﺮ
stp x29، x30، [sp، # -0x10]! mov x29، sp //
ﺘﻌﻠﻴﻤﺎ ت اﻟﺠﺪﻳﺪة ﻫﻨﺎ ldp x29، x30، [sp]، # 0x10
اﻟ
ﻳﻤﻴﻦ
ﺜﻞ
ﺒﺪو ،ﻣ
ﺑﻘ ﺔ ﻗﺪﺗﺠﻌﻞ اﻷﻣﺮﻳ
ﺜﺎل ،ﺗﻨﻔﻴﺬ 8ﻓ ﻲ ﺣﻴﻦ أن اﻟﻔﻘﺮة اﻟ ﺴﺎ
ﺒﻴﻞ اﻟﻤ
ﺘﺠﻤﻴﻊ ﻓﻘﻂ .ﻋﲆﺳ
ﺘﺨﺪامﺗﻌﻠﻴﻤﺎ ت اﻟ
ﺑﺎﺳﺘﺮﻗﻴﻊ
ﺜﻞ ﻓ ﻲ اﻟ
ﺘﻤﺑ ﺔ أﺧﺮىﺗ
ﻫﻨﺎك ﺻﻌﻮ
ﺒﻴﻌ ًﻴﺎ
ﺘﻤﺎدًا ﻋﲆ ﻣﺎ إذا ﻛﺎن اﻟﻤﺮء ﻗﺪﻳﺮﻏ ﺐ ﻓ ﻲ اﻟﻌﻮدة إﱃﺗﺪﻓﻖ اﻟﻜﻮد اﻷﺻﻠ ﻲ أم ﻻ ،ﻳﻜﻮن اﻟﻔﺮع ﻃ
9اﻋ
ﺗﺼﺎل (bl).
اﻟﻘﻔﺰ ) ب( أوﺗﻌﻠﻴﻤﺎ ت اﻻ
ﺘﺼﺤﻴﺤﺎ ت ﻟﻴ ﺴ ﺖ ﻓ ﻲ ﻣ ﺴﺎرا تﺳﺎﺧﻨ ﺔ.
ﺘﻔﻜﻴﺮ ﻓﻴﻪ وﺟﻤﻴﻊ ﻫﺬه اﻟ
ﺜﻴﺮ اﻟ
ﺑﻜﺑﻌﺾ اﻟﺸ ﻲء ،إﻻ أﻧﻪ ﻣﻦ اﻷﺳﻬﻞ10ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أن ﻫﺬا ﻗﺪﻳﻜﻮن ﻏﻴﺮ ﻻﺋﻖ
ﺜﺮ.
ﺑ ﺖ ﻋﲆ اﻷﻛ
ﺘﻮيﺗﻌﻠﻴﻤﺎ ت اﻟﻔﺮع ﻋﲆ ﻗﻴﻤ ﺔ ﻓﻮرﻳ ﺔ 24
ﺑﺎﻳ ﺖ ،ﻳﻤﻜﻦ أنﺗﺤ
ﺑﺤﺠﻢ 4ﺘﺔ
ﺑﺛﺎ
11ﻧﻈ ﺮًاﻷن اﻹرﺷﺎدا ت اﻟﻤﻮﺟﻮدة ﻋﲆ ARM
Machine Translated by Google
ﺘﺠﻤﻴﻊ.
ﺑﻤﺠﺮد اﻟ FETA -اﻟﻤﺨﺼﺺ اﻟﻤﺨﺼﺺ ﻟﺪﻳﻨﺎ ،اﻧﻈﺮ اﻟﻘ ﺴﻢ 5.8 -ﺳﻴﻜﻮن ﻣﻤ ﻼ ً ﻟﻠﻐﺎﻳ ﺔ ﻟ
ﺘﺤﻘﻴﻘﻪ
ﺘﺮﻗﻴﻊ ﻋﻨﻮان ﻣﻊ وﻇﻴﻔ ﺔ ﺧﺎرﺟﻴ ﺔ
ﺑﻮﻇﻴﻔ ﺔ ﻣﺨﺼﺼ ﺔ.ﺗﺤﻘﻴﻘﺎ ﻟﻬﺬه اﻟﻐﺎﻳ ﺔ ،ﻫﻨﺎك ﻣﺼﺤﺤﺎ ت ﻟﺑﺎﻟﻜﺎﻣﻞﺒﺪالﺗﻨﻔﻴﺬ اﻟﻮﻇﺎﺋﻒ
ﺘﺒﺎ ﻣﺎﻳﻜﻮن ﻣﻦ اﻟﻤﻨﻄﻘ ﻲ اﺳ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﻏﺎﻟ ً
ﺘﺪﻋﺎء
ﺘﺄﻛﺪ ﻣﻦ إﻣﻜﺎﻧﻴ ﺔ اﺳ
ﺘﻌﺪدة .ﻣﺮة أﺧﺮى ،ﻟﻠ
ﺘﻌﻠﻴﻤﺎ ت ﻣ
ﺑﻪ ﻟ
ﺑﺸﻜﻞ ﻣﺸﺎﺘﺮﻗﻴﻊ
ﺜﻮر ﻋﻠﻴﻬﺎ.ﻳﻌﻤﻞ اﻟ
ﺑﻂ ﻣﻦ اﻟﻌ
ﺘﻤﻜﻦ اﻟﺮا
ﺘﻰﻳ
ﺗﺼﺪﻳﺮ ﻫﺎ ،ﺣ
ﻛﺎﻣﻠ ﺔ.ﻳﺠ ﺐﺗﺤﺪﻳﺪ اﻟﻮﻇﻴﻔ ﺔ ﻓ ﻲ Cو
ﺘﻌﻠﻴﻤﺎ ت اﻟﻤﻮﺿﻮﻋ ﺔ ﻓ ﻲ ﻧﻬﺎﻳ ﺔ ﻗ ﺴﻢ
ﺑﻌﺾ ﺧﺪاع اﻟﻌﻨﻮان 12 ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟﻜﻮد 5.7.ﻫﺬه ﻫ ﻲ اﻟﺘﺨﺪام
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎ اﺳ
ﺑﻌﻴﺪة" ،ﻳ
ﺘﻰ ﻟﻮ ﻛﺎﻧ ﺖ "
ﺑﺎﻟﻔﻌﻞ ﺣاﻟﻮﻇﻴﻔ ﺔ
ﺘﻰﺗﺸﻜﻴﻞ
ﺘﻠﻘﺎ ﻫﺎ اﻟﻮﻇﻴﻔ ﺔ .ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟ ﺴﻄﺮ 11ﻣﻦ اﻟﻜﻮد 5.4 ،ﻳﻤﻜﻦ ﺣ
ﺘ ﻲﺗ ﺜﺎل أ ً
ﻳﻀﺎ أﻧﻪﻳﻤﻜﻨﻨﺎﺗﻐﻴﻴﺮ اﻟﻤﻌﻠﻤﺎ ت اﻟ ﺒﻞ.ﻳﻮﺿﺢ اﻟﻤ
اﻟﻨﺺ ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻣﻦ ﻗ
ﺘﻌﻠﻴﻤﺎ ت اﻟﻌﺎدﻳ ﺔ.
ﺛﻠ ﺔ ﻟﻠ
ﺑﻄﺮﻳﻘ ﺔ ﻣﻤﺎ ﺘﺪﻋﺎؤ ﻫﺎ ﺣﺪﻳ ً
ﺜﺎ ﺘ ﻲﺗﻢ اﺳ
ﺣﺠﺞ اﻟﻮﻇﻴﻔ ﺔ اﻟ
ﺘﻤﺎم إﺻﻼﺣﻬﻤﺎ.
ﺜﻴﺮ ﻟﻼ ﻫ
ﻔﺼ ﻼن ﻫﻨﺎ ،ﺣﻴ ﺚ ﻛﺎن ﻣﻦ اﻟﻤ
ﺜﻨﺎﺋ ﻲُﻣ ﱠ
ﺗﺎن ﺣﻴ ﺚ ﻛﺎنﻳﺠ ﺐﺗﺼﺤﻴﺢ اﻟﻤﻠﻒ اﻟ
ﺘﺎن ﻣﺤﺪد
ﺣﺎﻟ
ﺒﻮﻃ ﺔ وﻓ ًﻘﺎ ﻟ
ﺘﻌﻠﻴﻤﺎ ت ﻓﺮع ﻣ ﺴﻮغ اﻟﻮﺻﻮل اﻟﻤﺤﻤ ﻲ )(PAC ﺒﺪو أﻧﻬﺎ ﻣﻀ
ﺗﻴﺢ ﻣ ﺴﻮغ اﻟﻮﺻﻮل اﻟﻤﺤﻤ ﻲ )(PACﻳ
ﻋﻨﺪﻣﺎ ﺣﺪ ث ذﻟﻚ ،ﺗﻔﺎﺟﺄﻧﺎﻷن ﻣﻔﺎ
ﺑﺎﻟﻔﻌﻞ PACﻋﲆ أﺟﻬﺰة iPhoneﺘﺸﻐﻴﻞ .ﻟﺤ ﺴﻦ اﻟﺤﻆ [4] ،ﻓﺤﺼ ﺖ
ﺑﺪء اﻟﺘﻢﺗﺤﺪﻳﺪ أي ﻣﻦ ﻣﺆﺷﺮا ت اﻟﻮﻇﺎﺋﻒ ﻋﻨﺪ
ﺒﺪو أﻧﻪ ﻻﻳ
ﻟﻠﻌﻤﻞ .وﻣﻊ ذﻟﻚ ،ﻳ
ﺒﺪو أن SecureROMﻳﻘﻮم ّﻦ ﻣﻔﺎ
ﺗﻴﺢ PACاﻟﻤﺤﺪدة أوﺗﻌﻄﻠﻬﺎ.ﻳ ﺘ ﻲﺗﻤﻜ
ﺘﻨﻔﻴﺬ ﻣﻦ SCTLR EL1اﻟ
ﺘﺎ ت اﻟﻤﺤﺪدة ﻟﻠ
ﺒﺜﻮر ﻋﲆ اﻟ
ﺗﻤﻜﻨ ﺖ ﻣﻦ اﻟﻌ
ﺘﻔﺼﻴﻞ و
ﺑﺎﻟ
ﺑـ blr.
ﺒﺪال ﺟﻤﻴﻊ blraaz
ﺘﺛﻢ ،ﻓﺈن اﻟﺤﻞ اﻟ ﺴﻬﻞ ﻟﻬﺬه اﻟﻤﺸﻜﻠ ﺔ ﻫﻮ اﺳﺗﻴﺢ Bﻓﻘﻂ ﻟﻠﺤﺼﻮل ﻋﲆ اﻹرﺷﺎدا ت .وﻣﻦ
ﺘﻤﻜﻴﻦ ﻣﻔﺎ
ﺑ
ﺒﻴﺮ ﻣﻦ اﻟﺬاﻛﺮة ﻟﻜﻮﻣ ﺔ إﺿﺎﻓ ﺔ chunk15.ﻟ ﺴﻮء اﻟﺤﻆ ،أدى ﻫﺬا إﱃ ﺣﺎﻟ ﺔ ﻣﻦ
ﺘﻢ ذﻟﻚ ،ﻣﻦ ﺧﻼلﺗﻮﻓﻴﺮ ﺟﺰء ﻛ
ﺜﻴﺮ ﻟﻠﻔﻀﻮل ﻋﻨﺪ ﻣﺤﺎوﻟ ﺔﺗﻬﻴﺌ ﺔ اﻟﻜﻮﻣ ﺔ.ﻳ
ﻟﻮﺣﻆ ﺣﺎد ث آﺧﺮ ﻣ
ُﻨﺸ ﺊﺗﺨﺼﻴﺼﻴﻦ ﻟﻠﺤﺮاﺳ ﺔ ،
ﺘﺸﻔﻨﺎ أن ﻣﺠﻤﻮﻋ ﺔ إﺿﺎﻓ ﺔ اﻟﻜﻮﻣ ﺔﺗ
ﺘﻘﺼﺎء ،اﻛ
ﺑﻌﺪ إﺟﺮاء ﻣﺰﻳﺪ ﻣﻦ اﻻﺳﺘﺨﺼﻴﺺ اﻟﻜﻮﻣ ﺔ ﻏﻴﺮ ﺻﺎﻟﺢ.
ﺒﺎري ﻟ
ﺘاﻟﺬﻋﺮ ،ﺣﻴ ﺚ ادﻋﻰ أن اﻟﻤﺠﻤﻮع اﻻﺧ
ﺒﺎري
ﺘﺑﺎﻟﻔﻌﻞ اﻟﻤﺠﻤﻮع اﻻﺧﺘﺨﺼﻴﺺ ﻓ ﻲ اﻟﻨﻬﺎﻳ ﺔ وﻛﺎن
ﺒﺎري ﻏﻴﺮ اﻟﺼﺤﻴﺢ ﻫﻮ اﻟ
ﺘﺘﺨﺼﻴﺺ ﻣﻊ اﻟﻤﺠﻤﻮع اﻻﺧ ً
ﺒﺎﺷﺮة .ﻛﺎن اﻟ
ﺒﺪاﻳ ﺔ وﻓ ﻲ ﻧﻬﺎﻳ ﺔ اﻟﻜﻮﻣ ﺔ ﻣ
ﻓ ﻲ اﻟ
ﺘﻮى أﻋﲆ.
ﺑﻠﻐ ﺔ ذا ت ﻣ ﺴﺒﻨﺎ
ﺘﺘﺮﺟﻢ ﻧﻔ ﺴﻪ ،إذا ﻛ
12ﻫﺬا اﻟﻨﻮع ﻣﻦ اﻟﺨﺪاع ﺷﺎﺋﻊ ﺟﺪًا ﻓ ﻲ ARMوﺳﻴﺼﺪره اﻟﻤ
ﺗﺤﺪﻳﺪًا
ﺘﺸﺎف اﻟﺨﻄﺄ اﻟﺬيﻳﺤﺪ ث.ﺗﻜﻤﻦ اﻟﻤﺸﻜﻠ ﺔ ﻓ ﻲ وﻇﻴﻔ ﺔ bzero ،و ﺑ ًﻘﺎ ﻋﲆ أﺟﻬﺰة iPhoneوﺟﻌﻞ ﺣﻴﺎ
ﺗﻨﺎ أﺳﻬﻞ ﻓ ﻲ اﻛ ﺑﺤ ً
ﺜﺎﺳﺎ ﻟﺤ ﺴﻦ اﻟﺤﻆ ،ﻛﺎن ][2ﻗﺪ أﺟﺮى
ﺘﺎ ت إﱃ اﻟﺼﻔﺮ ﻣﻦ
ﺒﺎﻳ
ﺑﺎﻳ ﺖ -ﻣﻦ اﻟﺬاﻛﺮة ﻓ ﻲ وﻗ ﺖ واﺣﺪ.ﺗﻢﺗﺤﺪﻳﺪ ﻋﺪد اﻟ
ﺘﺤﺪﻳﺪ 0x40
ﺒﻴﺮة -ﻋﲆ وﺟﻪ اﻟ
ﺘﺨﺪم dc zvaﻹﺧﺮاج أﺟﺰاء ﻛ
ﺑﻬﺎ.ﻳ ﺴﻣ ﺴﺎر اﻟﻜﻮد اﻟ ﺴﺮﻳﻊ اﻟﺨﺎص
ﺘﻢﺗﺤ ﺴﻴﻦ ﻫﺬا
ﺘﻤﻞ أنﻳ
ﺘﻢﺗﺠﻤﻴﻌﻪ ﻟﺸﺮﻳﺤ ﺔ ﻣﻌﻴﻨ ﺔ ،ﻛﻤﺎﻳﻮﺣ ﻲ [2] ،ﻓﻤﻦ اﻟﻤﺤ
ﺒﺮﺳﺠﻞ DCZID EL0 .ﻧﻈ ﺮًاﻷن SecureROMﻳ
ﺗﻬﺎ ﻋ
ﺘﻨﻔﻴﺬ ،وﻟﻜﻦﻳﻤﻜﻦ ﻗﺮاء
ﺧﻼل اﻟ
ﺒﻴﺮ
ﺒ ﺴﺎﻃ ﺔ ﺻﻔﻴ ﺮًا ﻟﻌﺪد ﻛ
ﺑﺒﺎري .ﻟﻘﺪ ﻛﺎن
ﺘﺑﺎﻳ ﺖ ،و ﻫﻮ ﻣﺎﻳﻔ ﺴﺮﺗﺼﻔﻴﺮ اﻟﻤﺠﻤﻮع اﻻﺧ
ﺒﻠﻎ 512
ﺘﺮاﺿﻴ ﺔﺗ
ﺘﺨﺪم QEMUﻗﻴﻤ ﺔ اﻓ
ﺗﻤﺎﻣﺎ .ﻋﻼوة ﻋﲆ ذﻟﻚ ،ﺗ ﺴ
ً اﻟﻔﺤﺺ أوﺗﺠﺎ ﻫﻠﻪ
ﺘﻴﺎر وﺣﺪة اﻟﻤﻌﺎﻟﺠ ﺔ اﻟﻤﺮﻛﺰﻳ ﺔ ﻓ ﻲ QEMU
ﺒﺎدل ﻹﻃﻼق اﻟﻨﺎر .ﻟ ﺴﻮء اﻟﺤﻆ ،ﻣﺎ زﻟﻨﺎ ﻧﺮﻏ ﺐ ﻓ ﻲﺗﻤﻜﻴﻦ PAC ،ﻟﺬا ﻟﻢﻳﻜﻦ اﺧ
ﺛﻢ وﻗﻊ ﺟﺰء اﻟﺤﺎرس ﻓ ﻲﺗﺘﺎ ت ،وﻣﻦ
ﺒﺎﻳ
ﺟﺪًا ﻣﻦ اﻟ
ﺘ ﻲ ﻻﻳﺠ ﺐ اﻟﻮﺻﻮل إﻟﻴﻬﺎ ﻣﻄﻠ ًﻘﺎ.
ﺒﻴﺮة ﺟﺪًا ،ﺗﻠﻚ اﻟ
ﺘﺨﺪام اﻟﻤ ﺴﺎر اﻟ ﺴﺮﻳﻊ ﻓﻘﻂ ﻣﻊ ﻣﺪﺧﻼ ت ﻛ
ﺘﻐﻠ ﺐ ﻋﲆ ﻫﺬا ،ﺗﻢﺗﺼﺤﻴﺢ bzeroﻻﺳ
ﺒﺎﻳ ﺖ ﻣﻤﻜﻨًﺎ .ﻟﻠ
ﺑﺎﻟﻌﺪد اﻟﺼﺤﻴﺢ ﻣﻦ اﻟ
ﺒﺮﻣﺠﻴ ﺔ 5.4.
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﺼﺤﻴﺢ اﻟﺬيﺗﻢﺗﻨﻔﻴﺬه ﻓ ﻲ اﻟ ﺴﻄﺮ 4ﻣﻦ اﻟ ﻳﻤﻜﻦ أ ً
ﻳﻀﺎ رؤﻳ ﺔ اﻟ
ﺑﺖ
ﺜﺎ
ﺘﺤﻠﻴﻞ اﻟ
ﺘﺨﺪام اﻟﺮﻣﻮز ﻣﻦ اﻟ
5.2.3اﺳ
ﺑ ﺖ ﻣﻦ C.ﺣﺪود
ﺜﺎ
ﺘﺤﻠﻴﻞ اﻟ
ﺘﺪﻋﺎء أي رﻣﻮز ﻣﻮﺟﻮدة ﻣﻦ ﺧﻼل اﻟ
ﺋﻴ ﺴﻴ ﺔ ﻓ ﻲ اﻟﻘﺪرة ﻋﲆ اﺳ
ﺜﻞ إﺣﺪى اﻟﻤﻴﺰا ت اﻟﺮ
ﺘﻤ ﺘﻜﻮن ﻗﺎد ًرا ﻋﲆ ﺟﻌﻞ SecureROMﺻﺪﻳ ًﻘﺎ واﻧ
ﺘﻘﺎﺋ ًﻴﺎ ،ﺗ ﻟ
ﺘﺎﻟ ﻲ C.
ﺑﺎﻟ
ﺘﺮﺟﻢ ،و
ﺋﻴ ﺔ ﻟﻠﻤ
ﺑ ﺔ وﺟﻌﻞ اﻟﺮﻣﻮز ﻣﺮ
ﺘﺎ
ﺑﺎ ت ﻋﻨﺪﺗﺼﺪﻳﺮ ﻣﻌﻠﻮﻣﺎ ت اﻟﻜ
ﺗﻨﺸﺄ اﻟﺼﻌﻮ
16.
ﺑﺸﺠﺮة ﻣﻦﺘﻔﻆ
ﺜﻨﺎﺋ ﻲ .إﻧﻪﻳﺤ
ﺘﺮﻗﻴﻊ اﻟﻤﻠﻒ اﻟ
ﺑ ﺑﺸﻜﻞﺳﺮﻳﻊ واﻟ ﺴﻤﺎح أ ً
ﻳﻀﺎ ﺑﻴﺎﻧﺎ ت ﻣﺨﺼﺼ ﺔ -ﻟﻠﺤﻔﺎظ ﻋﲆ ﻫﺬه اﻷﺟﺰاءﺑﻨﻴ ﺔﺘﺨﺪام ChunkTree -و ﻫ ﻲ
ﺘﻢ اﺳ
ﻳ
ﺘﺪ ﻣﻌً ﺎ ﻋﲆ ﻧﻄﺎق ﻋﻨﻮان ﻣﺤﺪد.
ﺘ ﻲﺗﻤ
اﻟﻘﻄﻊ ،اﻟ
ﺜﻮر ﻋﲆ
ﺘﻢ اﻟﻌ
ﺑﻘﻄﻌ ﺔ واﺣﺪة .ﻋﻨﺪ إﺿﺎﻓ ﺔ ﺟﺰء ﺟﺪﻳﺪ ،ﻳﺑﺎﻟﻜﺎﻣﻞﺘﺪ ﻧﻄﺎق اﻟﻌﻨﻮان
ﺒﺪﺋ ًﻴﺎ ،ﻳﻤ
ﺑﺎﻳ ﺖ واﺣﺪ ﻏﻴﺮ ﻣﻮﺟﻮد ﻓ ﻲ ﻗﻄﻌ ﺔ ﻣﻌﻴﻨ ﺔ .ﻣ ﺘﺪاﺧﻞ اﻟﻘﻄﻊ ﻣﻄﻠ ًﻘﺎ وﻻﻳﻮﺟﺪ أ
ﺑﺪًا ﻻﺗ
ﺛﻐﺮا تﻳﻤﻜﻦ أنﺗﻈﻬﺮ.ﺑﺎﻟﻜﺎﻣﻞ وﻋﺪم وﺟﻮد أي
ﺘﺄﻛﺪ ﻣﻦﺗﻀﻤﻴﻦ SecureROM
ﺑﻬﺬه اﻟﻄﺮﻳﻘ ﺔ ،ﻳﻤﻜﻨﻨﺎ اﻟﺘﺪاﺧﻠ ﺔ ﺣﺎﻟ ًﻴﺎ ﻣﻊ اﻟﺠﺰء اﻟﺠﺪﻳﺪ وإﻣﺎﺗﻘ ﺴﻴﻤﻬﺎ أوﺗﻘﺼﻴﺮ ﻫﺎ.
اﻷﺟﺰاء اﻟﻤ
ﺘﺎﻟ ﻲ ،ﻓﺈن اﻟﺨﻄﻮة اﻷوﱃ ﻫ ﻲ إﺿﺎﻓ ﺔ ﻗﻄﻌ ﺔ
ﺑﺎﻟ
ﺑﺪاﻳ ﺔ اﻟﻘﻄﻊ .وﺒﺪأ ﻣﻦ ﻋﻨﻮان
ﺒﻂﻳ
ﺗﻹرﺳﺎل ﻣﻌﻠﻮﻣﺎ ت اﻟﺮﻣﺰ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ Code 5.5 ،ﻳﻤﻜﻦ أنﻳﻜﻮن ﻟﻜﻞ ﻗﻄﻌ ﺔ رﻣﺰ ﻣﺮ
ﺒﺪﻻ ً ﻣﻦ إﺻﺪارﺗﻮﺟﻴﻪ nibcni.ﻟﻠﻤﻘﻄﻊ ،ﺳﻴ
ﺘﻢ ﺑﻬﺎ .إذا ﻛﺎﻧ ﺖ ﻫﺬه ﻫ ﻲ اﻟﺤﺎﻟ ﺔ ،ﻓﺒﻄ ﺔ
ﺗﺘﺠﻤﻴﻊ اﻟﻤﺮ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﻳﻤﻜﻦ أنﻳﻜﻮن ﻟﻠﻘﻄﻌ ﺔﺳﻠ ﺴﻠ ﺔ ﻣﻦ اﻟﻟﻜﻞ رﻣﺰُﻣ ﺼﺪﱠر.
ﺘﺠﻤﻴﻊ اﻟﻤﻮﺟﻮد
ﺘ ﻲﺗﺼﺪر اﻟ
ﺛ ﺔ اﻟ
ﺜﻼﺜﺎل ﻋﲆ اﻷﺟﺰاء اﻟ
ﺘﺠﻤﻴﻊ اﻟﻤﺼﺤﺢ.ﻳﻈﻬﺮ ﻣ
ﺜﻨﺎﺋ ﻲ ،ﻋﻦ ﻃﺮﻳﻖ إﺿﺎﻓ ﺔ أﺟﺰاء ﻣﻦ اﻟ
ﺘﺠﻤﻴﻊ ﻧﻔ ﺴﻪ .ﻫﺬاﻳﺸﻜﻞ اﻟﻮاﺟﻬ ﺔ اﻟﺨﻠﻔﻴ ﺔ ﻟﻠﺮﻗﻊ اﻟ
إرﺳﺎل اﻟ
ﻓ ﻲ اﻟﻜﻮد 5.5ﻓ ﻲ اﻟﻜﻮد 5.8.
][ﻗﻄﻌ ﺔ}
ﺒﺪاﻳ ﺔ0x100002dc4 ، :اﻟﻨﻬﺎﻳ ﺔ0x100002e20 ، :اﻟﺮﻣﺰ"rom_platform_irq"} ، :
اﻟﻘﻄﻌ ﺔ }اﻟ
ﺒﺪاﻳ ﺔ0x100002e20 ، :اﻟﻨﻬﺎﻳ ﺔ0x100002e24 ، ASM: "blr X8"} ، :
اﻟﻘﻄﻌ ﺔ }اﻟ
ﺒﺪاﻳ ﺔ0x100002e24 ، :اﻟﻨﻬﺎﻳ ﺔ0x100002e98} :
ﻣﺠﻤﻮﻋ ﺔ }اﻟ
}
ﺜﺎل ﻋﲆ اﻟﻘﻄﻊ.
اﻟﻜﻮد 5.8:ﻣ
ﺑﺮﻣﺰ
5.2.4 Backtrace
ﺒﺪو أﻧﻬﺎ
ﺘ ﻲﻳ
ﺒﻘﻴ ﺔ ،واﻟ
ﺘﺘﺼﺤﻴﺢ اﻟﻤ
ﺑﻌﺾ رﻣﻮز اﻟ ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﻫﻨﺎك أ ً
ﻳﻀﺎ ﺛﻨﺎءﺗﺼﺤﻴﺢ اﻷﺧﻄﺎء.
ﺜﻤﻦ أ
ﺑﺒ ﺖ stacktrace 18اﻟﻤﺮﻣﺰ ﻣﻊ ﻣﻌﺎﻟﺠﺎ ت اﻹﺷﺎرة أﻧﻪ ﻻﻳﻘﺪر
ﺛأ
ﺒﺐ
ﺛﻨﺎءﺗﺼﺤﻴﺢ اﻷﺧﻄﺎء .ﺧﺎﺻ ﺔ ﻋﻨﺪ ﻣﺤﺎوﻟ ﺔ ﻣﻌﺮﻓ ﺔﺳ
ﺗﻮﻓﻴﺮ ﻣﻌﻠﻮﻣﺎ ت إﺿﺎﻓﻴ ﺔ أ ﺘ ﺴﺠﻴﻞ ،ﻳﻤﻜﻦ ﺟﻤﻌﻬﺎ أ ً
ﻳﻀﺎ و ﺑﻂ وﻇﻴﻔ ﺔ اﻟ
ﺑﻤﻌﺮف ﻓﺮﻳﺪ .ﻣﻦ ﺧﻼل رﺛًﺎ ﻣﻌﻴﻨ ﺔ
ﺗ ﺴﺠﻞ أﺣﺪا
ﺜﺎﻻ ً ﻹﺧﺮاج
ُﻈﻬﺮ اﻟﺮﻣﺰ 5.9ﻣ
ﺘ ﻲ ﻛﺎﻧ ﺖ ﻏﻴﺮ ﺻﺤﻴﺤ ﺔ.ﻳ ً
ﻋﺎدةﺗﺤﺪﻳﺪ اﻟﺨﺎﺻﻴ ﺔ اﻟﺪﻗﻴﻘ ﺔ اﻟ ﺘﺤﻘﻖ IMG4 ،ﻛﺎﻧ ﺖ اﻟ ﺴﺠﻼ ت ﻣﻔﻴﺪة ﻟﻠﻐﺎﻳ ﺔ ،ﺣﻴ ﺚﻳﻤﻜﻨﻬﺎ
رﻓﺾ ﺻﻮرة ﻣﻦ ﺧﻼل اﻟ
ﺒﻊ اﻟﻤﻜﺪس اﻟﻤﺮﻣﺰ.
ﺘﺑﻤﺎ ﻓ ﻲ ذﻟﻚﺗﺘﻬﺎ
إﺷﺎرةﺗﻢ ﻣﻌﺎﻟﺠ
ﺒﺎع ﻣﺆﺷﺮ
ﺗﺑﻤﺠﺮد اﺑ ﺴﺎﻃ ﺔ ،ﺑﻜﻞﺒﻊ اﻟﻤﻜﺪس
ﺘﺘﺮدادﺗ
ﺒﻴﻌ ﻲ .ﻟﺬﻟﻚ ،ﻳﻤﻜﻦ اﺳ
ﺑﺸﻜﻞ ﻃﺑﺈﻋﺪاد إﻃﺎر اﻟﻤﻜﺪسﺗﻘﻮم
ﺗﻴ ﺔ أو thunk20ﻓ ﻲ SecureROM
ﺒﺎ
أي وﻇﻴﻔ ﺔ ﻏﻴﺮ ﻧ
ﺑﺠﺎﻧ ﺐ ﻧﻄﺎق ﻋﻨﺎوﻳﻨﻬﺎ .إذا ﻛﺎن ﻫﻨﺎك ﻋﻨﻮانﺑﺠﻤﻴﻊ اﻟﺮﻣﻮزﺑﻘﺎﺋﻤ ﺔﺘﻔﺎظ
ﺘﺮداد أﺳﻤﺎء اﻟﺮﻣﻮز ﻣﻦ ﺧﻼل اﻻﺣ
ﺘﻢ اﺳ
اﻹﻃﺎر.ﺗﻈﻬﺮ ﻫﺬه اﻟﺨﻮارزﻣﻴ ﺔ اﻷﺳﺎﺳﻴ ﺔ ﻓ ﻲ اﻟﻜﻮد 5.10.ﻳ
ﺒﻊ اﻟﻤﻜﺪس داﺧﻞ ﻣﺼﺤﺢ اﻷﺧﻄﺎء ،ﻟﻜﻨﻪﻳﻈﻞ ﻣﻔﻴﺪًا
ﺘﺘﺮداد اﻻﺳﻢ .ﻟﻸﺳﻒ ،ﻻﻳﻌﻤﻞ ﻫﺬا ﻓ ﻲﺗﻮﻓﻴﺮﺗ
ﺘﻢ اﺳ
ﺒﻊ اﻟﻤﻜﺪس داﺧﻞ أﺣﺪ ﻧﻄﺎق ﻋﻨﺎوﻳﻦ اﻟﺮﻣﻮز ،ﻓ ﺴﻴ
ﺘﻓ ﻲﺗ
ﺑﻐﺾ اﻟﻨﻈﺮ.
ﺒﻌﺾ.
ﺑﻌﻀﻬﺎ اﻟﺑﻬ ﺔ ﺟﺪًا ﻣﻊ
ﺘﺸﺎ
ﺑﺎﻳ ﺖ -وﻣﺗﺼﻞ إﱃ ﻋﺪة ﻣﻴﻐﺎ
ﺒﻴﺮة ﺟﺪًا -
ﺘﻴﺎر ﻣﻠﻔﺎ ت IMG4اﻟﻌﺎدﻳ ﺔ ﻣﻦ Apple ،ﻷﻧﻬﺎ ﻛ
ﺒﻴﻦ ،ﻻﻳﻤﻜﻦ اﺧ
ﺑﺎﻟﻨﻈﺮ إﱃ ﻫﺬﻳﻦ اﻟﻤﻄﻠ
ﺘﻰ ﺗﻤﺎﻣﺎ ،وﻟﻜﻦ أ ً
ﻳﻀﺎ ﻏﻴﺮ ﺻﺎﻟﺤ ﺔ أو ﺣ ً ﺒﺎ ت .ﻻﻳﻤﻜﻦ ﻓﻘﻂ إﻧﺸﺎء ﻣﻠﻔﺎ ت IMG4ﺻﺎﻟﺤ ﺔ
ﺘﻄﻠ
ﺑﺎﻟﻤﺘ ﻲﺗﻔ ﻲ
ﻟﺬﻟﻚ ،ﺗﻢﺗﻄﻮﻳﺮ أداة ﻣﺨﺼﺼ ﺔ ﻹﻧﺸﺎء ﻣﻠﻔﺎ ت إدﺧﺎل IMG4اﻟ
ﺗﻠﻚ.
ﺘﻨ ﺴﻴﻖ -
ﻣﻌﻄﻠ ﺔ -ﻣﻦ ﺣﻴ ﺚ اﻟ
ّف
ﺜﻞ اﻻﺳﻢ أو ﻣﻌ ﺮ
ﺗﻐﻴﻴﺮ اﻟﺨﺼﺎﺋﺺ ﻣ
ﻋﺎل -
ٍ ﺘﻮى
ﺘﻢﺗﺤﻮﻳﺮه ﻋﺸﻮاﺋ ًﻴﺎ.ﻳﻤﻜﻦ أنﺗﺤﺪ ث اﻟﻄﻔﺮا ت إﻣﺎ ﻋﲆ ﻣ ﺴ
ﺛﻢﻳﺑ ﺴﻴﻂ ﺻﺎﻟﺢ ،ﺑﻤﻠﻒﺒﺪأ اﻷداة
ﺘﺤﻘﻴﻖ ذﻟﻚ ،ﺗ
ﻟ
ﺑﻌﺪ ﻛﻞ اﻟﻄﻔﺮا ت ،ﻓﺈﻧﻪﻳﺤﺪد ﻣﺎ إذا ﻛﺎن اﻹدﺧﺎل ﻻﺘﻮﻳﺎ ت DERاﻟﻤﺸﻔﺮ.
ﺗﻐﻴﻴﺮ اﻟﻄﻮل أو اﻟﻌﻼﻣ ﺔ أو ﻣﺤ
ﺘﻮى أﻗﻞ -
ﺑﺸﻬﺎدة ﺟﺬر ﻣﺰﻳﻔ ﺔ -أو ﻣ ﺴﺘﻮﻗﻴﻊ
اﻟﺸﺮﻳﺤ ﺔ اﻟﻔﺮﻳﺪ أو اﻟ
ُﺮﺟﻊ اﻟﺤﻤﻮﻟ ﺔ
ﺘ
ﺘﻢﺗﻌﺪﻳﻞ اﻟﺤﻤﻮﻟ ﺔ اﻟﻤﻨﻔﺬة .إذا ﻛﺎن اﻹدﺧﺎل ﺻﺎﻟﺤًﺎ ،ﻓ ﺴ
ﺘﻴﺠ ﺔ -ﻳ
ﺘﻤﺎدًا ﻋﲆ اﻟﻨ
ﺘﻮﻗﻴﻊ واﻟﻤﻠﺨﺺ -و -اﻋ
ﺘﺤﻘﻖ ﻣﻦ اﻟ
ﺘﻢ اﻟ
ﺑﻤﻌﻨﻰ آﺧﺮ ،ﻳ
ﻳﺰال ﺻﺎﻟﺤًﺎ -
ﺑﺸﻜﻞ ﻏﻴﺮ ﺻﺤﻴﺢ ،ذﻟﻚﺑﻬﺬه اﻟﻄﺮﻳﻘ ﺔ ،إدﺧﺎل ﻣﻮﻗﻊ
ﺑﻴﻨﻤﺎﺳﻴﻌﻮد اﻹدﺧﺎل ﻏﻴﺮ اﻟﺼﺤﻴﺢ RetInvalidPayload.ﺑ ﺖ( ،
ﺛﺎ)RetValidPayloadرﻗﻢ
ﺘﺠﻤﻴﺪ
5.4.إﻋﺪاد اﻟ 24
ﺘﺸﺎف ﻓﺌﺎ ت ﻣﻌﻴﻨ ﺔ ﻣﻦ اﻷﺧﻄﺎء ﺘﻌﻄﻞ .ﻋﲆ ﻫﺬا اﻟﻨﺤﻮ ،ﻳﺠ ﺐ أنﻳﻜﻮن ﻣﻦ اﻟﻤﻤﻜﻦ أ ً
ﻳﻀﺎ اﻛ ﺜﻨﺎﺋﻴ ﺔ وﻳﻤﻜﻦ أنﺗ
ﺘﺎز ﺟﻤﻴﻊ اﻟﺸﻴﻜﺎ ت وﻳﻤﻜﻦﺗﺤﺪﻳﺪ اﻟ
ﻳﻤﻜﻦ أنﻳﺠ
اﻟﻤﻨﻄﻘﻴ ﺔ.
ﺒﺎ ت اﻟﻤﻮﺟﻮدة )(for go
ﺘﺒ ﺔﺗﺸﻔﻴﺮ ASN.1 DER.ﻟ ﺴﻮء اﻟﺤﻆ ،ﻟﻢﺗﺪﻋﻢ أي ﻣﻦ اﻟﻤﻜ
ﺘﺘﻨﻔﻴﺬ ﻣﻮﻟﺪ اﻹدﺧﺎل ﻫﺬا ،ﻳﺠ ﺐ أنﺗﻜﻮن ﻫﻨﺎك ﻣﻜ
ﻋﲆ اﻟﻮاﺟﻬ ﺔ اﻟﺨﻠﻔﻴ ﺔ ﻟ
ﺒ ﺔﺗﺮﻣﻴﺰ DER
ﺘﺒﻴﺮة 24أو ﻓﻚﺗﺮﻣﻴﺰﺗﻨ ﺴﻴﻖ اﻟﻤﺠﻤﻮﻋ ﺔ اﻟﻐﺮﻳ ﺐ ﻟـ IMG4 -راﺟﻊ اﻟﻘ ﺴﻢ B.1.ﻟﺬﻟﻚ ،ﻛﺎن ﻋﻠﻴﻨﺎﺗﻨﻔﻴﺬ ﻣﻜ
ﺜﻞ اﻟﻌﻼﻣﺎ ت اﻟﻜ
ﺟﻤﻴﻊ اﻟﻤﻴﺰا ت اﻟﻀﺮورﻳ ﺔ ،ﻣ
ﺒﺔ
ﺘﺘﻨ ﺴﻴﻖ -ﻳﻤﻜﻦ ﻟﻠﻤﻜ
ﺒ ﺔ ﻟﻠﻬﻨﺪﺳ ﺔ اﻟﻌﻜ ﺴﻴ ﺔ ﻟﻠ
ﺑﺎﻟﻨ ﺴﺘﺸﻔﻴﺮ ﻛﺎﻧ ﺖ ﻣﻔﻴﺪة ﺟﺪًا -ﺧﺎﺻ ًﺔ
ﺑ ﺔ .ﻧﻈ ًﺮاﻷن وﺣﺪة ﻓﻚ اﻟ
ﺘ ﻲﺗﺪﻋﻢ ﺟﻤﻴﻊ اﻟﻤﻴﺰا ت اﻟﻤﻄﻠﻮ
ﺑﻨﺎ ،واﻟASN.1اﻟﺨﺎﺻ ﺔ
أ ً
ﻳﻀﺎ ﻓﻚﺗﺸﻔﻴﺮ ASN.1 DER.
ﺘﺸﻮﻳ ﺶ
5.4إﻋﺪاد اﻟ
#ﻣﻠﺼﻖ ﺣﺪود
رﺋﻴ0
ﺴﻲ م
ﻛﻤ1
ﺒﻜﻮف AFL COMPCOV LEVEL = 2 -c 0 -S
2 LEVEL = 2 AFL PRELOAD = libcmpcov.so
cmpcovlibس -S -cfuzzer5.
cmplog 5-11 0 -l AT -S ﺘﺨﺪام
. . 11- ﺳﺐ
ازﻏ
3 AFL QASAN = 1 -S AFL COMPCOV
4
ﺗﻬﺎ.
ﺘﺸﻮﻳ ﺶ وﻣﻌﺎﻣﻼ
اﻟﺠﺪول 5.1:ﺣﺎﻻ ت اﻟ
ﺘﺤﺪﻳﺪ ،
ﺘﻠﻔ ﺔ ﻟ ﺴﺤ ﺐ QEMUاﻟﻌﺎدي .ﻋﲆ وﺟﻪ اﻟ
ﺘﻮي ﻋﲆ إﺿﺎﻓﺎ ت ﻣﺨ
ﻣﺨﺼﺼﺎ ﻣﻦ QEMUﻳﺤ
ً ﺘﺨﺪم AFL ++إﺻﺪا ًرا
ﺜﻨﺎﺋ ﻲ ﻓﻘﻂ ،ﻳ ﺴ
ﺘﺸﻮﻳ ﺶ اﻟ
ﺘﻤﻜﻴﻦ اﻟ
ﻟ
ﺗﺮﻛﺰ
ﺘﺪﻋﺎءا ت ﻧﻈﺎم إﱃ اﻟﻨﻮاة .ﻣﻌﻈﻢ إﺿﺎﻓﺎ ت AFL ++ﻣﻮﺟﻮدة داﺧﻞ JITو
ﺘﻌﻠﻴﻤﺎ ت وﻧﻘﻞ أي اﺳ
ﺘﺨﺪم QEMU ،واﻟﺬيﻳﻌﻤﻞ ﻋﻦ ﻃﺮﻳﻖﺗﻮﺟﻴﻪ اﻟ
ﺘﺨﺪم وﺿﻊ ﻣ ﺴ
ﻳﺴ
ﺘﻬﺎ.
ﺘﻢ ﻣﻘﺎرﻧ
ﺘﻢﺗﻨﻔﻴﺬ ﻫﺎ وﻣﺎﻳ
ﺘ ﻲﻳ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑﻬﺎ ،وﻣﻘﺎرﻧ ﺔ اﻟ
ﺘﻢ ﺿﺮ
ﺘ ﻲﻳ
ﺘﻞ اﻷﺳﺎﺳﻴ ﺔ اﻟ
ﺘﻀﻤﻦ ذﻟﻚﺗﺤﺪﻳﺪ اﻟﻜ
ﻋﲆ إﺿﺎﻓ ﺔ اﻷﺟﻬﺰة.ﻳ
ﺒﺎ ت
ﺜ5.4.1 AFL ++وﺿﻊ اﻟ
ﺘﺸﻮﻳ ﺶ.
ﺘ ﺴﺮﻳﻊ ﻋﻤﻠﻴ ﺔ اﻟ
ﺘﻨﻮﻋ ﺔ ﻣﻦ اﻟﺤﻴﻞ ﻟ
ﺜ ﺔ ﻣﺠﻤﻮﻋ ﺔ ﻣ
ﺒﻴﻪ اﻟﺤﺪﻳ
ﺘﻨ ﺑ ًﻘﺎ ،ﺗ ﺴ
ﺘﺨﺪم أﺟﻬﺰة اﻟ ﻛﻤﺎ ذﻛﺮﻧﺎﺳﺎ
ﺜﻨﺎﺋ ﻲ ﻓﻘﻂ ﻣﻦ AFL ++.
ﺘﺎﻟ ﻲ ﻓ ﻲ اﻹﺻﺪار اﻟ
ﺘﻤﺮ ﻓ ﻲ AFL ++.ﻳﻌﻤﻞ ﻋﲆ اﻟﻨﺤﻮ اﻟ
إﺣﺪى ﻫﺬه اﻟﺤﻴﻞﺗ ﺴﻤﻰ اﻟﻮﺿﻊ اﻟﻤ ﺴ
ﺘﻌﻠﻴﻤﺎ ت
ﺘﻌﻴﻴﻦ ﻣﺆﺷﺮ اﻟ
ﺑﺒ ﺐﺗﻌﻄﻞ ،ﻳﻘﻮم AFL ++
ﺑﺴﺒﻴﻌ ﻲ أو
ﺑﺸﻜﻞ ﻃﺘﻬ ﻲﺗﺸﻐﻴﻞ ﻏﺎﻣﺾ -إﻣﺎ
ﺑﺎﻟﻌﻨﻮان اﻟﺪاﺋﻢ .ﻋﻨﺪﻣﺎﻳﻨﻧﺤﻦ ﻧﻘﺪم AFL ++ﻣﻊ ﻣﺎﻳ ﺴﻤﻰ
ﺑﺪء اﻟﻌﻤﻠﻴ ﺔﺜﻴﺮ ﻣﻦ إﻋﺎدة
ﺑﻜﺜﺮ ﻣﻼءﻣ ﺔ
ﺜﻨﺎﺋ ﻲ ،و ﻫﻮ أﻣﺮ أﻛ
ﺑﻄﺮﻳﻘ ﺔ ﻣﺎ ،ﻳﺆدي ﻫﺬا إﱃ إﻧﺸﺎء ﺣﻠﻘ ﺔ و ﻫﻤﻴ ﺔ داﺧﻞ اﻟﻨﻈﺎم اﻟﺑﺪﻻ ً ﻣﻦ إﻧﻬﺎء QEMUﻓﻌﻠ ًﻴﺎ.ﻋﲆ ﻫﺬا اﻟﻌﻨﻮان ،
ﺘﻌﻠﻴﻤﺎ ت اﻷوﱃ ﻟﻠﻮﻇﻴﻔ ﺔ اﻟﻤﺮاد
ﺒﻂ ﻫﺬا ﻋﲆ اﻟ
ﺑ ﺖ .ﻋﺎدة ،ﻳﺠ ﺐ ﺿ
ﺜﺎ
ﺘﻤﺮ ﻓ ﻲ اﻟﻮﺿﻊ اﻟ
ﺘﻜﺮار اﻟﻤ ﺴ ﺘﺸﻮﻳ ﺶ اﻟﻔﺮدي أ ً
ﻳﻀﺎ اﻟ ُﻄﻠﻖ ﻋﲆﺗﺸﻐﻴﻞ اﻟ
ﺘﻴﺠ ﺔ ﻟﻬﺬا ،ﻳ
ﺘﻤﺮار .ﻧ
ﺑﺎﺳ
ﺗﺸﻮﻳﺸﻬﺎ ،و ﻫﺬا ﻫﻮ اﻟﺤﺎل أ ً
ﻳﻀﺎ ﻣﻊ emmutaler.
ﺑﺖ ،
ﺜﺎ
ﺒﺮ stdin.ﻓ ﻲ ﺣﻴﻦ أن ﻫﺬا ﻻﻳﺰالﻳﻌﻤﻞ ﻓ ﻲ اﻟﻮﺿﻊ اﻟ
ﺘﺸﻐﻴﻞ ﻏﺎﻣﺾ ﻋ
ﺒﺎر اﻟﺠﺪﻳﺪة ﻟ
ﺘﺘﺨﺪام AFL ++ ،ﻳﻮﻓﺮ AFL ++ﺣﺎﻟ ﺔ اﻻﺧ
ﺑﺎﺳﺘﺸﻮﻳ ﺶ ً
ﻋﺎدة ﻋﻨﺪ اﻟ
ﺑﻪ ﺣﺎﻟ ًﻴﺎ ﻣﻦﺘﻤﺪ ﻫﺬا ﻋﲆ ﻣﺎ ﻧﺸﻌﺮ
ﺒﺎﺷﺮة.ﻳﻌ
ﺒﺎر اﻟﺠﺪﻳﺪة إﱃ اﻟﻤﻮﻗﻊ اﻟﺼﺤﻴﺢ ﻣ
ﺘﺘ ﻲﺗﻨ ﺴﺦ ﺣﺎﻟ ﺔ اﻻﺧ
ﺒ ﺔ ﻣﻨﺎ ،واﻟ
ﺘﺘﺤﻤﻴﻞ ﻣﻜ
ﺑﺜﺮ ،ﻳﻘﻮم AFL ++
ﺘ ﺴﺮﻳﻊ اﻟﻌﻤﻠﻴ ﺔ أﻛ
ﻟ
ﺘﻨﻔﻴﺬ اﻷول
ﺒﻞ اﻟ ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﻳﺤﻔﻆ AFL ++أ ً
ﻳﻀﺎ ﺣﺎﻟ ﺔ اﻟ ﺴﺠﻼ ت واﻟﺬاﻛﺮة ﻗ ﺒﺪأ ﻣﻦ اﻟﻌﻨﻮان اﻟﺪاﺋﻢ.
ﺘ ﻲﺗ
ﻏﻤﻮض ،وﻟﻜﻨﻪ ﻋﺎدة ﻣﺎﻳﻜﻮن إﺣﺪى ﺣﺠﺞ اﻟﻮﻇﻴﻔ ﺔ اﻟ
ﺘﺎج اﻷﻋﻄﺎل.
ﺘﻤﺮ .ﻫﺬاﻳﻀﻤﻦ أن ﻛﻞﺗﻜﺮار ﻟﻪ ﻧﻔ ﺲ اﻟﺤﺎﻟ ﺔ اﻷوﻟﻴ ﺔ وﻳﺠ ﺐ أنﻳ ﺴﻬﻞ إﻋﺎدة إﻧ
ﺗﻪ ﻓ ﻲ ﻧﻬﺎﻳ ﺔ ﻛﻞﺗﻜﺮار ﻣ ﺴ
ﺘﻌﺎد
ﻟﻠﻌﻨﻮان اﻟﺪاﺋﻢ واﺳ
ﺑﺖ
ﺜﺎ
ﺑﻖ اﻟﻌﻨﻮان اﻟ
ﺘﻌﻠﻴﻤﺎ تﻳﻄﺎ
ﺘﺤﻘﻖ ﻣﻤﺎ إذا ﻛﺎن ﻣﺆﺷﺮ اﻟ
ﺑﺎﻟ
ﺑﻪ ﺧﻄﺄ واﺣﺪﺗﻠﻮ اﻵﺧﺮ .ﻗﺎم AFL ++
ﺘﻤﺮ ﻓ ﻲ aarch64 ،ﻧﻈ ﺮًاﻷن AFL ++
ﺗﻢ ﻛ ﺴﺮ اﻟﻮﺿﻊ اﻟﻤ ﺴ
ﺘﻢ ﺣﻔﻆ ﻣﺆﺷﺮ اﻹﻃﺎر أو
ﺘﺎﻟ ﻲ ﻟﻦﻳ
ﺑﺎﻟ
ﺜﺎﻧﻴ ﺔ ،و
ﺘﻌﻠﻴﻤ ﺔ اﻟ
ﺘﻤﺮ ﻓﻘﻂ ﻋﻨﺪ اﻟ
ﺘﻜﺮار اﻟﻤ ﺴ
ﺒﺪأ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟﺤﺎﻟﻴ ﺔ .ﻟﺬﻟﻚ ،ﺳﻴ
ﺑﺎﻟﻔﻌﻞ إﱃ اﻟﺘﻌﻠﻴﻤﺎ ت وﻳﺸﻴﺮ
ﺒﻞ زﻳﺎدة ﻣﺆﺷﺮ اﻟ
ﻗ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ ﻋﲆ aarch64أ ً
ﻳﻀﺎ. ﺑ ﺖ اﻵن
ﺜﺎ
ﺑ ﺴﻬﻮﻟ ﺔ وﻳﻌﻤﻞ AFL ++ﻓ ﻲ اﻟﻮﺿﻊ اﻟﺑﺸﻜﻞ ﺻﺤﻴﺢ ﻓ ﻲ اﻟﻤﻜﺪس .ﻟﺤ ﺴﻦ اﻟﺤﻆ ،ﺗﻢ إﺻﻼح ذﻟﻚﺒﺎط
ﺗﺳﺠﻞ اﻻر
ﺑـ QEMUﺘﻌﻠﻖ
ﺛﻨﺎءﺗﻄﻮﻳﺮ emmutaler.ﻟ ﺴﻮء اﻟﺤﻆ ،ﻻﺗﺰال ﻫﻨﺎك ﻣﺸﻜﻠ ﺔ أﺧﺮىﺗ
ﺘﻬﺎ ﻣﻊ QEMUأ
ﺘ ﻲﺗﻤ ﺖ ﻣﻮاﺟﻬ
ﻳﺼﻒ اﻟﻘ ﺴﻢ 5.2.2.1إﺣﺪى اﻟﻤﺸﻜﻼ ت اﻟ
ﺋﻴ ﺴﻴ ﺔ 25.
ﺑﻌﻨﻮان "ﻳﺠ ﺐ ﻋﺪم اﻟﻮﺻﻮل إﱃ اﻟﻜﻮد" داﺧﻞ ﺣﻠﻘ ﺔ وﺣﺪة اﻟﻤﻌﺎﻟﺠ ﺔ اﻟﻤﺮﻛﺰﻳ ﺔ اﻟﺮدون ﺣﻞ .ﻧﻈ ﺮًا ﻟﻈﺮوف ﻏﻴﺮ ﻣﻌﺮوﻓ ﺔ ،ﻳﻤﻜﻦ ﻟـ QEMUاﻟﻮﺻﻮل إﱃﺗﺄﻛﻴﺪ
ﺘﻢ ﺘﻘﺎط أﺟﺰاء ﻣﻦ libc.وﻣﻊ ذﻟﻚ ،ﻳﻤﻜﻦ أنﻳﺤﺪ ث ﻫﺬا أﺣﻴﺎﻧًﺎ أ
ﺛﻨﺎءﺗﺸﻮﻳ ﺶ USB.ﻟﺤ ﺴﻦ اﻟﺤﻆ ،ﻟﻦﻳ ﺑﻬﺎم IMG4 ،ﻋﻤﻠﻨﺎ ﻋﲆ ﺣﻞ ﻫﺬه اﻟﻤﺸﻜﻠ ﺔ ،ﻣﻦ ﺧﻼل اﻟ
ﻹ
ﺑﺼﻤ ﺖ.ﺘﺠﺎ ﻫﻠﻪ
ﺘﺎﻟ ﻲ ﻧ
ﺑﺎﻟ
ﺑﻮاﺳﻄ ﺔ AFL ++ ،وﺑﻪ ﻋﲆ أﻧﻪﺗﻌﻄﻞ
ﺘ ﺴﺎ
اﺣ
5.5إزﻋﺎج IMG4
ﺘﺠﻤﻴﺪ
ﺗﺤ ﺴﻴﻦﺳﺮﻋ ﺔ اﻟ
5.6 26
ﺘﻤﺪ ﻋﻠﻴﻪ.
ﺘﻬﺎ اﻟﺼﺤﻴﺤ ﺔ .ﻋﲆ ﺣﺪ ﻋﻠﻤﻨﺎ ،ﻫﺬا ﻫﻮﺗﺤﻤﻴﻞ ﺻﻮرة اﻟﺤﺎﻟ ﺔ اﻟﻌﺎﻟﻤﻴ ﺔ اﻟﻮﺣﻴﺪ اﻟﺬيﻳﻌ
ﺒﻄﻬﺎ ﻋﲆ ﻗﻴﻤ
وﺿ
ﺜﺮ
ﺜﻨﺎﺋﻴ ﺔ ﻋﲆ اﻹﻃﻼق.ﻳﻮﺟﺪﺗﻔﺼﻴﻞ أﻛ
ﺜﻴﺮ ﻣﻦ اﻟﻤﻠﻔﺎ ت اﻟ
ﺒﺮ اﻟﻜ
ﺘﺘﺎﻟ ﻲ ﻟﻢﺗﺨ
ﺑﺎﻟ
ﺒﻜ ﺮًا ﺟﺪًا ،و
ﺘﺤﻠﻴﻞ ﻣ
ﺒﺎر ﻓﺸﻠ ﺖ ﻓ ﻲ اﻟ
ﺘﺜﻴﺮ ﻣﻦ ﺣﺎﻻ ت اﻻﺧ
ﺘﺸﻮﻳ ﺶ ،ﻻﺣﻈﻨﺎ أن اﻟﻜ
ﺛﻨﺎء اﻟ
أ
ﺑﻨﺎ.ﺒﻴﻌ ﺔﺗﻨ ﺴﻴﻖ اﻟﻤﺪﺧﻼ ت اﻟﺨﺎص
ﺑﻬﺬه اﻟ ﺴﺮﻋ ﺔ ،ﻫ ﻲ ﻃ ﺗﻔﺼﻴ ﻼ ً ﻟﻬﺬا اﻷﻣﺮ ﻓ ﻲ اﻟﻔﺼﻞ 6 ،ﻟﻜﻨﻨﺎ ﻧﻘﺪم ﻓﻜﺮة ﻫﻨﺎ ﻟﻤﻜﺎﻓﺤ ﺔ ﻫﺬه اﻟﻤﺸﻜﻠ ﺔ .اﻟﻔﻜﺮة اﻷﺳﺎﺳﻴ ﺔ ﻟ ﺴ
ﺒ ﺐ ﻓﺸﻠﻬﺎ
ﺒﻴﺮة .ﻋﲆ وﺟﻪ اﻟﺨﺼﻮص ،ﻣﻦ
ﺛﻴﺮا ت ﻛ
ﺘﻐﻴﻴﺮ اﻟﻄﻔﻴﻒ ﻓ ﻲ ﺣﻘﻞ اﻟﻄﻮلﻳﻤﻜﻦ أنﻳﻜﻮن ﻟﻪﺗﺄ
ﺘﻐﻴ ًﺮا ،ﻓﺈن اﻟ
ﺘﻤﺪ ﻋﲆ ﻗﻴﻤ ﺔ ﻃﻮل اﻟﻌﻼﻣ ﺔ ﻣﻊ ﻛﻮن اﻟﻄﻮل ﻣ
ﻧﻈ ًﺮاﻷن DERﻳﻌ
ﺗﻢ
ﺘﺤﺪﻳﺪ ﻣﻦ أن أي ﻋﻨﺼﺮ DER
ﺘﺄﻛﺪ SecureROMﻋﲆ وﺟﻪ اﻟ
ﺑﻪ.ﻳﺜﻴﺮ ﻣﻤﺎ ﻫﻮ ﻣ ﺴﻤﻮح
ﺑﻜﺒﺮ
ﺒ ﺐ ﻓ ﻲ أنﻳﻜﻮن اﻟﻄﻮل أﻛ
ﺘﺴاﻟ ﺴﻬﻞ ﺟﺪًا أنﻳﻨﻘﻠ ﺐ اﻟﻤﺼﻬﺮ ﻗﻠﻴ ﻼ ً وﻳ
ﺧﺎﺻﺎ ﻣﻦ
ً ﺘﺤﻘﻖ ﻫﺬه .ﻟﺬﻟﻚ ،أﻧﺸﺄﻧﺎ إﺻﺪا ًرا
ﺘﺠﺎ ﻫﻞ ﻋﻤﻠﻴﺎ ت اﻟ ﺘﺠﺎوز اﻟﻌﻨﺼﺮ اﻷﺻﻞ .وﻣﻊ ذﻟﻚ ،ﻓﺈن ﺟﻤﻴﻊ وﻇﺎﺋﻒﺗﺤﻠﻴﻞ DERﻟﻬﺎ أ ً
ﻳﻀﺎ ﻣﻌﻠﻤ ﺔ ﻣﻔﻴﺪة ﻟ ﺗﺤﻠﻴﻠﻪ ﻻﻳ
ﺘﺨﺪام ﻫﺬا
ﺑﺎﺳﺘﺸﻮﻳ ﺶ اﻟﺬيﺗﻢ إﺟﺮاؤه
ﺘﻢﺗ ﺴﻤﻴ ﺔ اﻟ
ﺋﻤﺎ .ﻓ ﻲ اﻟﻔﺼﻞ اﻟ ﺴﺎدس ،ﺳﻴ
ﺘﺤﻘﻖ ﻣﻦ اﻟﺤﺪود دا ً
ﺘﺠﺎ ﻫﻞ ﻋﻤﻠﻴﺎ ت اﻟ
ﺘﺼﺤﻴﺢ وﻇﺎﺋﻒ DERﻟ
ﺑSecureROMﻳﻘﻮم
اﻹﺻﺪار ﻋﲆ أﻧﻪ ﺧﺎرج اﻟﺤﺪود.
ﺘﺸﻮﻳ ﺶ
ﺗﺤ ﺴﻴﻦﺳﺮﻋ ﺔ اﻟ
5.6
ﺘﺨﺪام
ﺑﺎﺳﺜﻨﺎﺋ ﻲ
ﺘﺠﻤﻴﻊ اﻟﻤﻠﻒ اﻟ
ﺑﺜﺎل ،ﻗﻤﻨﺎ
ﺒﻴﻞ اﻟﻤ
ﺛﻨﺎﺋ ﻲ .ﻋﲆﺳﺘ ﺴﺮﻳﻊ
ﺘﺨﺬ ﻫﺎ اﻟﻤﺮء ﻋﺎدة ﻟ
ﺘ ﻲ ﻗﺪﻳ
ﺗﺨﺬﻧﺎ ﻧﻔ ﺲ اﻹﺟﺮاءا ت اﻟ
ﻟﻠﺤﺼﻮل ﻋﲆﺳﺮﻋ ﺔﺗﺸﻮﻳ ﺶ أوﻟﻴ ﺔ ﺟﻴﺪة ،ا
ﺘﺸﻮﻳ ﺶ ﻗﺪر اﻹﻣﻜﺎن .ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ
ﺘ ﺴﺮﻳﻊ اﻟ
ﺑﺪﻣﺞ ﺧﻄﻮا ت إﺿﺎﻓﻴ ﺔ ﻟﺘﺸﻮﻳ ﺶ .ﻋﻼوة ﻋﲆ ذﻟﻚ ،ﻗﻤﻨﺎ
ﺒﻨﻴﺎ ت اﻟﻤﺼﻤﻤ ﺔ ﻟﻠ
ﺘ ﺴﺠﻴﻞ إﱃ اﻟﺤﺪ اﻷدﻧﻰ ﻓ ﻲ اﻟ
-O3وواﺻﻠﻨﺎ اﻟ
ﺛﻴﺮه ﻓ ﻲ اﻟﻘ ﺴﻢ 6.5.
ﺘﺄ
ﺘﻔﺼﻴﻠﻴ ﺔ ﻟ
ﺘﺎﺋﺞ اﻟ
ﺘﻢﺗﻘﺪﻳﻢ اﻟﻨ
ﺘﺸﻮﻳ ﺶ.ﺳﻴ
ﺒﻴﺮ ﻋﲆ أداء اﻟ
ﺛﻴﺮ ﻛ
ﺘﻤﺮﺗﺄ
ﻓ ﻲ اﻟﻘ ﺴﻢ 5.4.1 ،ﻳﺠ ﺐ أنﻳﻜﻮن ﻟﻠﻮﺿﻊ اﻟﻤ ﺴ
ﺘﺤﺪﻳﺪ
ﺑﺘﻔﺼﻴﻠﻴ ﺔ ﻓ ﻲ أﻗ ﺴﺎم ﻻﺣﻘ ﺔ ،ﻧﺼﻒ ﻛﻴﻒ ﻗﻤﻨﺎ
ﺒﻊ اﻟﻤﻘﺎرﻧﺎ ت اﻟ
ﺘﺑﻴﻨﻤﺎﺗﺘ ﻲ ﻻﺣﻈﻬﺎ اﻵﺧﺮون.
ﺑﺎﻟ ﺴﺮﻋ ﺔ اﻟﺘﻤﺮ ،ﻟﻢﻳﻜﻦ اﻟﻐﻤﻮض
ﺘﻰ ﻣﻊ اﻟﻮﺿﻊ اﻟﻤ ﺴ
ﻟ ﺴﻮء اﻟﺤﻆ ،ﺣ
ﺒﺮ ﻫﻨﺎ.
ﺘﺤﻘﻴﻖﺳﺮﻋ ﺔ أﻛ
ﻫﺬه اﻟﻤﺸﻜﻼ ت وﻣﺎ ﻓﻌﻠﻨﺎه ﻟ
ﺘﺤﻘﻖ
ﺒﻴﺮ ﻣﻦ اﻟﻮﻗ ﺖ ﻓ ﻲ اﻟﺤ ﺴﺎ ب واﻟ
ﺘﻢ إﻧﻔﺎق ﻗﺪر ﻛ
ﺘﻌﻠﻴﻤﺎ ت PAC.ﻳ
ﺑﺘﻌﻠﻖ
ﺒﻘﻴ ﺔ .أول ﻣﺎﻳﻨﻄﻠﻖ ﻓ ﻲ اﻟﻌﻴﻦﻳ
ﺘﺘﻨﺎﻗﺎ ت اﻟﻤ
ﺑ ﺴﺮﻋ ﺔ اﻻﺧﺘﺨﺪام اﻷداءﻳﻤﻜﻨﻨﺎ أن ﻧﺮى
ﺑﺎﺳ
ﺘﺸﻔﻴﺮ ﻫﺬه ﻓ ﻲ
ﺘﻢﺗﻨﻔﻴﺬ ﻋﻤﻠﻴﺎ ت اﻟ
ﻣﻦﺗﻮاﻗﻴﻊ ﻣ ﺴﻮﻏﺎ ت اﻟﻮﺻﻮل اﻟﻤﺤﻤ ﻲ داﺧﻞ ﺟﺎﻣﻌ ﺔ ﻗﻄﺮ ﻟﻠﻄﻮارئ .ﻫﺬا أﻣﺮ ﻣﻨﻄﻘ ﻲ ،ﻛﻤﺎ ﻫﻮ اﻟﺤﺎل ﻓ ﻲ رﻗﺎﺋﻖ Appleاﻟﻔﻌﻠﻴ ﺔ ،ﺳﻴ
ﺜﻞ QEMU.
ﺒﺮاﻣﺞ ﻣ
اﻷﺟﻬﺰة وﻟﻴ ﺲ ﻓ ﻲ اﻟ
ﺘﻘﺎطﺳﺮﻳﻊ ﻟﻠﺬاﻛﺮة
5.6.2وﺣﺪة Kernelﻻﻟ
ﺒﻴﻖ COW.
ﺗﻪ .ﻟﺬﻟﻚ ،ﻧﻈﺮﻧﺎ ﻓ ﻲﺗﻄ
ﺘﻌﺎد
ﺘﺎﻟ ﻲﻳﻠﺰم اﺳ
ﺑﺎﻟ
ﺘﻤﺮ و
ﺛﻨﺎءﺗﻜﺮار ﻣ ﺴ
ﺘﻢﺗﻌﺪﻳﻠﻪ ﻓﻌﻠ ًﻴﺎ أ
ﺘﻘﻄ ﺔﻳ
ﺷ ﻲء واﺣﺪ أدرﻛﻨﺎه ،ﻫﻮ أن ﺟﺰءًا ﺻﻐﻴ ﺮًا ﻓﻘﻂ ﻣﻦ اﻟﺼﻔﺤﺎ ت اﻟﻤﻠ
ﺗﻤﺎﻣﺎ.
ً ﺘﺨﺪاﻣﻪ ،ﺗﻢ ﻛ ﺴﺮه
ﺒﻂ ﻛﻮﺣﺪة kernelو AFL ++ﻛﺎن ﻟﺪﻳﻪ دﻋﻢ ﻟﻠﻮﺣﺪة اﻟﻤﺬﻛﻮرة .وﻣﻊ ذﻟﻚ ،ﻋﻨﺪﻣﺎ ﺣﺎوﻟﻨﺎ اﺳ
ﺑﺎﻟﻀﺑﺎﻟﻔﻌﻞ ﻫﺬاﺒﻖ
ﻟﺤ ﺴﻦ اﻟﺤﻆ [29] ،ﻃ
ﺘﻮ ت ﻋﲆ اﻟﻌﺪﻳﺪ ﻣﻦ أﺧﻄﺎء UAFوﻇﺮوف اﻟﻌﺮق ،ﻣﻤﺎ أدى إﱃ اﻟﻌﺪﻳﺪ ﻣﻦ ﺣﺎﻻ ت اﻟﺬﻋﺮ ﻓ ﻲ اﻟﻨﻮاة.
ﺑﻞ اﺣﺘﺼﺮ اﻷﻣﺮ ﻋﲆ ﻋﺪمﺗﺠﻤﻴﻌﻬﺎ ﻓﺤ ﺴ ﺐ ،
ﻟﻢﻳﻘ
ﺒﺤ ﺚ ﻋﻨﻬﺎ.
ﺑﺄﺧﺮى أﺳﺮع ﻟﻠﺒﻴﺎﻧﺎ ت
ﺑﻌﺾ ﻫﻴﺎﻛﻞ اﻟﺒﺪال
ﺘﺑﺎﺳﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﻗﻤﻨﺎﺒﺎق.
ﺗﺨﻠﺼﻨﺎ ﻣﻦ ﻇﺮوف اﻟ ﺴ
ﺘﻬﺎ و
ﺘ ﻲﺗﻤ ﺖ ﻣﻮاﺟﻬ
أﺻﻠﺤﻨﺎ أﺧﻄﺎء UAFاﻟ
ﺒﺎر اﻟﺨﺎﺻ ﺔ
ﺘﺑﺸﻜﻞ ﺧﺎص ،ﻧﻈ ﺮًاﻷن آﻻ ت اﻻﺧﺒﺮ ﻣﻦ إﺻﺪارا ت اﻟﻨﻮاة .ﻛﺎن ﻫﺬا ﺿﺮورﻳًﺎ
ﺘﻮاﻓﻘ ﺔ ﻣﻊ ﻣﺠﻤﻮﻋ ﺔ أﻛ
ﺘﻜﻮن ﻣ
ﺜﻴﺮ ﻣﻦ اﻷﺟﺰاء ﻟ
ﺑ ﺔ اﻟﻜ
ﺘﺎ
ﺑﺈﻋﺎدة ﻛ أﺧﻴ ﺮًا ،ﻗﻤﻨﺎ أ ً
ﻳﻀﺎ
ﺑﻬﻢ.ﺒﻴﺮ ﻓ ﻲ إﺻﺪارا ت اﻟﻨﻮاة اﻟﺨﺎﺻ ﺔ
ﺑﺸﻜﻞ ﻛﺘﻠﻒ
ﺑﻨﺎﻳﻤﻜﻦ أنﺗﺨ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ.ﺗﻬﺎ
ﺘﻌﺎد
ﺘﻢ اﺳ
ﺘﻢ اﻟﻮﺻﻮل إﻟﻴﻬﺎ ،ﻓﻠﻦﺗ
ﺘﻘﺎﻃﻬﺎ ﻫ ﻲ أول ﺻﻔﺤ ﺔﻳ
ﺘ ﻲﺗﻢ اﻟ
ﻟ ﺴﻮء اﻟﺤﻆ ،ﻻﺗﺰال وﺣﺪة kernelﺧﺎﻟﻴ ﺔ ﻣﻦ اﻷﺧﻄﺎء .إذا ﻛﺎﻧ ﺖ اﻟﺼﻔﺤ ﺔ اﻟ
ﺑﺎﻟﻔﻌﻞ .وﻣﻊ ذﻟﻚ ،ﻓﺈن ﻫﺬا ﻻﺘﻢ ﻃﻠ ﺐ اﻟﺼﻔﺤ ﺔ
ﺘﺎﻟ ﻲ ﻻ ﻧﻼﺣﻆ ﻋﻨﺪﻣﺎﻳ
ﺑﺎﻟ ﺒﻖ COWﻋﲆ إدﺧﺎﻻ ت ﺟﺪول اﻟﺼﻔﺤ ﺔ أ ً
ﻳﻀﺎ ،و ﺘﻘﺪ أن ﻫﺬاﻳﺮﺟﻊ إﱃ ﺣﻘﻴﻘ ﺔ أن اﻟﻨﻮاةﺗﻄ
ﻧﻌ
ﺘﻢ اﻟﻮﺻﻮل إﱃ أي ﻣﻦ ﺻﻔﺤﺎ ت اﻟﻠﻘﻄ ﺔ أوﻻً.
ﺛﺮ ﻋﲆ ﻏﻤﻮﺿﻨﺎ ﻋﲆ اﻹﻃﻼق ،ﺣﻴ ﺚ ﻻﻳ
ﻳﺆ
ﺗﺸﻮﻳ ﺶ USB
5.7
ﺛﻴﻖ
ﺗﻮﻛﻮل DFUأيﺗﻮ
ﺒﺮو
ﺜﺮﺗﻌﻘﻴﺪًا .ﻟﻤﺮة واﺣﺪة ،ﻟﻢﻳﻜﻦ ﻟ
ﺒ ﺖﺗﺸﻮﻳ ﺶ USBأﻧﻪ أﻛ
ﺛﺘﺄﺳﻴ ﺴﻴ ﺔ ،أ
ﺑﻤﺠﺮدﺗﻮﻓﺮ اﻷدوا ت اﻟﺒ ًﻴﺎ
ﻓ ﻲ ﺣﻴﻦ أن ﻏﻤﻮض IMG4ﻛﺎن واﺿﺤًﺎ ﻧ ﺴ
ﺑﻔﻀﻞ اﻟﺠﻬﻮد اﻟﻬﻨﺪﺳﻴ ﺔ اﻟﻌﻜ ﺴﻴ ﺔ اﻟﺮاﺋﻌ ﺔ ،ﺴﺎو.
ٍ ﺘ
ﺑﺸﻜﻞ ﻣﺗﻮﻛﻮل USBاﻟﻘﻴﺎﺳ ﻲ اﻟﺬيﺗﻨﻔﺬه SecureROMﻗﻠﻴﻠ ﺔ
ﺑﺮوﺘﻔﺎﻋﻞ ﻣﻊ
ﺑﺎﻟﺛﺎﺋﻖ اﻟﺨﺎﺻ ﺔ
ﻋﲆ اﻹﻃﻼق وﻛﺎﻧ ﺖ اﻟﻮ
ﺘﻀﺢ ﻓ ﻲ اﻷﻗ ﺴﺎم
ﺑﻌﺾ اﻟﻘﻴﻮد ،ﻛﻤﺎﺳﻴﺒﺮ ﻗﺪر ﻣﻤﻜﻦ ﻣﻦ اﻟﻤﺮوﻧ ﺔ .وﻣﻊ ذﻟﻚ ،ﻻﺗﺰال ﻫﻨﺎك
ﺑﺄﻛﺗﻤﺎﻣﺎ اﻵن وﻳﻤﻜﻨﻨﺎﺗﺸﻮﻳﺸﻬﺎ
ً ﺒﺤ ﺖ ﻣﻌﻈﻢ ﻣﻜﺪس USBﻣﻔﻬﻮﻣ ﺔ
أﺻ
ﺘﺎﻟﻴ ﺔ.
اﻟ
ﺒﻴﻖﻳﺆدي
ﺜﻞﺗﺸﻮﻳ ﺶ IMG4.ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ ﻋﺪم وﺟﻮدﺗﻄ
ﺗﻤﺎﻣﺎ ﻣ
ً ﺘ ﻲﺗﻮاﺟﻬﻬﺎ ﻓ ﻲﺗﺸﻐﻴﻞﺗﺸﻮﻳ ﺶ USB ،ﻓﺈن اﻟﻌﻤﻠﻴ ﺔﺗﻌﻤﻞ
ﺑﺎ ت اﻟ
ﺑﺼﺮف اﻟﻨﻈﺮ ﻋﻦ اﻟﺼﻌﻮ
ﺜﻴﻼ ت ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟﻘ ﺴﻢ 5.4.ﻛﺎﻧ ﺖ ﻛﻞ ﻣﺠﻤﻮﻋ ﺔ
ﺛﻼ ث ﻣﺠﻤﻮﻋﺎ ت ﻣﺸﻮﺷ ﺔ ،ﻛﻞ ﻣﻨﻬﺎﻳﺸﻐﻞ اﻟﻤﺑﻌﺾ اﻟﺤﺪود ﻫﻨﺎ ،ﻓﻘﺪ ﻛﺎن ﻟﺪﻳﻨﺎ أ ً
ﻳﻀﺎ إﱃﺗﻌﻄﻴﻞ ﻓﺤﺺ
ﺜﻞ checkm8ﻓ ﻲ
ﺜﻮر ﻋﲆ ﺧﻄﺄ ﻣ
ﺘﻐﺮﻗﻬﺎ اﻟﻌ
ﺘ ﻲﻳ ﺴ
ﺘﻴﺢ ﻟﻨﺎ ذﻟﻚ اﻟﺤﺼﻮل ﻋﲆ ﻓﻜﺮة ﻋﻦ اﻟﻤﺪة اﻟ
ﺜﻨﺎﺋ ﻲ وﻟﻬﺎ ﻧﻔ ﺲ اﻟﻤﻌﻠﻤﺎ ت ﻓ ﻲ ﻛﻞ ﺣﺎﻟ ﺔ.ﻳ
ﺘﻬﺪف ﻧﻔ ﺲ اﻟﻨﻈﺎم اﻟ
ﺗﺴ
ﺘﺎﺋﺞ ﻫﺬه اﻟﻌﻤﻠﻴ ﺔ ﻓ ﻲ اﻟﻘ ﺴﻢ 6.4.
ﺘﻮﺳﻂ.ﺗﻤ ﺖ ﻣﻨﺎﻗﺸ ﺔ ﻧ
اﻟﻤ
ﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ USBﻣﺨﺼﺺ
5.7.1
ﺘﺄﻛﻴﺪ ،
ﺑﺎﻟﺘﻐﺸﻴ ﺔ رﺳﺎﺋﻞ USB.ﻓ ﻲ ﺣﻴﻦ أن ﻫﺬاﺳﻴﻌﻤﻞ
ﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ USBداﺧﻞ SecureROMإﺣﺪى اﻟﻄﺮق اﻟﻤﻤﻜﻨ ﺔ ﻟﺘﺨﺪﻣﻬﺎ
ﺘ ﻲﻳ ﺴ
ﺑ ﺔ اﻟ ﺴﺠﻼ ت اﻟ
ﺘﺎ
ﻳﻤﻜﻦ ﻗﺮاءة وﻛ
ﺘﻠﻒ ﻣﻦ SecureROM.ﻟﺤ ﺴﻦ اﻟﺤﻆ ،ﻓﺈنﺗﻨﻔﻴﺬ USBداﺧﻞ SecureROMﻫﻮ
ﺑﻴﻦ إﺻﺪار ﻣﺨﺑ ﺴﻬﻮﻟ ﺔ اﻟﻔﺼﻞﺜﻴﺮ ﻣﻦ اﻟﻬﻨﺪﺳ ﺔ اﻟﻌﻜ ﺴﻴ ﺔ وﻳﻤﻜﻨﻪ
ﺘﻄﻠ ﺐ اﻟﻜ
إﻻ أﻧﻪﻳ
ﺒﺪالﺗﻌﻠﻴﻤﺎ ت واﺣﺪة داﺧﻞ
ﺘﺘﺮاﺿ ﻲ .ﻣﻦ ﺧﻼل اﺳ
ﺒﻪ اﻓ
ﺒﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ ﺷ
ﺑﺒﻪ
ﺑﺸﻜﻞ أﺷﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ ﻣﺨﺼﺺﻳﻌﻤﻞﺑﺔﺑﺪﻻ ً ﻣﻦ ذﻟﻚ ﻛ
ﺘﺎ ﺑﺎﻟﻔﻌﻞ ﻣﻌﻴﺎري ﻟﻠﻐﺎﻳ ﺔ وﻳﻤﻜﻨﻨﺎ
ﺑﺄﻣﺮﻧﺎ.ﺘﺸﻐﻴﻞ اﻟﺤﺎﻟ ﻲ
ﺑﺮﻧﺎﻣﺞ اﻟﺒﺪل
ﺘSecureROM ،ﻓﺈﻧﻨﺎ ﻧ ﺴ
ﺑﻄﻮل ﻣﺤﺪد.ﺗﺤﻘﻴﻘﺎ ﻟﻬﺬهﺑ ﺴﻴﻂ ﻟﻠﻐﺎﻳ ﺔ .وﻇﻴﻔ ﺔ واﺣﺪة -إرﺳﺎل اﻟﻤﺨﺰن اﻟﻤﺆﻗ ﺖ USB -ﻫ ﻲ اﻟﻤ ﺴﺆوﻟ ﺔ ﻋﻦ "إرﺳﺎل" ﺟﻬﺎز إرﺳﺎلﻋﲆ اﻟﺠﺎﻧ ﺐ اﻟﻤﺮﺳﻞ ،ﺳﺎﺋﻘﻨﺎ
ﺘﺪﻋﻴﻬﺎ اﻟ ﺴﺎﺋﻖ اﻟﻌﺎدي ،
ﺘ ﻲﻳ ﺴ
ﺘﺮي اﻟﻤﺤﺪد .ﻫﺬه ﻫ ﻲ اﻟﻮﻇﻴﻔ ﺔ ﻧﻔ ﺴﻬﺎ اﻟ
ﺘﻠﻘﻰ داﺧﻞ SecureROMﻣﻊ اﻟﻤﺸ
ﺒﺾﺗﺤﻜﻢ USBﻳ
اﻟﻐﺎﻳ ﺔ ،ﻧﺤﻦ ﻓﻘﻂ ﻧ ﺴﻤ ﻲ usb core -ﻣﻘ
ﺗﺼﺎل USBﺣﻘﻴﻘ ﻲ.
ﺘﻬ ﻲ ﻣﻦ ﻗﺮاءة ﻋﺎﻣﻞ اﻟﺸﺮاء ﻣﻦ ا
ﻋﻨﺪﻣﺎﻳﻨ
ﺑﺎﻃﻠ ﺔ(
ﺑﺎﻃﻞ )ﺻﻔﺤﺎ ت *
usb_main_thread
{
ﺑﻴﻨﻤﺎ { )(! main_should_exit
اﻟﺪﻗ ﺔ ؛ ) load_and_test_image (img_info، kDEFAULT_TYPE، rom_img_start، res؛ )(rom_img_start، res
Struct image_info * img_info = image_create_from_memory؛ )int = rom_getDFUImage (rom_img_start، kIMG_SIZE
ﻣﺠﺎﻧًﺎ ؛ )(img_info
}
}
ﺒ ﺴﻄ ﺔ.
اﻟﻜﻮد 5.11:وﻇﻴﻔ ﺔ ﺧﻴﻂ USBﻣ
ﺗﻴﺎر> -ﻧﻮع( {
ﺒﺪﻳﻞ )
ﺘﻣﻦ أﺟﻞ _ _ _ _ _ _ i؛ ( int i = 0اﻟ
ﺣﺎﻟ ﺔ اﻹﻋﺪاد:
}
}
}
ﺋﻴ ﺴ ﻲ.
ﺒ ﺴﻄ ﺔ ،ﺗﻌﻤﻞ ﻋﲆ اﻟﺨﻴﻂ اﻟﺮ
اﻟﻜﻮد 5.12:ﺣﻠﻘ ﺔ ﻣﻌﺎﻟﺠ ﺔ رﺳﺎﺋﻞ USBﻣ
ﺑﻖ
ﺒﺪو ﻣﻦ اﻟ ﺴﺎ
ﺑﻂ USB.ﻫﺬا ﻟﻴ ﺲﺗﺎﻓﻬً ﺎ ﻛﻤﺎ ﻗﺪﻳ
ﺋﻴ ﺴ ﻲ وﺧﻴﻂ USBﻟﻠﺨﺮوج ﻣﻦ اﻟﺤﻠﻘ ﺔ داﺧﻞ ﻣﺆﺷﺮﺗﺮا
ﺑﻴﻦ اﻟﺨﻴﻂ اﻟﺮوﻣﻊ ذﻟﻚ ،ﻳﺠ ﺐ أنﻳﻜﻮن ﻫﻨﺎك ﻣﺰاﻣﻨ ﺔ
ﺘﺸﻮﻳ ﺶ.
ﺘﺼﺤﻴﺢ اﻷﺧﻄﺎء وﻟﻴ ﺲ ﺿﺮورﻳًﺎ ﻟﻠ
ﺑﺸﻜﻞ ﺟﻴﺪ ﻟﺑ ﺴﻬﻮﻟ ﺔ ،إﻻ أﻧﻪﻳﻌﻤﻞﺒﺪو دﻗﻴ ًﻘﺎ وﻳﻤﻜﻦ أنﻳﻨﻜ ﺴﺮ
27ﻓ ﻲ ﺣﻴﻦ أن ﻫﺬا ﻗﺪﻳ
Machine Translated by Google
ﺑﻴﻨﻤﺎ (! main_should_exit) { // main_should_exitﻻﺗﺰال ﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ USBﻏﻴﺮ ﻧﺸﻂ اﻵن rom_getDFUImage (...) //ﻳﻌﻮد | USB //
ﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ USBﻻﻳﺰال ﻏﻴﺮ ﻧﺸﻂ! ﺘﻢ إرﺳﺎل MAIN // abort ،ﻧﻈ ﺮًاﻷن
ﺧﺎﻃﺌ ﺔ | USB send_abort_nowait () //ﻳ ﺴﻤﻰ &إرﺟﺎع |ﻟﻢﻳ
ﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ USB // USBﻧﺸﻂ اﻵن ﻓﻘﻂ ،ﻟﻜﻨﻨﺎ وﺻﻠﻨﺎ
thread_join (usb_thread) //ﻳ ﺴﻤﻰ | MAIN rom_getDFUImage (...) //ﻳ ﺴﻤﻰ |
إﱃ ﻃﺮﻳﻖ ﻣ ﺴﺪود!
ﺜﺎل ،ﻣﻠﻒ
ﺒﻴﻞ اﻟﻤ
ﺘﻌﺪدة .ﻋﲆﺳ
ﻧﻈﺎﻣﺎ ﻣﻌﻘﺪًا ﻣﻦ اﻷﻗﻔﺎل واﻷﺣﺪا ث اﻟﻤ
ً ﺘﻀﻤﻦ ﺣﻠﻨﺎ ﻟﻬﺬا
ﻳ
ﺑﻌﺪ.ﺑﻂ USBﻟﻢﻳﺨﺮج ﻣﻦ اﻟﺤﻠﻘ ﺔ
ﺒﺎﻃﺎ ﻃﺎﻟﻤﺎ أن ﻣﺆﺷﺮﺗﺮا
ﺋﻴ ﺴ ﻲ إﺣ ً
ﺑﻂ اﻟﺮ
ﺘﺮا
ﻳﺮﺳﻞ ﻣﺆﺷﺮ اﻟ
ﺑﺎﻳ ﺖ
ﺗﻮﻛﻮل DFUأﻗﻞ ﻣﻦ 0x10
ﺑﺮوﺑ ﺴﻬﻮﻟ ﺔ ﺷﺪﻳﺪة .إذاﺗﻠﻘﻰﺑﺎﻟﺬﻋﺮﺑﻤﻌﺎﻟﺠ ﺔ DFUداﺧﻞ SecureROMو ﻫ ﻲ أﻧﻪﻳﻤﻜﻦ أنﻳﺼﺎ بﺘﻌﻠﻖ
ﺒﻴﺮة أﺧﺮىﺗ
ﻫﻨﺎك ﻣﺸﻜﻠ ﺔ ﻛ
ﺘﻰ أن اﻹﺟﻬﺎضﺳﻴﻔﻌﻞ
ﺗﻮﻛﻮل ،ﺣ
ﺒﺮو
ﺑﺪءﺗﺸﻐﻴﻞ اﻟ ﺑﺎﻟﺬﻋﺮ .ﻣﻦ اﻟ ﺴﻬﻞ أ ً
ﻳﻀﺎ ﺗﻮﻛﻮل DFU ،ﻓ ﺴﻮفﻳﺼﺎ ب
ﺑﺮوﺘﻬﺎء ﻣﻦ
ﺒﻞ اﻻﻧ
ﺘﺎﻟﻴ ﺔ ،ﻗ
ﺒﻴﺎﻧﺎ ت ﻟﺼﻮرة اﻟﻤﺮﺣﻠ ﺔ اﻟ
ﻣﻦ اﻟ
ﺒﻴﻘﻨﺎ.
ﺒﺮﺗﻄ
ﺘ ﺘﺸﻮﻳ ﺶ ،وﻟﻜﻦ أ ً
ﻳﻀﺎ ﻋﻨﺪﻣﺎ ﻛﻨﺎ ﻧﺼﺤﺢ اﻷﺧﻄﺎء وﻧﺨ ﺛﻨﺎء اﻟ
ذﻟﻚ .ﻟﺬﻟﻚ ،ﻣﻦ اﻟﺸﺎﺋﻊ ﺟﺪًا رؤﻳ ﺔ ذﻋﺮ SecureROM ،ﻟﻴ ﺲ ﻓﻘﻂ أ
ﺘﺸﻮﻳ ﺶ ﻓ ﻲ
ﺒﻴﻌ ﻲ .وﻣﻊ ذﻟﻚ ،ﻋﻨﺪ اﻟ
ﺑﺸﻜﻞ ﻃﺒﺪال ﻣﻌﺎﻟﺞ اﻟﺬﻋﺮ واﻟﺨﺮوج
ﺘﺒﻴﺮة ،ﺣﻴ ﺚﻳﻤﻜﻨﻨﺎ اﺳ
ﺘﻘﻞ ،ﻟﻦﻳﻜﻮن اﻟﺬﻋﺮ ﻣﺸﻜﻠ ﺔ ﻛ
ﺘﺸﻮﻳ ﺶ ﻓ ﻲ اﻟﻮﺿﻊ اﻟﻤ ﺴ
ﻋﻨﺪ اﻟ
ﺘﻤﺮ ،ﻓﺈنﺗﺸﻐﻴﻞ
ﺘﻢﺗﻨﻈﻴﻒ اﻷﻗﻔﺎل أو اﻟﺨﻴﻮط .ﻧﻈ ﺮًاﻷن اﻟﻌﻤﻠﻴ ﺔ ﻟﻦﺗﺨﺮج ﻓﻌﻠ ًﻴﺎ ﻓ ﻲ اﻟﻮﺿﻊ اﻟﻤ ﺴ
ﺘﻤﺮ ،ﻳﻜﻮن اﻟﺬﻋﺮ ﻏﻴﺮ ﻣﺮﻏﻮ ب ﻓﻴﻪ ﻟﻠﻐﺎﻳ ﺔ ،ﺣﻴ ﺚ ﻻﻳ
اﻟﻮﺿﻊ اﻟﻤ ﺴ
ﺜﻞ ﻫﺬا اﻟﺬﻋﺮ .ﻟﺬﻟﻚ ،
ﺘﻢﺗﻌﻠﻴﻘﻬﺎ ﻋﻨﺪﻣﺎ ﻧﺼﻞ إﱃ ﻣ
ﺘ ﻲﻳ
ﺒﻂ ﻣﺎ ﻫ ﻲ اﻷﻗﻔﺎل اﻟ
ﺑﺎﻟﻀﺑﻌ ﺔ .ﻟﺤ ﺴﻦ اﻟﺤﻆ ،ﻧﺤﻦ ﻧﻌﺮف
ﺘﺎ
ﺘﻤﻜﻦ ﻣﻦ اﻟﻤ
ﺗﻤﺎﻣﺎ وﻟﻦﻳ
ً ﺘﻮﻗﻒ
ﺘﺎﻟ ﻲﺳﻴ
ﺘﺸﻮﻳ ﺶ اﻟ
اﻟ
ﺒﻴﻌ ﻲ .ﻫﺬاﻳﻀﻤﻦ أﻧﻨﺎﻳﻤﻜﻦ أن
ﺑﺸﻜﻞ ﻃﺛﻢﻳﺨﺮج أﺧﻴ ﺮًاﺑﺸﻜﻞ ﻧﻈﻴﻒ
ﺑﻂ USB
ﺑﺈﻟﻐﺎء ﻗﻔﻞ ﻫﺬه اﻷﻗﻔﺎل ،وﻳﻀﻤﻦ ﺧﺮوج ﻣﺆﺷﺮﺗﺮاﻳﻘﻮم ﻣﻌﺎﻟﺞ اﻟﺬﻋﺮ اﻟﻤﺨﺼﺺ ﻟﺪﻳﻨﺎ
ﺘﺸﻮﻳ ﺶ.
ﺒﺪأ ﺟﻮﻟ ﺔ أﺧﺮى ﻣﻦ اﻟ
ﻧ
ﺘﻐﻴﺮ.
ﺘ ﻲﻳﻤﻜﻦ أنﺗ
ﺑﻤﻠﻔﺎ ت اﻹدﺧﺎل اﻟ
ﺘﻌﻴﻦﺗﺰوﻳﺪ AFL ++
ﺑﺮﻧﺎﻣﺞﺗﺸﻐﻴﻞ USBﻣﺨﺼﺺ ،ﻻﻳﺰالﻳﺘﻰ ﻣﻊ وﺟﻮد
ﺣ
ﺘﻢﺗﺠﻤﻴﻌﻬﺎ ﻣﻌً ﺎ ﻓ ﻲ
ﺘ ﻲﻳ
ﺑﺸﻜﻞﺗﻌ ﺴﻔ ﻲ ﻣﻦ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﺮﺳﺎﺋﻞ اﻟﻤ ﺴﻤﺎة ﻣﻦ ﻧﻔ ﺲ اﻟﺤﺠﻢ ،واﻟﺘﺄﻟﻒ
ﺘﺸﻮﻳ ﺶ .و ﻫﻮﻳ
ﻟﺬﻟﻚ ،ﺗﻢﺗﺼﻤﻴﻢﺗﻨ ﺴﻴﻖ ﻣﺨﺼﺺﺗﻢﺗﺤ ﺴﻴﻨﻪ ﻟﻠ
ﺜﺎل ﻓ ﻲ ﺣﺪ ث USB.ﻳﻤﻜﻦ رؤﻳ ﺔﺗﻌﺮﻳﻒ
ﺒﻴﻞ اﻟﻤ
ﺒ ﺐ ﻋﲆﺳ
ﺘﺴ ﺘﺼﺮ ﻋﲆ رﺳﺎﻟ ﺔ USB ،وﻟﻜﻦﻳﻤﻜﻦ أ ً
ﻳﻀﺎ أنﺗ اﻟﻤﻠﻒ .ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أﻧﻬﺎﺗ ﺴﻤﻰ رﺳﺎﺋﻞ ،إﻻ أﻧﻬﺎ ﻻﺗﻘ
اﻟﺮﺳﺎﻟ ﺔ اﻟﻮاﺣﺪة ﻓ ﻲ اﻟﻜﻮد 5.14.
ﺒﻴﺎﻧﺎ ت
ﺋﻤﺎ .وﻟﻬﺬه اﻟﻐﺎﻳ ﺔ ،ﻓﺈن ﻛﻼ ﻣﻦ اﻟﻨﻮع وﺣﺠﻢ اﻟ
ﺒﺎﺷﺮ دا ً
ﺑﺸﻜﻞ ﻣﺋﻲ
ﺛﻴﺮ ﻣﺮ
ﺘﻘﻠﻴ ﺐ اﻹدﺧﺎلﺗﺄ
ﻳﻬﺪرﺗﻨ ﺴﻴﻖ اﻹدﺧﺎل أﻗﻞ ﻣ ﺴﺎﺣ ﺔ ﻣﻤﻜﻨ ﺔ ،ﻟﺬﻟﻚﻳﺠ ﺐ أنﻳﻜﻮن ﻟ
ﺑﺎﻳ ﺖﺑ ﺴﻬﻮﻟ ﺔﺑﺎﻳ ﺖ ،ﻟﺬا ﻓﺈن اﻟﺤﺠﻢ اﻷﻗﺼﻰﻳﻨﺎﺳ ﺐ
ﺑﺤﺪ أﻗﺼﻰ 0x40ﺒﻴﺎﻧﺎ ت
ﺘﺨﺪام اﻟﻤﺰﻳﺪ .ﻛﻤﺎ رأﻳﻨﺎ ،ﺗﻜﻮن اﻟ
ﺑﺎﻳ ﺖ واﺣﺪ ﻓ ﻲ اﻟﺤﺠﻢ ،ﺣﻴ ﺚ ﻻﻳﻤﻜﻨﻬﻢ اﺳﻫﻤﺎ ﻓﻘﻂ
ﺒﻠ ﻲ.
ﺘﻘﺘﻮﺳﻊ اﻟﻤ ﺴ
ﺒ ﺴﺎﻃ ﺔ واﻟ
ﺑﺎﻳ ﺖ واﺣﺪ ،ﻓﻘﺪﺗﻢﺗﺠﻨ ﺐ ذﻟﻚ ﻣﻦ أﺟﻞ اﻟﺒﻴﺎﻧﺎ ت ﻓ ﻲ
ﺑﻴﻦ اﻟﻨﻮع وﺣﺠﻢ اﻟواﺣﺪ .ﻓ ﻲ ﺣﻴﻦ أﻧﻪﻳﻤﻜﻦ إ ﻫﺪار ﻣ ﺴﺎﺣ ﺔ أﻗﻞ ﻣﻦ ﺧﻼل اﻟﺠﻤﻊ
ﺘﺎﻟﻴ ﺔ:
ﺘﻢﺗﻨﻔﻴﺬ اﻷﻧﻮاع اﻟ
ﺑﺎﻟﻌﻮدة إﱃﺗﻌﺮﻳﻒ اﻟﺮﺳﺎﻟ ﺔ ،ﻳ
ﺑﻴﺎﻧﺎ ت ﻫﺬه اﻟﺮﺳﺎﻟ ﺔ ﻛﺤﺰﻣ ﺔ إﻋﺪاد USB 28وإرﺳﺎﻟﻬﺎ إﱃ• SETUP:ﻳﺠ ﺐ ﻣﻌﺎﻣﻠ ﺔ
ﺳﺎﺋﻖ USBوﻓﻘﺎ ﻟﺬﻟﻚ.
ﺘﻮي ﺣﺪ ث ً
ﺒﺎﺷﺮة إﱃ ﻣﻌﺎﻟﺞ ﺣﺪ ث USBاﻷﺳﺎﺳ ﻲ ﻣﻦ SecureROM.ﻳﺤ
ﺗﻤﺮﻳﺮ ﻫﺎ ﻣ
ﺒﻴﺎﻧﺎ ت ﻛﺤﺪ ث USB tو
ﺑﻌ ﺔ اﻷوﱃ ﻣﻦ اﻟ
ﺘﺎ ت اﻷر
ﺒﺎﻳ
ﺘﻌﺎﻣﻞ ﻣﻊ اﻟ
ﺘﻢ اﻟ
•اﻟﺤﺪ ث:ﻳ
ﺘﺼﻞ وإﻋﺎدةﺗﻌﻴﻴﻦ USB.
ﺑﻞ ﻏﻴﺮ ﻣ
ﺘﺼﻞ وﻛﺎ
ﺒﻞ ﻣ
ﺘﺎﻟﻴ ﺔ - known29 - pos sible:ﻛ
USB tﻋﲆ اﻟﻘﻴﻢ اﻟ
ﺒﺖ
ﺜﺛﻨﻴﻦ اﻵﺧﺮﻳﻦ ﻟﻴ ﺴﻮا ﻛﺬﻟﻚ.ﻳﻤﻜﻦ أنﻳ
ﺑﺄن اﻻﺘﺄﻛﻴﺪ أنﻳﺠﺎدل
ﺑﺎﻟﺒ ﺐ اﻟﺤﺎﺟ ﺔ إﻟﻴﻬﺎ ،ﻳﻤﻜﻦ ﻟﻠﻤﺮء
ﺒ ﺔ إﱃ SETUPو DATAو EVENT ،ﻣﻦ اﻟﻮاﺿﺢﺳ
ﺑﺎﻟﻨ ﺴﺑﻴﻨﻤﺎ
ﺒﻄﻴﺌ ﺔ أو ﻣﺤﺎوﻟ ﺔ AFL ++
ﺒﺎر اﻟ
ﺘﺒﺎق .ﻟﻠﺤﺪ ﻣﻦ أيﺗﺪ ﻫﻮر ﻣﺰﻋﺞ -ﺳﻮاء ﻛﺎن ذﻟﻚ ﻓ ﻲ ﺣﺎﻻ ت اﻻﺧ
ﺘﻤﺪ ﻋﲆ ﻇﺮوف اﻟ ﺴ
ﺘﻤﻞﻳﻌ
SLEEPأﻧﻪ ﻣﻔﻴﺪ ،إذا ﻛﺎن اﻻﻧﻬﻴﺎر اﻟﻤﺤ
ﺑﻪ ﻫﻮ 10.ﺛﺎﻧﻴ ﺔ اﻟﻤ ﺴﻤﻮحﺒﺎر ﻣﻌﻠﻘ ﺔ ،ﻓﺈن اﻟﺤﺪ اﻷﻗﺼﻰ ﻟﻌﺪد اﻟﻤﻠﻠ ﻲ
ﺘﻹﻧﺸﺎء ﺣﺎﻻ ت اﺧ
ﺘﺸﻮﻳ ﺶ USB
ﺑﺖ ﻟ
ﺜﺎ
5.7.4اﻟﻮﺿﻊ اﻟ
ﺋﻴ ﺴ ﻲ ﻟـ FETAﻫﻮ
ﺗﻬﺎ اﻟﺨﺎﺻ ﺔ ﻓ ﻲ FETA.اﻟﻬﺪف اﻟﺮ ﺑﺪﻻ ً ﻣﻦ ذﻟﻚ إﱃﺗﻄ
ﺒﻴﻘﺎ ﺘﺬ ﻫ ﺐ
ﺘﺼﺤﻴﺢ ﻫﺬه اﻟﻤﻜﺎﻟﻤﺎ ت ﻟ
ﺑﺒﺎﺷﺮ ﻟـ mallocوﻣﺠﺎﻧ ﻲ ،ﻟﺬﻟﻚ ﻗﻤﻨﺎ
ﺑﺪﻳﻞ ﻣإﻧﻪ
ﺜﻞ اﻟﻔﻴﻀﺎﻧﺎ ت أو UAF ،ﻣﻊ ﻛﻮﻧﻪ آﻣﻨًﺎ أ ً
ﻳﻀﺎ.ﻳﺤﻘﻖ FETAﻫﺬا ،ﻣﻦ ﺧﻼلﺗﻌﻴﻴﻦ ﻋﺪد ﻣﻌﻴﻦ ﻣﻦ اﻟﺼﻔﺤﺎ ت ﺘﺸﺎف أي ﻣﺸﻜﻼ ت ﻓ ﻲ اﻟﻜﻮﻣ ﺔ ﻗﺪﻳﻮاﺟﻬﻬﺎ اﻟﻤﺼﻬﺮ ،ﻣ
اﻛ
ﺘﺨﺼﻴﺺ
ﺘﺨﺪام ﻟﻠ
ﺒ ﺐ ﻫﺬا ،ﻓﺈن أي اﺳ
ﺑﺴﺑﻠ ﺔ .و
ﺘﻢ إﻟﻐﺎءﺗﻌﻴﻴﻦ اﻟﺼﻔﺤﺎ ت اﻟﻤﻘﺎ
ﺘ ﺔ ،ﻳ
ﺘﻢﺗﺤﺮﻳﺮﺗﺨﺼﻴﺺ ﻛﻮﻣ ﺔ اﻟﺬاﻛﺮة اﻟﻤﺆﻗ
ﻟﻜﻞﺗﺨﺼﻴﺺ ﻛﻮﻣ ﺔ ﻣﻄﻠﻮ ب .ﻋﻨﺪﻣﺎﻳ
ﺘﻢ
ﺘﺎﻟ ﻲ ﻟﻦﻳ
ﺑﺎﻟ
ﺑﻖ ﻣﺮة أﺧﺮى -و
ﺘﺨﺼﻴﺺ اﻟ ﺴﺎ
ﺘﺨﺼﻴﺺ اﻟﻤﺬﻛﻮر .ﻟﻀﻤﺎن ﻋﺪمﺗﻌﻴﻴﻦ اﻟ
ﺘﻰ ﻟﻮ ﻛﺎن ﻣﺠﺮد ﻗﺮاءة ﻟﻠ
ﺋﺔ ،ﺣ
اﻟﻤﺤﺮر ،ﺳﻴﺆدي ﻋﲆ اﻟﻔﻮر إﱃ ﺣﺪو ث ﺧﻄﺄﺗﺠﺰ
ﺘ ﺔ.
ﺑﺛﺎﺘﻢﺗﻌﻴﻴﻦ اﻟﺼﻔﺤﺎ ت ﻋﲆ ﻋﻨﺎوﻳﻦ
ﺘﺨﺼﻴﺼﺎ ت اﻟﺠﺪﻳﺪة ﻓﻘﻂ وﻳ
ﺗﺰداد ﻋﻨﺎوﻳﻦ اﻟ
ﺘﺸﺎف UAF ،
اﻛ
ﺑﺎﻃﻞ ؛ )(0x1000
ﺑﺎﻃﻞ ؛ )* chunk1 = malloc (0x100
ﺑﺎﻃﻞ ؛ )= malloc (0x201
* chunk2 = malloc
* chunk3ﻣﺠﺎﻧ ﻲ ؛ )(chunk2
ﺘﺨﺼﻴﺼﺎ ت.
ﺜﺎل ﻋﲆ اﻟ
اﻟﺮﻣﺰ 5.15:ﻣ
ﺘﻐﻄﻴ ﺔ
5.9ﻣﻌﻠﻮﻣﺎ ت اﻟ
ﺘﻐﻼل.
ﺘﺨﺼﻴﺼﺎ ت اﻟﻤﺤﺮرةﻳﻤﻜﻦ أنﺗ ﺴﺎﻋﺪ ﻓ ﻲ اﻻﺳ
ﺒﺎ ت ﻋﻦ ﻃﺮﻳﻖ ﻗﺮاءة اﻟ
ﺘ ﺴﺮﻳ
ﺘﻰ اﻟ
30ﺣ
ﺘﻤﺎلﺗ ﺴﺮ ب اﻟﻜﻮﻣ ﺔ.
ﺜﺮ ﻣﻦ اﻟﺠﺰء اﻟﻤﺨﺼﺺ ،ﻣﻤﺎﻳﺆدي ﻣﺮة أﺧﺮى إﱃ اﺣ
31ﻗﺮاءة أﻛ
ﺘﺪﻓﻖ.
ﺘﺤﻜﻢ ﻓ ﻲ اﻟ
ﺒﻴﺎﻧ ﻲ اﻟﻘﻴﺎﺳ ﻲ ﻟﻠ
ﺘﻞ اﻷﺳﺎﺳﻴ ﺔ ﻓ ﻲ اﻟﺮﺳﻢ اﻟ
ﺘﻞ ﻓﻴﻤﺎﻳﻠ ﻲ ،ﻓﺈﻧﻨﺎ ﻧﺸﻴﺮ إﱃ اﻟﻜ
ﻋﻨﺪﻣﺎ ﻧﺸﻴﺮ إﱃ اﻟﻜ
Machine Translated by Google
اﻟﻌﻨﻮان اﻟﺤﺎﻟ ﻲ
0x20f00 0x22000
ﺘﺨﺼﻴﺺ اﻷول.
ﺑﻌﺪ اﻟ) ب(
0x20f00 0x24000
ﺜﺎﻧ ﻲ.
ﺘﺨﺼﻴﺺ اﻟ
ﺑﻌﺪ اﻟ)ج(
ﺜﺎﻟ ﺚ.
ﺘﻮزﻳﻊ اﻟ
ﺑﻌﺪ اﻟ)د(
ﺑﻌﺪ اﻟﺤﺮة.)ه(
ﺘﺨﺼﻴﺼﺎ ت.
ﺜﻠ ﺔ اﻟ
ﺗﺼﻮر أﻣ
اﻟﺸﻜﻞ 5.1:
Machine Translated by Google
ﺘﻐﻄﻴ ﺔ
5.9.ﻣﻌﻠﻮﻣﺎ ت اﻟ 33
ﺘﺸﻮﻳ ﺶ ﻫ ﻲ ﻛﻤﺎﻳﻠ ﻲ .أوﻻ ً ،ﻳﺤﻔﻆ AFL ++أي ﻣﺪﺧﻼ تﺗﻮﻟﺪﺗﻐﻄﻴ ﺔ ﺟﺪﻳﺪة ﻟﻤﻠﻒ ،ﻳﺸﺎر إﻟﻴﻬﺎ ﻓﻴﻤﺎ
ﺗﺼﻮرﺗﻐﻄﻴ ﺔ ﻋﻤﻠﻴ ﺔ اﻟ
اﻟﻔﻜﺮة اﻷﺳﺎﺳﻴ ﺔ وراء ﻗﻴﺎس و
ﺘﻪ
ﺜﻞ ﻣﻬﻤ
ﺘﻤﺗ
ﺘﺨﺪام ﻣﻜﻮن إﺿﺎﻓ ﻲ ﻣﺨﺼﺺ ،و
ﺑﺎﺳ
ﺘﻤﺎم.ﻳﻤﻜﻦﺗﺸﻐﻴﻞ ﻫﺬه اﻟﻌﻨﺎﺻﺮﻳﺪوﻳًﺎ واﺣﺪًاﺗﻠﻮ اﻵﺧﺮ ﻣﻦ ﺧﻼل QEMU
ﺜﻴﺮة ﻟﻼ ﻫ
ﺑﻌﺪ ﻋﲆ أﻧﻬﺎ ﻣﺪﺧﻼ ت ﻣ
ﺒﺮﻧﺎﻣﺞ اﻟﻤ ﺴﺎﻋﺪ [10].
ﺘﺨﺪام ﻧ ﺴﺨ ﺔ ﻣﻌﺪﻟ ﺔ ﻣﻦ اﻟ
ﺑﺎﺳ
ﺗﺠ ﺔ إﱃ IDA
ﺘﻐﻄﻴ ﺔ اﻟﻨﺎ
ﺘﻴﺮاد ﻣﻠﻔﺎ ت اﻟ
ﺘﻐﻄﻴ ﺔ ﻓ ﻲ ﻣﻠﻒ .أﺧﻴ ﺮًا ،ﻳﻤﻜﻦ اﺳ
ﻓ ﻲ ﺣﻔﻆ ﻣﻌﻠﻮﻣﺎ ت اﻟ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ وﺟﻮد اﻹﺣﺼﺎﺋﻴﺎ ت اﻷوﻟﻴ ﺔ ﻓﻘﻂ.
ﺘﻐﻄﻴ ﺔ ﻋﲆ ﻣﺨﻄﻂﺗﺪﻓﻖﺗﺤﻜﻢ )(CFG
ﺘﻴﺢ ذﻟﻚ إﻣﻜﺎﻧﻴ ﺔﺗﺼﻮر اﻟ
Lighthouseﻳ
ﺑ ﺴﻴﻂ ﻟﻠﻐﺎﻳ ﺔ.ﻳﻤﻜﻦ ﻟﻠﻤﺮءﺗﺤﺪﻳﺪ ﻧﻄﺎق اﻟﻌﻨﻮان اﻟﺬيﻳﺠ ﺐﺒﺮﻧﺎﻣﺞ اﻟﻤ ﺴﺎﻋﺪ QEMU ،ﻓﺈن اﻟﻤﻜﻮن اﻹﺿﺎﻓ ﻲ ﻓ ﻲ اﻟﻮاﻗﻊ
ﺒﻴﻘﺎ ت اﻟ
ﺑﺮﻣﺠ ﺔﺗﻄﺑﻔﻀﻞ واﺟﻬ ﺔ
ﺑ ﺖ ﻟﻜﻞ ﻋﻨﻮان ﻓ ﻲ اﻟﻨﻄﺎق اﻟﻤﺤﺪد .ﻫﺬه اﻟﻤﺼﻔﻮﻓ ﺔ ،
ﺘﻮاء ﻋﺪد ﺻﺤﻴﺢ واﺣﺪ ﻣﻦ 16
ﺑﻤﺎﻳﻜﻔ ﻲ ﻻﺣﺒﻴﺮة
ﺛﻢﻳﺨﺼﺺ ﻣﺼﻔﻮﻓ ﺔ ﻋﺪد ﺻﺤﻴﺢ ،ﻛﺘﻪ.
ﺘﻘﺎطﺗﻐﻄﻴ
اﻟ
ﺘﻰ ﻟﻮﺗﻌﻄﻞ QEMUأوﺗﻮﻗﻒ ،ﻳﺠ ﺐ أنﺗﻈﻞ
ﺘﻴﺠ ﺔ ﻟﻬﺬا ،ﺣ
ﺒﺎﺷﺮة ﻓ ﻲ اﻟﺬاﻛﺮة .ﻧ
ﺑﻤﻠﻒ ﻣﻦ ﻧﻔ ﺲ اﻟﺤﺠﻢ ،ﻋﻦ ﻃﺮﻳﻖﺗﻌﻴﻴﻦ واﺻﻒ ﻣﻠﻒ ﻣﺑﺎﻟﻔﻌﻞﻣﺪﻋﻮﻣ ﺔ
ﺑﻞ ﻟﻌﻨﻮان ﻣﻌﻴﻦ ،ﻛﻠﻤﺎﺗﻢﺗﻨﻔﻴﺬﺗﻌﻠﻴﻤﺎ ت ﻋﲆ ﻫﺬا اﻟﻌﻨﻮان.
ﺑﻌﺪ ذﻟﻚ زﻳﺎدة ﻋﻨﺼﺮ اﻟﻌﺪد اﻟﺼﺤﻴﺢ اﻟﻤﻘﺎ
ُﻄﻠ ﺐ ﻣﻦ QEMU
ﺘ ﺔ ﻋﲆ اﻟﻘﺮص.ﻳ
ﺑﺛﺎﺘﻐﻄﻴ ﺔ
ﻣﻌﻠﻮﻣﺎ ت اﻟ
ﺘﻤﺎم
ﺜﻴﺮة ﻟﻼ ﻫ ﺘ ﻲﺗﻢ ﻗﻄﻌﻬﺎ ،وﻟﻜﻦ أ ً
ﻳﻀﺎ ﻋﲆ ﻋﺪد اﻟﻤﺮا ت .ﻓ ﻲ ﺟﻮ ﻫﺮ ﻫﺎ ،ﺗﻌﻄ ﻲ اﻟﻤﺪﺧﻼ ت اﻟﻤ ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻐﻄﻴ ﺔ ﻓﻘﻂ ﻋﲆ اﻟ
ﺘﻮي ﻣﻌﻠﻮﻣﺎ ت اﻟ
ﻣﻊ ﻫﺬا اﻟﻨﻬﺞ ،ﻻﺗﺤ
ﺒﺼﻴﺮة ﻓ ﻲ ﻧﺠﺎح ﻏﻤﻮﺿﻨﺎ ،ﻣﻦ ﺧﻼل اﻟﻨﻈﺮ ﻓ ﻲ
ﺑﻌﺾ اﻟﺘ ﺴﺎ ب
ﺜﻨﺎﺋ ﻲ .ﻟﺬﻟﻚ ،ﻧﻬﺪف إﱃ اﻛ
ﺜﻮر ﻋﻠﻴﻬﺎ ﻓ ﻲ ﺟﻤﻴﻊ أﻧﺤﺎء اﻟﻨﻈﺎم اﻟ
ﺘ ﻲﺗﻤﻜﻦ اﻟﻤﺼﻬﺮ ﻣﻦ اﻟﻌ
ﺟﻤﻴﻊ اﻟﻤ ﺴﺎرا ت اﻟ
ﺒﻌﺾ وﺟﻤﻴﻊ اﻟﻤ ﺴﺎرا ت اﻟﻤﻮﺟﻮدة.
ﺒﻌﻀﻬﺎ اﻟ
ﺑﺘﻌﻠﻖ
ﺘﻠﻔ ﺔ ﻓﻴﻤﺎﻳ
ﺘﻞ اﻟﻤﺨ
ﻛﻴﻔﻴ ﺔ أداء اﻟﻮﻇﺎﺋﻒ أو اﻟﻜ
ﺜﻮر
ﺘﺎﻟ ﻲ ﻣﻦ اﻟﻤﺮﺟﺢ اﻟﻌ
ﺑﺎﻟ
ﺘﻤﻠ ﺔ ،و
ﺘﻨﻮﻋ ﺔ ﻣﻦ اﻟﺤﺎﻻ ت اﻟﻤﺤ
ﺘﻢ إدﺧﺎﻟﻬﺎ ﻣﻊ ﻣﺠﻤﻮﻋ ﺔ ﻣ
ﺘﻢﺗﻨﻔﻴﺬ ﻫﺎ ﻓ ﻲ ﻣﻌﻈﻢ اﻟﻤ ﺴﺎرا ت ،ﻣﻦ اﻟﻤﺮﺟﺢ أنﻳ
ﺘ ﻲﻳ
ﺘﻠ ﺔ اﻟ
ﺜﺎل ،اﻟﻜ
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺜﺮﺗﻔﺼﻴ ﻼ ً ،ﻧﻘﺪم ﻣﻘﻴﺎﺳﻴﻦ.
ﺘﻐﻄﻴ ﺔ اﻷﻛ
ﺘﺨﺪام ﻣﻌﻠﻮﻣﺎ ت اﻟ
ﺘﻤﻜﻦ ﻣﻦ اﺳ
ﺘﻋﲆ اﻻﻧﻬﻴﺎر -إذا ﻛﺎن ﻣﻮﺟﻮدًا .ﻟ
ﺘﻠ ﺔ أﺳﺎﺳﻴ ﺔ
ﺘ ﻲﺗﻢﺗﻨﻔﻴﺬ ﻛ
ﺒ ﺔ اﻟﻤﺌﻮﻳ ﺔ ﻟﻌﻤﻠﻴﺎ ت اﻹﻋﺪام ،اﻟ
ﺘﺼﺎر ،اﻟﻨ ﺴ
ﺒ ﺔ اﻟﻤﺌﻮﻳ ﺔ iﻟﻼﺧ
ﺒﻴ ﺔ ﻟﻺدﺧﺎل أو اﻟﻨ ﺴ
ﺒ ﺔ اﻟﻤﺌﻮﻳ ﺔ اﻟﻨ ﺴ
ﻳﻌﻄ ﻲ اﻟﻤﻘﻴﺎس اﻷول ،اﻟﻨ ﺴ
ﺘﻠ ﺔ
ﺘﻠ ﺔ أﺳﺎﺳﻴ ﺔ ﻣﻌﻴﻨ ﺔ.ﻳﻤﻜﻦ أنﺗﺸﻴﺮ اﻟﻜ
ﺘ ﻲﺗﻘﻊ ﻋﻠﻴﻬﺎ ﻛ
ﺒ ﺔ اﻟﻤﺌﻮﻳ ﺔ ﻣﻦ اﻟﻤ ﺴﺎرا ت اﻟ
ﺘﺎج اﻟﻨ ﺴ
ﺘﻨﺘﺨﺪام ﻫﺬا ،ﻳﻤﻜﻨﻨﺎ اﺳ
ﺑﺎﺳﻣﻌﻴﻨ ﺔ ﻟﻬﺎ ﻣﺮة واﺣﺪة ﻋﲆ اﻷﻗﻞ.
ﺘﺎﻟ ﻲ ﻻﻳﺰال ﻣﻦ اﻟﻤﻤﻜﻦ ﺣﺪو ث
ﺑﺎﻟ
ﺘﻤﻠ ﺔ ،و
ﺘﻌﺮض ﻟﻠﻌﺪﻳﺪ ﻣﻦ اﻟﺤﺎﻻ ت اﻟﻤﺤ
ﺘﻠ ﺔ ﻟﻢﺗ
ﺒ ﺔ ﺻﻐﻴﺮة ﻣﻦ اﻟﻤ ﺴﺎرا ت إﱃ أن اﻟﻜ
ﺘ ﻲﺗﻘﻊ ﻋﲆ ﻧ ﺴ
اﻷﺳﺎﺳﻴ ﺔ اﻟﻤﻌﻘﺪة اﻟ
ﺘﻤﺎم
ﺜﻴﺮة ﻟﻼ ﻫ
ﺘﻌﻴﻴﻦ Iﻛﻤﺠﻤﻮﻋ ﺔ ﻣﻦ ﺟﻤﻴﻊ اﻟﻤﺪﺧﻼ ت اﻟﻤ
ﺑﺘﻠ ﺔ اﻷﺳﺎﺳﻴ ﺔ bb.ﻧﻘﻮم
ﺒ ﺔ اﻟﻤﺌﻮﻳ ﺔ ﻟﻠﻜ
ﺣﻮاد ثﺗﺤﻄﻢ ﻫﻨﺎك.ﺗﻮﺿﺢ اﻟﻤﻌﺎدﻟ ﺔ 5.1ﺻﻴﻐ ﺔ ﺣ ﺴﺎ ب اﻟﻨ ﺴ
ﺛﻨﺎء اﻹدﺧﺎل I 2 I.
ﺘﻠ ﺔ اﻷﺳﺎﺳﻴ ﺔ bb0أ
و ) execsI (bb0ﺣﻴ ﺚﺗﻢﺗﻨﻔﻴﺬ ﻋﺪد ﻣﺮا تﺗﻨﻔﻴﺬ اﻟﻜ
ﺒﺔ
| }| {I 2 I | execsI (bb)> 0اﻟﻨ ﺴ
اﻟﻤﺌﻮﻳ ﺔ ) ب ب( = )(5.1
|أﻧﺎ |
ﺒ ﺔ اﻟﻤﺌﻮﻳ ﺔ f.
ﺘﻞ اﻷﺳﺎﺳﻴ ﺔ اﻷﺧﺮى اﻟﻨ ﺴ
ﺘﺨﺪم ﺟﻤﻴﻊ اﻟﻜ
ﺑﻴﻨﻤﺎﺗ ﺴﺘﻠ ﺔ اﻷﺳﺎﺳﻴ ﺔ ﻹدﺧﺎل داﻟ ﺔ ،
ﺒ ﺔ اﻟﻤﺌﻮﻳ ﺔ iﻟﻠﻜ
ﺘﺨﺪم اﻟﻨ ﺴ
ﺘﺎﺋﺞ ﻓ ﻲ اﻟﻘ ﺴﻢ 6.6وﻧ ﺴ
ﺘﻢ ﻋﺮض اﻟﻨ
ﻳ
اﻟﻔﺼﻞ 6
ﺗﻘﻴﻴﻢ
ﺜﻴﺮة
ﺛ ﺔ إﺟﺮاءا تﺗﺨﻔﻴﻒ ﻣ
ﺛﻼﺑﻤﺎ ﻓ ﻲ ذﻟﻚﺑﺖ ،
ﺜﺎ
ﺘﺎﺋﺞﺗﺤﻠﻴﻠﻨﺎ اﻟ
ﺒﺪء ،ﻧﻘﺪم ﻧ
ﺛﻨﺎءﺗﻄﻮره .ﻟﻠ
ﺘ ﻲﺗﻢ اﻟﺤﺼﻮل ﻋﻠﻴﻬﺎ ﻣﻊ emmutalerوأ
ﺘﺎﺋﺞ اﻟ
ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ﻧﻘﺪم اﻟﻨ
ﺑﻌﺪﺘﻬﻤﺎ ﻓ ﻲ ﻣﻜﺎن آﺧﺮ.
ﺘﻢ ﻣﻨﺎﻗﺸ
ﺘﺨﻔﻴﻔﻴ ﺔ ﺟﺪﻳﺪة وﻟﻢﺗ
ﺛﻨﻴﻦ ﻣﻦ ﻫﺬه اﻟﻌﻮاﻣﻞ اﻟ
ﺑﺸﻜﻞ ﺧﺎص ﻣﻮﺟﻮدة ﻓ ﻲ SecureROMوﺟﺪﻧﺎ ﻫﺎ .ﻋﲆ ﺣﺪ ﻋﻠﻤﻨﺎ ،ﻓﺈن اﺘﻤﺎم
ﻟﻼ ﻫ
ﺛﻴﺮ ﻫﺎ ﻋﲆ
ﺘﻠﻔ ﺔ وﻣﻨﺎﻗﺸ ﺔﺗﺄ
ﺑﻤﻘﺎرﻧ ﺔ أوﺿﺎع AFL ++اﻟﻤﺨﺘﺸﺎف ﺧﻄﺄ checkm8.ﻋﻼوة ﻋﲆ ذﻟﻚ ،ﻗﻤﻨﺎ
ﺑﻤﺎ ﻓ ﻲ ذﻟﻚ اﻛﺘﻔﺼﻴﻞ ،
ﺑﺎﻟﺘﺎﺋﺞ اﻟﻐﺎﻣﻀ ﺔ
ذﻟﻚ ،ﻧﻨﺎﻗ ﺶ اﻟﻨ
ﺘﺎﺋﺞ اﻟﻤﺤﻴﺮة.
ﺑﺎﻟﻨﺑﻄﻬﺎ
ﺘﻔﺼﻴﻞ ور
ﺑﺎﻟﺘﻐﻄﻴ ﺔ اﻟﻤﺤﻘﻘ ﺔ
ﺘﺤﻠﻴﻞ اﻟ
ﺑﺘﺸﻮﻳ ﺶ .أﺧﻴ ﺮًا ،ﻧﻘﻮم
ﺳﺮﻋ ﺔ اﻟ
ﺘﺤﻠﻴﻞ اﻟ ﺴﺎﻛﻦ
6.1اﻟ
ﺑﻔﻀﻞﺗﻤﺎﻣﺎ.
ً ﺑ ﺔ ﺻﺤﻴﺤ ﺔ اﻵن و ﻫ ﻲ ﻣﻔﻬﻮﻣ ﺔ
ﺘﺎ
ﺒﺎ ﻋﲆﺗﻮاﻗﻴﻊ ﻛ
ﺘﻮي ﺟﻤﻴﻊ اﻟﻮﻇﺎﺋﻒ اﻟﻤﺤﺪدةﺗﻘﺮﻳ ً
ﺑﺎﻻﺳﻢ.ﺗﺤ
ﺗﻢﺗﺤﺪﻳﺪ 554
ﺑﻴﻦ 724وﻇﻴﻔ ﺔ 1 ،ﻓ ﻲ اﻟﻤﺠﻤﻮع ،ﻣﻦ
ﺜﺮﺗﻌﻘﻴﺪًا
ﺗﻬﺎ اﻵن ﻓ ﻲ اﻟﻜﻮد 6.1.ﻟﻠﺤﺼﻮل ﻋﲆ وﻇﻴﻔ ﺔ أﻛ
ﺜﺎل ﻟﻮﻇﻴﻔ ﺔ أﺻﻐﺮﻳﻤﻜﻦ ﻗﺮاء
وﻣﻔﻜﻚ.ﻳﻈﻬﺮ ﻣ
ﺑﻞ ﻟﻠﻘﺮاءة ُ
ﺘﻮي ﻣﻌﻈﻢ اﻟﻮﻇﺎﺋﻒ ﻋﲆ ﻛﻮد ﻗﺎ
ﺗﻮاﻗﻴﻊ اﻟﻨﻮع ،ﺗﺤ
ﺘﺮاﺿﻴ ﺔ ،اﻧﻈﺮ اﻟﻤﻠﺤﻖ ج.
ﺘﺪﻋﺎءا ت وﻇﺎﺋﻒ اﻓ
ﺘﻀﻤﻦ اﺳ
ﺗ
ﺑﺔ
ﺘﺎ
ﺛﻨﺎء اﻟﻜ
ﺜﻮر ﻋﲆ اﻟﻤﺰﻳﺪ أ
ﺗﻢ اﻟﻌ
ﺑﻴﻨﻤﺎﻳﻤﻜﻦ أنﻳﻜﻮن ﻫﻨﺎك اﻟﻤﺰﻳﺪ -ﺘ ﻲ وﺟﺪﻧﺎ ﻫﺎ.
1ﻋﲆ اﻷﻗﻞ ﻫﺬا ﻫﻮ ﻋﺪد اﻟﻮﻇﺎﺋﻒ اﻟ
ﺒﻴ ًﺮا. ﻫﺬه اﻷﻃﺮوﺣ ﺔ -ﻟﻦﻳﻜﻮن ﻣ ً
ﺒﻠﻐﺎ ﻛ
34
Machine Translated by Google
ﺑﺖ
ﺛﺎﺗﺤﻠﻴﻞ
6.1 35
ﺜﺎل ،ﻣﻦ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ وﺟﻌﻞ اﻟﺮﺟﻮع أﺳﻬﻞ.ﻳﻤﻜﻦ رؤﻳ ﺔ ﻣﺑﻌﺮض ﻣﺮاﺟﻊ أﻋﻀﺎء اﻟﻬﻴﻜﻞﺘﻨﻤﻴ ﺔ
ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟﻜﻮد 6.1 ،ﻓﺈن ﻫﺬاﻳ ﺴﻤﺢ ﻟﻠﻤﺆﺳ ﺴ ﺔ اﻟﺪوﻟﻴ ﺔ ﻟﻠ
ﻫﺬا اﻟﻨﻮع ﻓ ﻲ اﻟﻜﻮد 6.2.
ﻫﻴﻜﻞ { Img4DecodeImplementation
ﺒﻴﻖ IMG4.
ﺑﻮاﺳﻄ ﺔﺗﻄﺘﺨﺪم
اﻟﻜﻮد 6.2:ﻧﻮعﻳ ﺴ
ﺘﺸﺎف اﻟﻌﺪﻳﺪ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﺗﻢ اﻛﺘﺸﻮﻳ ﺶ.
ﺗﻤﺎﻣﺎﻷي ﺷ ﻲء ﻣﻔﻴﺪ ﻟﻠ
ً ﺗﻢ إﺟﺮاء ﻫﻨﺪﺳ ﺔ ﻋﻜ ﺴﻴ ﺔ
ﺑﺸﻜﻞ ﺟﻴﺪ ،وﺘﺤﻠﻴﻞ اﻟ ﺴﺎﻛﻦ
ﺑﺸﻜﻞ ﻋﺎم ،ﺳﺎر ت ﻋﻤﻠﻴ ﺔ اﻟ
ﺒﺪو أﻧﻬﺎﺗﺸﻴﺮ إﱃ
ﺘﺨﺪام ﺷﺮﻳﺤ ﺔ A12وﻳ
ﺑﺎﺳﺘﺨﻔﻴﻒ ﻫﺬه
ﺑ ﺖ.ﺗﻢﺗﻘﺪﻳﻢ ﻣﻌﻈﻢ ﻋﻤﻠﻴﺎ ت اﻟ
ﺜﺎ
ﺘﺤﻠﻴﻞ اﻟ ﺑ ًﻘﺎ أ
ﺛﻨﺎء اﻟ ﺘﻤﺎم وﻏﻴﺮ اﻟﻤﻌﺮوﻓ ﺔﺳﺎ
ﺜﻴﺮة ﻟﻼ ﻫ
ﺘﺨﻔﻴﻒ اﻟﻤ
ﻣﻦ ﻋﻮاﻣﻞ اﻟ
إﻏﻼق ﻋﺎم ﻟـ SecureROMﻟﺰﻳﺎدة اﻷﻣﺎن.
ﺘﻨﻔﻴﺬ ﻛـ EL1.
ﺘﻤﺮ ﻓ ﻲ اﻟ
• svc 0:ﻳﻌﻮد ﻫﺬا syscallﻓﻮ ًرا ﻣﻦ ﻣﻌﺎﻟﺠﻪ ،ﻟﻜﻨﻪﻳ ﺴ
ﺗ ﺴﻤﺢ اﻟﻄﺮﻳﻘ ﺔ
ﺒﺮﻣﺠﻴ ﺔ ﻛـ EL0.
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺑﻘﻴ ﺔﺗﺪﻓﻖ اﻟﺘﻢﺗﺸﻐﻴﻞ
ﺘﻰ ﻋﻨﺪﻣﺎﻳ
ﺘﻌﻠﻴﻤﺎ ت اﻟﻤﻤﻴﺰة ،ﺣ
ﺗﻨﻔﻴﺬ اﻟ
ﻣﻦ ﺧﻼل ﻫﺬه اﻟﻄﺮﻳﻘ ﺔ ،ﻳﻤﻜﻦ ﻟـ SecureROM
ﺑﻔﻀﻞ اﻟﻄﺮق اﻟﻤ ﺴﺎﻋﺪة ،ﻳﻤﻜﻦ إﺟﺮاءﺗﺪاﺧﻞ ﻟﻬﺬه اﻟﻌﻤﻠﻴ ﺔ وﺳﻴﻌﻮدﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﺘﻌﻠﻴﻤﺎ ت اﻟﻤﻤﻴﺰة.
ﺑﻤﺠﺮدﺗﻨﻔﻴﺬ اﻟ
ﺑﺎﻟﻌﻮدة إﱃ EL0 ،اﻟﻤ ﺴﺎﻋﺪة
ﺑﻌﺪ ﻓﻘﻂ ﻓﻌﻠ ًﻴﺎ إﱃ EL0.
ﺜﻴﻞ اﻷ
اﻟﻤ
• svc 2:ﻣﻮﺟﻮد ﻓﻘﻂ ﻋﲆ A14 ،ﻳﺆدي ﻫﺬا اﻟﻨﻈﺎم إﱃﺗﻌﻄﻴﻞ اﻟﻤﻘﺎﻃﻌﺎ ت .ﻋﲆ اﻟﺮﻗﺎﺋﻖ اﻟﻘﺪﻳﻤ ﺔ ،ﺗﻢ ذﻟﻚ
ﻣﻦ ﺧﻼل ﻣﻌﺎﻟﺠ ﺔﺳﺠﻼ ت اﻟﻨﻈﺎم.
ﺘﻢ
ﺘﻴﺢ اﻟﻤﻘﺎﻃﻌﺎ ت .ﻣﺮة أﺧﺮى ،ﻫﺬا ﻣﻮﺟﻮد ﻓﻘﻂ ﻓ ﻲ A14 ،ﻛﻤﺎ ﻫﻮ اﻟﺤﺎل ﻓ ﻲ اﻟﺮﻗﺎﺋﻖ اﻟﻘﺪﻳﻤ ﺔ ﻛﺎنﻳ
ﺑﻘ ﺔ ،ﻓﻬﻮﻳ
ﺑﻞ ﻟﻤﻜﺎﻟﻤ ﺔ اﻟﻨﻈﺎم اﻟ ﺴﺎ
• svc 3:ﻫﺬا ﻫﻮ اﻟﻤﻘﺎ
ذﻟﻚ ﻋﻦ ﻃﺮﻳﻖ ﻣﻌﺎﻟﺠ ﺔﺳﺠﻼ ت اﻟﻨﻈﺎم.
ﺒﺎﺷﺮة ﻟﻠﺤﺼﻮل
ﺜﻞ ﻫﺬا اﻟﻤﻬﺎﺟﻢﺗﻨﻔﻴﺬ syscallﻣ
ﺒﺮﻣﺠﻴ ﺔ.ﻳﻤﻜﻦ ﻟﻤ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘ ﺴ ﺐﺗﻨﻔﻴﺬ اﻟ
ﺘﻤﺎم ،ﻷﻧﻪ ﻏﻴﺮ ﻣﻔﻴﺪ ﺿﺪ اﻟﻤﻬﺎﺟﻢ اﻟﺬيﻳﻜ
ﺜﻴﺮ ﻟﻼ ﻫ
ﺘﺨﻔﻴﻒ ﻣ
ﻫﺬا اﻟ
ﺜﺎل [14].
ﺒﻴﻞ اﻟﻤ
ﺑ ﺔ ﻟﺬاﻛﺮة ﻣﻤﻴﺰة ،ﻋﲆﺳ
ﺘﺎ
ﺘﻤﺪ ﻋﲆ اﻟﻜ
ﺘ ﻲﺗﻌ
ﺘﺄﻛﻴﺪ ﺿﺪ اﻟﻬﺠﻤﺎ ت اﻟ
ﺑﺎﻟﺘﺨﻔﻴﻔﺎ ت .وﻣﻊ ذﻟﻚ ،ﻓﻬ ﻲﺗ ﺴﺎﻋﺪ
ﺘﻢ ﻫﺰﻳﻤ ﺔ اﻟ
ﺛﻢﺳﻴﻋﲆ EL1 / EL3وﻣﻦ
Machine Translated by Google
ﺜﻨﺎﺋ ﻲ
6.2اﻟﺨﻠﻖ اﻟ 36
ﺗﻴﺢ ﻏﻴﺮ
ﺒﻂ ﻧﻔ ﺲ اﻟﻤﻘﺪار ﻣﻦ اﻟﻤﻔﺎ
ﺑﺎﻟﻀﺘﺨﻤﻴﻨﺎ ت إﱃ ﺣﻘﻴﻘ ﺔ أن ﻫﻨﺎك
ﺘﻨﺪ ﻫﺬه اﻟ
ﺗﺴﺗﻴﺢ اﻟﻤﻮﺟﻮدة ﻓ ﻲ EL0 ،وﻛﺬﻟﻚ ﻟـ EL3.
ﺘﻤﺎﻻ ت ،ﻧﻔ ﺲ ﻣﺠﻤﻮﻋ ﺔ اﻟﻤﻔﺎ
ﻳﻜﻮن أﺣﺪ اﻻﺣ
ﺗﻴﺢ EL0 PACاﻟﻤﻌﺮوﻓ ﺔ.
ﺜﻞ ﻣﻔﺎ
اﻟﻤﻌﺮوﻓ ﺔ ﻣ
ّ ف ﻓﻘﻂ ،ﻻ
ﺘﻢﺗﻤﻜﻴﻦ اﻟﻮﺳﻴﻂ اﻟﻤﻌ ﺮ
ﺑﺎﻟﻔﻌﻞ ﻟﻤﻨﻊ ﻓﻴﻀﺎن اﻟﻤﻜﺪس .وﻣﻊ ذﻟﻚ ،ﻧﻈ ﺮًاﻷﻧﻪﻳﺘﺨﺪم
ﺒﻘ ﺔ أﻣﺎن إﺿﺎﻓﻴ ﺔ أﻋﲆ اﻟﻜﻨﺎري اﻟﻤﻜﺪس اﻟﻤ ﺴ
ﺗﻮﺟﺪ ﻃ
ﺘﺨﺪام PAC ،
ﺑﺎﺳ
ﺗﻴﺢ PACاﻟﺨﺎﺻ ﺔ
ﺘﻢﺗﻤﻜﻴﻦ ﻣﻔﺎ
ﺘﻤﻞ أنﻳﻜﻮنﺗﺪاول أداء .ﻗﺪ ﻻﻳ
ﺋ ﺔ -.ﻓ ﻲ ﺣﻴﻦ أن ﻫﺬاﻳﻀﻌﻒ اﻷﻣﺎن ،ﻓﻤﻦ اﻟﻤﺤ
ﺘﺠﺰ
ﺜﻞﺗﻨﻔﻴﺬ اﻟ
ﺒﻴﺎﻧﺎ ت أو ﻣﺆﺷﺮا ت اﻟﻮﻇﺎﺋﻒ -ﻣ
ﺘﻢ ﺣﻤﺎﻳ ﺔ اﻟ
ﺗ
ﺒﺪاﻳ ﺔ.
ﺗﻴﺢ ﻓ ﻲ اﻟ
ﺑﻌﺪﺗﻌﻴﻴﻦ اﻟﻤﻔﺎ ﺘًﺎ ﻃﻮﻳ ﻼ ً ﻟ
ﺘﻮﻗﻴﻊ اﻟﻤﺆﺷﺮا ت ﺘﻐﺮق اﻷﻣﺮ وﻗ
ﺒﻴﺎﻧﺎ ت وﻣﺆﺷﺮا ت اﻟﻮﻇﺎﺋﻒ ،ﺣﻴ ﺚ ﻗﺪﻳ ﺴ
ﺑﺎﻟ
ﺛﻨﺎﺋ ﻲ6.2إﻧﺸﺎء
ﺗﺞ
ﺜﻨﺎﺋ ﻲ اﻟﻨﺎ
ﺒﺮﻧﺎﻣﺞ اﻟ
ﺑﻨﺎ .ﻻﻳﻤﻜﻨﻨﺎ ﻓﻘﻂﺗﺸﻐﻴﻞ اﻟﺘﺨﺪام اﻟﺨﺎﺻ ﺔ
ﺜﺎﻟ ﻲ ﻟﺤﺎﻟ ﺔ اﻻﺳ
ﺑﺸﻜﻞ ﻣﺜﻨﺎﺋ ﻲ ،إﻻ أﻧﻬﺎ ﻋﻤﻠ ﺖ
ﺘﻘﺪﻳﻤﻬﺎ ﻟﻺﻧﺸﺎء اﻟ
ﺘﺎﺋﺞ ﻟ
ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ ﻋﺪم وﺟﻮد اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻨ
ﺒﻘ ﻲ ﻣﻦ Appleﻧﻔ ﺴﻬﺎ ،ﻛﺎن ﻣﻦ اﻟ ﺴﻬﻞﺗﺸﺨﻴﺺ اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﺧﻄﺎء وإﺻﻼﺣﻬﺎ.
ﺘﺒﻊ اﻟﻤ
ﺘﺘﺑ ﺴﻬﻮﻟ ﺔ .ﺧﺎﺻ ﺔ ﻣﻊ رﻣﺰ اﻟ ﺑﻞﻳﻤﻜﻨﻨﺎ أ ً
ﻳﻀﺎﺗﺼﺤﻴﺤﻪ ﺑ ﺴﻬﻮﻟ ﺔ ﺧﺎرج اﻷداة اﻟﻐﺎﻣﻀ ﺔ ،
ﺘﺎﻟ ﻲﻳﻜﻮن ﻟﺪﻳﻨﺎ وﻗ ﺖ أﺳﻬﻞ ﻓ ﻲﺗﺸﺨﻴﺺ
ﺑﺎﻟ
ﺑﺎﻟﻔﻌﻞ ﻓ ﻲ IDA ،وﺜﻨﺎﺋ ﻲ اﻟﻤﺸﺮوح
ﺑﺮﻧﺎﻣﺞ SecureROMاﻟﺘﺨﺪام
ﺑﺎﺳﺜﻨﺎﺋﻴ ﺔ
ﺘﻰﺗﺼﺤﻴﺢ اﻷﺧﻄﺎء اﻟ
ﻋﻼوة ﻋﲆ ذﻟﻚ ،ﻳﻤﻜﻨﻨﺎ ﺣ
ﺘﺤﻠﻴﻞ ﻋﺎم وﻣﻨﺼ ﺔﺗﺼﺤﻴﺢ أﺧﻄﺎء ﻟـ SecureROM ،ﺧﺎرج
ﺑ ﺔ ﻗﺎﻋﺪة ﻟ
ﺜﺎ
ﺑﻤ ﺘﺸﻮﻳ ﺶ ،وﻟﻜﻦ أ ً
ﻳﻀﺎ ﺘﺨﺪام emmutalerﻓﻘﻂ ﻟﻠ اﻟﻤﺸﻜﻼ ت أ ً
ﻳﻀﺎ .ﻟﺬﻟﻚ ،ﻣﻦ اﻟﻤﻨﻄﻘ ﻲ أﻧﻪ ﻻﻳﻤﻜﻦ اﺳ
ﺘﻤﺮار.
ﺑﺎﺳ
ﺒﺎر ،ﻋﻨﺪﻣﺎ ﻻﻳﻀﻄﺮ اﻟﻤﺮء إﱃ إﻋﺎدةﺗﺸﻐﻴﻞ ﺟﻬﺎز iPhone
ﺘﺘﺼﺤﻴﺢ واﻻﺧ
ﺛﺮ أﺳﻬﻞ ﻓ ﻲ اﻟ
Apple.ﻣﻦ اﻟﻤﺆﻛﺪ أن اﻟﻤﺂ
ﺘﺤﻘﻖ أ ً
ﻳﻀﺎ ﻣﻦﺗﻮﻗﻴﻊ ﻣﺆﺷﺮ اﻟﻌﻮدة. ﺑﺪﻻ ً ﻣﻦ اﻟﺜﺎل ،ﻗﺪﺗﻌﻮد retaaﻓﻘﻂ ،
ﺒﻴﻞ اﻟﻤ
2ﻋﲆﺳ
ﺘﻢﺗﺨﺰﻳﻦ اﻟﻮﺿﻊ اﻵﻣﻦ ﻓ ﻲ اﻟﻤﺼﻬﺮ 1 ،و
ﺑ ﺖ ،ﻳ
ﺒﺎﻟﻎ ﻋﺪد ﻫﺎ 32
ﺘﺎ ت اﻟﻤﺼﻬﺮ اﻟ
ﺑﺘﺨﺪم اﻵن ﺟﻤﻴﻊ
ﺘﻜﻮﻳﻦﻳ ﺴ
ﺘﻴﻞ اﻟ
ﺑ ﺖ واﺣﺪًا ﻓ ﻲ ﻓ3ﻧﻈ ًﺮاﻷن
ﺑ ﺖ 1ﻣﻦ اﻟﺼﻤﺎﻣﺎ ت 0.ﻟﻴ ﺲ
Machine Translated by Google
}
{ )uint32_t cfg_fuse_get_default (uint32_t fuse_val، uint32_t fuse_num، bool is_raw، uint32_t def
ﻋﻮدة ﻣﻮاﻃﻨﻪ
}
{ )( bool chipid_get_secure_mode
6.3ﻏﻤﻮض IMG4
6
4
2
ﺋﻴ ﺴ ﻲ
ر cmpcov cmpcovlib cmplog fuzzer5 ﻓﻮزر 6 ﻓﻮزر 7 fuzzer8 fuzzer9 fuzzer10 fuzzer11
ﺘﺸﻮﻳ ﺶ.
ﺒﺮ ﺟﻤﻴﻊ ﺣﺎﻻ ت اﻟ
اﻟﺸﻜﻞ 6.1: TTEﻟﺨﻠﻞ checkm8ﻋ
ﺑﺎﻟﻨﻈﺮ إﱃ أن ﺧﻄﺄﺘﻴﻦ.
ﺜﻮر ﻋﲆ اﻟﺨﻄﺄ ﻓ ﻲ أﻗﻞ ﻣﻦﺳﺎﻋ
ﺗﻤﻜﻦ ﻣﺼﻬﺮ واﺣﺪ ﻣﻦ اﻟﻌ
ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟﺸﻜﻞ TTE ،ﻣﻨﺨﻔﺾ ﺟﺪًا ﻓ ﻲ ﺟﻤﻴﻊ اﻟﻤﺠﺎﻻ ت و
ﺑﻬﺬه اﻟ ﺴﺮﻋ ﺔ .ﻋﻼوة ﻋﲆ ذﻟﻚ ،ﺗﻤﻜﻨﺎ اﻵن ﻣﻦﺗﺄﻛﻴﺪﺜﻮر ﻋﲆ اﻟﺨﻄﺄ
ﺘﻰ A13 ،ﻛﺎن ﻣﻦ اﻟﻤﺪ ﻫ ﺶ ﺟﺪًا اﻟﻌ
ﺘ ﺔ أﺟﻴﺎل ﻣﻦ اﻟﺮﻗﺎﺋﻖ -ﻣﻦ A8ﺣ
checkm8ﻣﻮﺟﻮد ﻋﲆﺳ
اﻟﻜﺎﻣﻠ ﺔ ﺘﻐﻼل
ﺣﺎﻟ ًﻴﺎ ﺴﻠﺔﺔ اﻻﺳ
ﻣﻌﺮوﻓ ﺔ وﺟﻮدﺳﻠ
ﻃﺮﻳﻘ ﻟﻌﺪم -ﻋﻤﻞ
ﻟﻌﺪم
ﺐا ،ﺒﻧﻈ ﺮً
ﺳ ﻳﻮﺟﺪ
ﻵن. ﻵنﻨًﺎوﻻ
ﺑﻌﺪ ا ﺘﻰ اﻣﻤﻜﻟﻢ ﺣ
ﻳﻌﺪ ﻣﻜﺎن ﺷﻮيﻓ ﻲ أي
اﻟﻀﺮوري ﻋﻦ ﻫﺬا
ﺑﻼغﻓﻨﻎ ﺘﻢ اﻹ
ﻛﻮﻣ ﺔ أن ﻟﻢﻳ
إﻋﺪاد ﻋﻠﻤﻨﺎ ، إﱃﺣﺪ
ﺣﻘﻴﻘ ﺔ ﻋﲆ A13.
ﻳﺮﺟﻊﺋﻖﻫﺬا
رﻗﺎأن ﻧﻔ ﻓ ﻲ
ﺘﺮض ﻣﻮﺟﻮدًا ﻳﺰال
ﺗﺤﻠﻴﻠﻨﺎ ، A13.ﻻ
ﻣﻦ ﺋﻴ ﺴ ﻲ
اﻟﺮ ﻋﲆاﻟﺨﻄﺄ
A12و أن
-،
ﺑﺖ
ﺜﺎ
ﺘﺤﻠﻴﻞ اﻟ
ﺑﺸﻜﻞ ﻣﺸﻮ ش ،إﻻ أن اﻟﺑﺎﻟﻔﻌﻞ ﻋﲆ إﺻﻼح اﻟﺨﻄﺄ اﻷﺳﺎﺳ ﻲ .ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أﻧﻨﺎ ﻟﻢ ﻧﺆﻛﺪ ذﻟﻚﺒﺪو أن A14ﻳﻌﻤﻞ
ﻋﲆ ﻋﻜ ﺲ A12و A13 ،ﻳ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ ﻋﲆ NULL.ﺒﻄﻪ اﻵن
ﻳﻜﺸﻒ أن اﻟﻤﺆﺷﺮ ﻗﺪﺗﻢ ﺿ
ً
ﻣﻨﺨﻔﻀﺎ ﺟﺪًا. ﺜﻴ ﺮًا ،ﺣﻴ ﺚ ﻛﺎن وﻗ ﺖﺗﻌﺮض checkm8
ﺘﺎﻟ ﻲ ،ﻟﻢﺗﻜﻦ ﻫﻨﺎك ﺣﺎﺟ ﺔ إﱃ ﻫﺬا ﻛ
5ﻛﻤﺎ رأﻳﻨﺎ ﻓ ﻲ اﻟﻘ ﺴﻢ اﻟ
Machine Translated by Google
ﺘﺠﻤﻴﺪ
ﺗﺤ ﺴﻴﻦﺳﺮﻋ ﺔ اﻟ
6.5. 39
ﺘﺸﻮﻳ ﺶ
ﺗﺤ ﺴﻴﻦﺳﺮﻋ ﺔ اﻟ
6.5
ﺘﺎﻟﻴ ﺔ .ﻛﺎن
ﺘﻠﻔ ﺔ اﻟ
ﺘﻜﻮﻳﻨﺎ ت اﻟﻤﺨ
ﺑﻴ ﺔ ،ﻣﻤﺎ أدى إﱃﺗﺸﻮﻳ ﺶ IMG4 ،ﻣﻊ اﻟ
ﺒﺎ
ﺛﻼ ث ﻣﺠﻤﻮﻋﺎ ت ﺿﺘﺸﻐﻴﻞ
ﺑﺘﻪﺗﺤ ﺴﻴﻨﺎ ت اﻟ ﺴﺮﻋ ﺔ ﻟﺪﻳﻨﺎ ،ﻗﻤﻨﺎ
ﻟﻤﻌﺮﻓ ﺔ اﻟﻔﺮق اﻟﺬي أدﺧﻠ
ﺑ ﺖ ﻣﻊ وﺣﺪة kernelﻟﻠﻘﻄﺎ ت .إﱃ ﺟﺎﻧ ﺐ ذﻟﻚ ،ﻛﺎن ﻟﺪى اﻟﻤﺠﻤﻮﻋﺎ ت اﻹﻋﺪاد
ﺜﺎ
ﺘﻘﻞ ،واﻵﺧﺮ ﻓ ﻲ اﻟﻮﺿﻊ اﻟﺪاﺋﻢ واﻵﺧﺮ ﻓ ﻲ اﻟﻮﺿﻊ اﻟ
أﺣﺪ ﻫﻤﺎﻳﻌﻤﻞ ﻓ ﻲ اﻟﻮﺿﻊ اﻟﻤ ﺴ
ﺑ ًﻘﺎ .وﻣﻊ ذﻟﻚ ،ﻓﺈن ﻛﻞ ﻣﺠﻤﻮﻋ ﺔﺗﻌﻤﻞ ﻋﲆ ﻧﻔ ﺲ اﻟﺠﻬﺎز اﻟﻤ ﺴ
ﺘﺨﺪم ﻓ ﻲ ﻗﻴﺎس TTEاﻟﻤﻮﺿﺢ ﻓ ﻲ اﻟﻘ ﺴﻢ 6.4.1. ﺛﻨ ﻲ ﻋﺸﺮ ﺣﺎﻟ ﺔ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢﺳﺎ
اﻟﻘﻴﺎﺳ ﻲ اﻟﻤﻜﻮن ﻣﻦ ا
ﺘﻠﻔ ﺔ ﻓ ﻲ اﻟﺸﻜﻞ 6.2.ﻣﻦ اﻟﻮاﺿﺢ أن وﺣﺪة
ﺘﺸﻮﻳ ﺶ ﻟﻠﺤﺎﻻ ت واﻟﻤﺠﻤﻮﻋﺎ ت اﻟﻤﺨ
ﺑﻊ اﻷوﱃ ﻣﻦ اﻟ
ﺜﺎﻧﻴ ﺔ ﺧﻼل اﻟ ﺴﺎﻋﺎ ت اﻷر
ﺘﻮﺳﻂ ﻋﺪد ﻋﻤﻠﻴﺎ ت اﻹﻋﺪام ﻓ ﻲ اﻟ
ﺘﻢ ﻋﺮض ﻣ
ﻳ
ﺑﺎﻟ ﺴﺮﻋ ﺔ.ﺘﻌﻠﻖ
kernelﻫ ﻲ اﻟﻔﺎﺋﺰة ﻓﻴﻤﺎﻳ
ﺘﻘﻞ
ﻣﺴ
104 ﺑﺮ
ﺜﺎ
ﻣ
وﺣﺪة Kernel
103
102
ﺋﻴ ﺴ ﻲ
ر cmpcov cmpcovlib cmplog
ﺘﻠﻔ ﺔ.
اﻟﺸﻜﻞ 6.2:ﺳﺮﻋ ﺔﺗﺸﻮﻳ ﺶ IMG4ﻷوﺿﺎع AFL ++اﻟﻤﺨ
ﺗﻐﻄﻴ ﺔ
6.6. 40
102 ﺘﻘﻞ
ﻣﺴ
ﺑﺮ
ﺜﺎ
ﻣ
101
ﺋﻴ ﺴ ﻲ
ر cmpcov cmpcovlib cmplog
ﺘﻠﻔ ﺔ.
اﻟﺸﻜﻞ 6.3:ﺳﺮﻋ ﺔﺗﺸﻮﻳ ﺶ USBﻷوﺿﺎع AFL ++اﻟﻤﺨ
ﺘﻐﻄﻴ ﺔ
6.6اﻟ
ﺘﻐﻄﻴ ﺔ ،ﺣﻴ ﺚ أن
ﺑﺎﻟﺘﺸﻮﻳ ﺶ اﻟﻤﻮﺟﻪ
ﺘﺄﻛﻴﺪ إﱃ ﻣﺪى ﺟﻮدة أداء اﻟ
ﺑﺎﻟﺘﺸﻮﻳ ﺶ ،إﻻ أﻧﻬﺎﺗﺸﻴﺮ
ﺑﺎﻟﻀﺮورة إﱃ ﻣﺪى ﺟﻮدة أداء اﻟﺘﻐﻄﻴ ﺔﻳﺠ ﺐ أﻻﺗﺸﻴﺮ
ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أن اﻟ
ﺑﻴﻦ ﺣﺎﻻ ت اﻟﻐﻤﻮضﺘﻬﺎ
ﺘﺸﻮﻳ ﺶ وﻣﻘﺎرﻧ
ﺘ ﻲﺗﻢ اﻟﺤﺼﻮل ﻋﻠﻴﻬﺎ ﻣﻊ اﻟ
ﺘﻐﻄﻴ ﺔ اﻟ
ﺘﺠﺎوز اﻟ
ﺘﻐﻄﻴ ﺔ.ﺗﺤﻘﻴﻘﺎ ﻟﻬﺬه اﻟﻐﺎﻳ ﺔ ،ﺳﻮف ﻧ
ﺒﺮ ﻗﺪر ﻣﻤﻜﻦ ﻣﻦ اﻟ
اﻟﻔﻜﺮة ﻫ ﻲﺗﺤﻘﻴﻖ أﻛ
ﺘﻠﻔ ﺔ.
اﻟﻤﺨ
ﺗﻐﻄﻴ ﺔ
6.6. 41
وﺻﻒﻣﺌﻮﻳ ﺔ
ﺒﺔ
ﻧﺴ ﻟﻮن
0.0٪ﻟﻢﻳﻨﻔﺬ ﻗﻂ
100.0٪) 100.0٪
60.0٪) [60.0٪ ،
ﻣﻐﻄﻰ
25.0٪) [25.0٪ ،
10.0٪) [10.0٪ ،
2.0٪) [2.0٪ ،
0.5٪) [0.5٪ ،
(0.0٪ ،
ﺘﺠﺎ ﻫﻞ
ﺗﻢ اﻟ ﺘﺎح
ﻏﻴﺮ ﻣ
ﺘﻐﻄﻴ ﺔ.
ﺘﻞ اﻷﺳﺎﺳﻴ ﺔ ﻓ ﻲ CFGsﻣﻊ ﻣﻌﻠﻮﻣﺎ ت اﻟ
اﻟﺠﺪول 6.1:ﻟﻮن اﻟﻜ
ﺘﻌﻠﻴﻤﺎ ت
ﺘﻀﻤﻦ ﻫﺬا اﻟﻌﺪﻳﺪ ﻣﻦ اﻟ
ﺘﻌﻠﻴﻤﺎ ت ﻣﺮة واﺣﺪة ﻋﲆ اﻷﻗﻞ.ﻳ
ﺜﺮ ﻣﻦ 30٪ﻣﻦ اﻟ
ﺗﻢﺗﻨﻔﻴﺬ أﻛ
ﺑﻴﻦ ﻛﻞ ﻣﻦ IMG4و USB fuzzing -
ﻓ ﻲ اﻟﻤﺠﻤﻮع -
ﺘﺤﻠﻴﻞ
ﺑﺑﻤﻔﺮد ﻫﺎ .ﻟﺬﻟﻚ ،ﺳﻨﻘﻮمﺒ ﺔ اﻟﻤﺌﻮﻳ ﺔ ﻟﻴ ﺴ ﺖ ﻣﻔﻴﺪة
ﺘﺎﻟ ﻲ ﻓﺈن ﻫﺬه اﻟﻨ ﺴ
ﺑﺎﻟ
ﺜﺎل رﻣﺰ MMU -و
ﺒﻴﻞ اﻟﻤ
ﺗﻤﺎﻣﺎ -ﻋﲆﺳ
ً ﺒﻄ ﺔ
ﺗﺘ ﻲ ﻛﺎﻧ ﺖ ﻓ ﻲ أﺟﺰاء ﻏﻴﺮ ﻣﺮ
اﻟ
ﺘﺸﻮﻳ ﺶ ،اﻧﻈﺮ اﻟﻤﻠﺤﻖ د.
ﺛﻨﺎء اﻟ
ﺘ ﻲﺗﻢ اﻟﺤﺼﻮل ﻋﻠﻴﻬﺎ أ
ﺘﻐﻄﻴ ﺔ اﻟﻜﺎﻣﻠ ﺔ اﻟ
ﺘﻔﺼﻴﻞ ﻓﻴﻤﺎﻳﻠ ﻲ .ﻟﻠﺤﺼﻮل ﻋﲆ ﻣﻌﻠﻮﻣﺎ ت اﻟ
ﺑﻤﺰﻳﺪ ﻣﻦ اﻟﺘﻐﻄﻴ ﺔ
اﻟ
ﺒﺎ ب IMG4
6.6.1ﺿ
ﺘ ﻲﺗﻢ اﻟﺤﺼﻮل
ﺘﻐﻄﻴ ﺔ اﻟ
ﺘﻀﻤﻨ ﺔ ﻓ ﻲﺗﺤﻠﻴﻞ IMG4واﻟ
ﺋﻴ ﺴﻴ ﺔ اﻟﻤ
ﺛﻨﺎءﺗﺸﻮﻳ ﺶ IMG4.ﻳﻮﺿﺢ اﻟﺠﺪول 6.2اﻟﻮﻇﺎﺋﻒ اﻟﺮ
ﺘ ﻲﺗﻢ اﻟﺤﺼﻮل ﻋﻠﻴﻬﺎ أ ﻧﺮﻛﺰ أوﻻ ً ﻋﲆ اﻟ
ﺘﻐﻄﻴ ﺔ اﻟ
ﺘﻐﻄﻴ ﺔ واﻟﻨ ﺴﺨ ﺔ اﻟﻌﺎدﻳ ﺔ ﻟﻬﺎﺗﻐﻄﻴ ﺔ أﻋﲆ ﻗﻠﻴ ﻼ ً ﻓ ﻲ
ﺑ ﺴﻴﻂ ﻓ ﻲ اﻟﺘﻼف
ﺘﻀﺢ ،ﻫﻨﺎك اﺧ
ﺑﻴﻦ اﻟﻐﻤﻮض اﻟﻌﺎدي و OOB -ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟﻘ ﺴﻢ 5.5.1.ﻛﻤﺎﻳﻋﻠﻴﻬﺎ
ﺘﻤﻞ ﻫﻮ أﻧﻪ ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أن اﻟﻤﺪﺧﻼ ت
ﺘﻔ ﺴﻴﺮ اﻟﻤﺤ
ﺧﺼﻴﺼﺎ ﻟﻠﺤﺼﻮل ﻋﲆﺗﻐﻄﻴ ﺔ أﻓﻀﻞ .اﻟ
ً ﺘﻮﻗﻊ ،ﻷﻧﻨﺎ ﺻﻤﻤﻨﺎ ﻧ ﺴﺨ ﺔ OOB
ﺒﺪاﻳ ﺔ ،ﻛﺎن ﻫﺬا ﻏﻴﺮ ﻣ
اﻟﻮاﻗﻊ .ﻓ ﻲ اﻟ
ﺘﻢ رﻓﻀﻬﺎ ﻋﲆ اﻟﻔﻮر.
ﺘﺎﻟ ﻲﻳ
ﺑﺎﻟ
ﺘﺎز اﻵن ﻓﺤﺺ اﻟﺤﺪود ،ﻓﺈن أﺟﺰاء ﻣﻦ اﻹدﺧﺎل ﻣﻔﻘﻮدة اﻵن و
ﺘﺠﺑ ًﻘﺎﺳ
اﻟﻤﺮﻓﻮﺿ ﺔﺳﺎ
ﺗﺼﺎل 6'274
ﺘﺤﻘﻖ ﻣﻦ ﺻﺤ ﺔ ﺧﺎﺻﻴ ﺔ رد اﻻ image4
ﺗﺤﻤﻴﻞ image4اﻟ18'956 59/154264/581 2368ب 94
interposer 463 31'623 33/72 172/323 1468 B 43 16/18 77/85
ﺋﻴ ﺔ
image4اﻟﺤﺼﻮل ﻋﲆ ﺟﺰ 348ب
)أ(ﺗﻐﻄﻴ ﺔ زﻏ ﺐ IMG4اﻟﻌﺎدي.
وﻇﻴﻔ ﺔ إﻋﺪاﻣﺎ ت BB Hit Instr Hit اﻟﺤﺠﻢ CC
ﺗﺼﺎل 75'144
ﺘﺤﻘﻖ ﻣﻦ ﺻﺤ ﺔ ﺧﺎﺻﻴ ﺔ رد اﻻ
ﺗﺤﻤﻴﻞ ﺻﻮرة 4اﻟ
image4 44'985
58/154263/581 2368ب 94
interposer 1'067 33/72 172/323 1468 B 43 16/18 77/85
ﺋﻴ ﺔ
image4اﻟﺤﺼﻮل ﻋﲆ ﺟﺰ 348ب
ﺗﻐﻄﻴ ﺔ
6.6. 42
ﺋﻴ ﺔ
ﺗﺤﺼﻞ ﻋﲆ ﺟﺰ
ﺘﺸﻮﻳ ﺶ اﻟﻌﺎدي ﻣﻦ اﻵن ﻓﺼﺎﻋﺪًا .ﻓ ﻲ ﺣﻴﻦ أن اﻟﺼﻮرة 4
ﺘﻐﻄﻴ ﺔ ﻟﻠ
ﺘﻐﻄﻴ ﺔ ،ﻓﺈﻧﻨﺎ ﻧﻨﻈﺮ ﻓﻘﻂ إﱃ اﻟ
ﺒﻴﺮة ﻟﻠ
ﻧﻈ ﺮًاﻷن OOBﻟﻴ ﺲ ﻟﻪ ﻓﺎﺋﺪة ﻛ
ﺘﻌﺰﻳﺰ ﻓﻬﻤﻨﺎ ﻟﻠﻮﻇﺎﺋﻒ اﻷﺧﺮى ،ﻧﻠﻘ ﻲ
ﺘﻴﻦ اﻷﺧﺮﻳﻴﻦ .ﻟ
ﺒ ﺔ ﻟﻠﻮﻇﻴﻔ
ﺑﺎﻟﻨ ﺴﺗﻘﻴﻴﻢ Img4DecodePerformTrustEvaluationﻣﻐﻄﻰ ﺟﻴﺪًا ،ﻻﻳﻤﻜﻦ ﻗﻮل اﻟﺸ ﻲء ﻧﻔ ﺴﻪ
و
ﺑﻬﻢ ،اﻟﻮاردة ﻓ ﻲ اﻟﺸﻜﻞ 6.5واﻟﺸﻜﻞ 6.4.ﻧﻈﺮة ﻋﲆ CFGsاﻟﺨﺎﺻ ﺔ
0.20٪
100.00٪
9.28٪
25.77٪
9.28٪
9.28٪
1.03٪
8.25٪ 8.25٪
100.00٪
100.00٪
ﺘﻬﺎ.
ﺘﺤﻘﻖ ﻣﻦ ﺻﺤ
ﺘﺤﻠﻴﻞ اﻟﺼﻮر واﻟ
ﺘﺪﻋﺎؤ ﻫﺎ ﻣﻦ fuzzerﻟ
ﺘﻢ اﺳ
ﺘ ﻲﻳ
ﺋﻴ ﺴﻴ ﺔ اﻟ
image4 loadﻫ ﻲ اﻟﻮﻇﻴﻔ ﺔ اﻟﺮ
ﺒﻴﺌ ﺔ .ﻟﺬﻟﻚ ،ﻳﻤﻜﻨﻨﺎ أن ﻧﺮى أن 0.2٪ﻓﻘﻂ ﻣﻦ اﻟﻤﺪﺧﻼ ت
ﺑﻘ ﺔ اﻟﺨﺼﺎﺋﺺ ﻣﻊ اﻟ
ﺘﻮﻗﻴﻊ وﻣﻄﺎ
ﺘﺤﻘﻖ ﻣﻦ ﺻﺤ ﺔ اﻟ
Img4DecodePerformTrustEvaluationﻳﻨﻔﺬ اﻟ
ﻟﻬﺎﺗﻮﻗﻴﻊ ﻧﺎﺟﺢ.
ﺑﻘﺎﺋﻪ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ وإﺘﺤﻴﻞ ﺟﺪًاﺗﻌﺪﻳﻞ أي ﺷ ﻲء ﻓ ﻲ إدﺧﺎل ﻣﻮﻗﻊ
ﺑﺸﻜﻞ ﻻﻳﺼﺪق .ﻓ ﻲ اﻟﻮاﻗﻊ ،ﻣﻦ اﻟﻤ ﺴ ﻫﺬا ﻟﻴ ﺲ ﻣﻔﺎﺟ ًﺌﺎ ،ﻷن إﻧﺸﺎءﺗﻮﻗﻴﻊ ﻣﺰﻳﻒ أﻣﺮ ﻏﻴﺮ ﻣﺤ
ﺘﻤﻞ
ﺘﻮﻗﻴﻊ ،ﻓﺈن
ﺘﺤﻘﻖ ﻣﻦ اﻟ
ﺑﻌﺪ اﻟﺜﻴﺮ ﻣﻦ اﻟﻤﻌﺎﻟﺠ ﺔ
ﺑ ﺖ ﻫﺬا .ﻧﻈ ًﺮا ﻟﻌﺪم وﺟﻮد اﻟﻜ
ﺜﺎ
ﺘﻌﺪﻳﻞ وﻳﺆﻛﺪﺗﺤﻠﻴﻠﻨﺎ اﻟ ﺒﻮﻻً .ﻋﲆ اﻷﻗﻞ ﻟﻢﻳﻜﻦ ﻏﻤﻮﺿﻨﺎ ﻗﺎد ًرا ﻋﲆ إﺟﺮاء ﻣ
ﺜﻞ ﻫﺬا اﻟ ﻣﻘ
ﺘ ﻲﺗﺼﻞ إﱃ
ﺘﻤﺎم -اﻟ
ﺜﻴﺮة ﻟﻼ ﻫ
ﺑﺎﻟﻀﺮورة ﻣﺆﺷ ﺮًا ﻋﲆ أن اﻟﻐﻤﻮض ﻟﻢﻳﻜﻦ ﻧﺎﺟﺤًﺎ ﻫﻨﺎ .وﻣﻊ ذﻟﻚ ،ﻻﻳﺰال ﻣﻦ اﻟﻤﺪ ﻫ ﺶ أن 8.8٪ 6ﻓﻘﻂ ﻣﻦ اﻟﻤﺪﺧﻼ ت اﻟﻤﻫﺬا ﻟﻴ ﺲ
ﺘﻮﻗﻴﻊ -ﻟﻴ ﺴ ﺖ ﻣﻦ ﻣﺠﻤﻮﻋ ﺔ اﻟﻤﺪﺧﻼ ت اﻷوﻟﻴ ﺔ .ﻫﺬاﻳﺆﻛﺪ ﺷﻜﻮﻛﻨﺎ ﻓ ﻲ أن ASN.1و IMG4ﻋﲆ وﺟﻪ اﻟﺨﺼﻮص ،ﻫﻮﺗﻨ ﺴﻴﻖ ﺻﻌ ﺐ ﻟﻤﺼﻬﺮ
ﺘﺤﻘﻖ ﻣﻦ ﺻﺤ ﺔ اﻟ
اﻟ
ﺘﺤﻮر دون إﻧﺸﺎء ﻣﺪﺧﻼ ت ﻏﻴﺮ ﺻﺤﻴﺤ ﺔ.
ﻟﻠ
ﺗﻐﻄﻴ ﺔ
6.6. 43
ﺒﺎ ب USB
6.6.2ﺿ
ﺘﻀﻤﻨ ﺔ ﻓ ﻲ ﻣﻌﺎﻟﺠ ﺔ USBﻓ ﻲ SecureROM.
ﺘﻐﻄﻴ ﺔﻷ ﻫﻢ اﻟﻮﻇﺎﺋﻒ اﻟﻤ
ﺛﻨﺎءﺗﺸﻮﻳ ﺶ USB.ﻳﻮﺿﺢ اﻟﺠﺪول 6.3ﻣﻌﻠﻮﻣﺎ ت اﻟ
ﺘ ﻲﺗﻢﺗﺤﻘﻴﻘﻬﺎ أ
ﺘﻐﻄﻴ ﺔ اﻟ
ﺑﻌﺪ ذﻟﻚ ﻧﺮﻛﺰ ﻋﲆ اﻟ
ﺘﻐﻄﻴ ﺔ ﺣ ًﻘﺎ ،
ﺘﻘﻴﻴﻢ اﻟ
ﺘ ﻲﺗﻢﺗﺤﻘﻴﻘﻬﺎ ﻫﻨﺎ أﻓﻀﻞ ﻣﻤﺎ ﻛﺎﻧ ﺖ ﻋﻠﻴﻪ ﻓ ﻲ ﺣﺎﻟ ﺔ IMG4.وﻣﻊ ذﻟﻚ ،ﻟ
ﺘﻐﻄﻴ ﺔ اﻟ
ﺒﺪو أن اﻟ
ﺘﻞ اﻷﺳﺎﺳﻴ ﺔ ﻟﺠﻤﻴﻊ اﻟﻮﻇﺎﺋﻒ ،ﻳ
ﻣﻊﺗﻐﻄﻴ ﺔ ﻣﻌﻈﻢ اﻟﻜ
ﺘﻢ ﻋﺮض
ﺒﺾ USBاﻷﺳﺎﺳ ﻲ.ﻳ
ﺑﻤﻘ
ﺗﻠﻘ ﻲﺗﺤﻜﻢ USB
ﺒﺎ ت USB ،و
ﺘﻌﺎﻣﻞ ﻣﻊ ﻃﻠ
ﺘ ﻲﺗ
ﺋﻴ ﺴﻴ ﺔ اﻟ
ﺑﻬﻢ .ﻫﻨﺎ ،ﻧﺮﻛﺰ ﻋﲆ اﻟﻮﻇﻴﻔ ﺔ اﻟﺮ ﻋﻠﻴﻨﺎ أ ً
ﻳﻀﺎ أن ﻧﻨﻈﺮ إﱃ CFGsاﻟﺨﺎﺻ ﺔ
CFGاﻟﻤﺸﺮوح ﻓ ﻲ اﻟﺸﻜﻞ 6.6.
ﺘﻌﺎﻣﻞ ﻣﻊ ﻃﻠ ﺐ واﺟﻬ ﺔ
USB dfuاﻟ
16'334 28/28107/107460ب 12 7/9 42/54
ﺑﻴﺎﻧﺎ ت USB dfuﺘﻼم
ﺗﻢ اﺳ 525'020 220ب 3
ﺒﺮ ﺟﻤﻴﻊ
ﺴﺎو ﻋ
ٍ ﺘ
ﺑﺸﻜﻞ ﻣﺘﻢﺗﻮزﻳﻌﻬﺎ
ﺘﻐﻄﻴ ﺔﻳ
ﺜﻴﺮ ﻫﻨﺎ ﻣﻤﺎ ﻛﺎﻧ ﺖ ﻋﻠﻴﻪ ﻓ ﻲ ﺣﺎﻟ ﺔ IMG4.وﻣﻊ ذﻟﻚ ،ﻳﻤﻜﻨﻨﺎ أن ﻧﺮى أن اﻟ
ﺑﻜﺘﻐﻄﻴ ﺔ أﺳﻮأ
ﺒﺪو اﻟ
ﻟﻠﻮ ﻫﻠ ﺔ اﻷوﱃ ،ﻗﺪﺗ
ﺑﻌﺾ رﺳﺎﺋﻞ USBﺘﻢ ﻣﻌﺎﻟﺠ ﺔ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﺗﺴﺎو.
ٍ ﺘ
ﺑﺸﻜﻞ ﻣﺒﺮﻣﺞ ﻗﺎدر ﻋﲆ اﻟﻮﺻﻮل إﱃ ﻣﻌﻈﻢ أﻧﻮاع اﻟﺮﺳﺎﺋﻞ
ﺒﺪو أن اﻟﻤ
ﺒﺎرة أﺧﺮى ،ﻳ
ﺑﻌاﻟﻤ ﺴﺎرا ت اﻟﻤﻤﻜﻨ ﺔ.
ﺘﻮاﻓﻖ ﻣﻊ ﻫﺬه
ﺘ ﻲﺗ
ﺘﻤﺎم إﱃ اﻟﻤﺼﻬﺮ .ﻟﺬﻟﻚ ،ﻓﺈن اﻟﻤ ﺴﺎرا ت ﻓ ﻲ ﻫﺬه اﻟﻮﻇﻴﻔ ﺔ اﻟ
ﺜﻴﺮة ﻟﻼ ﻫ
ﺘﺎﻟ ﻲﺗﻮﻓﺮ ﻣ ﺴﺎرا ت إﺿﺎﻓﻴ ﺔ ﻣ
ﺑﺎﻟ
ﺒﺮ ﻣﻦ ﺧﻼل وﻇﺎﺋﻒ أﺧﺮى ،و
ﺑﺸﻜﻞ أﻛ
ﺑﻬﺎ
ﺘ ﺴﺎ
ﺑﺸﻜﻞ ﻣﻠﺤﻮظﻳﻤﻜﻦ اﻛﺘﻘﺪ أﻧﻪ ﻻﺗﻮﺟﺪ رؤى ﺟﺪﻳﺪة
ﺑﺎﻟﻔﻌﻞ وﻧﻌﺘ ﻲﺗﻢﺗﺤﻘﻴﻘﻬﺎ ﻫﻨﺎ ﺟﻴﺪة ﺟﺪًا
ﺘﻐﻄﻴ ﺔ اﻟ
ﺘﻘﺪ أن اﻟ
ﺑﺸﻜﻞ ﻋﺎم ،ﻧﻌاﻟﺮﺳﺎﺋﻞﺳﻴﻜﻮن ﻟﻬﺎﺗﻐﻄﻴ ﺔ أﻋﲆ.
ﺘﻐﻄﻴ ﺔ.
ﻣﻦ زﻳﺎدةﺗﺤ ﺴﻴﻦ اﻟ
98.79٪
88.64٪
1.72٪
1.93٪
6.71٪
2.42٪ 0.42٪
0.07٪ 2.83٪
0.09٪ 1.16٪ 0.55٪ 0.03٪ 0.05٪
0.68٪
0.03٪ 1.16٪
0.12٪
0.07٪
3.88٪
9.10٪
99.98٪
ﺘﺤﻜﻢ ﻓ ﻲ USB.
ﺒﺾ USBاﻷﺳﺎﺳ ﻲ ﻟﻠ
ﺗﻠﻘ ﻲ CFGاﻟﻤﺸﺮوح ﻟﻤﻘ
اﻟﺸﻜﻞ 6.6:
Machine Translated by Google
ﺗﻐﻄﻴ ﺔ
6.6. 44
ﺒﺔ
ﺘﻐﻄﻴ ﺔ اﻟﻤﺮﻛ
6.6.3اﻟ
ﺒﺮ ﺟﻤﻴﻊ ﺒ ﺔ 31.76٪ﻋ ﺑﻨ ﺴﺒﺮ ﻛﻞ ﻣﻦ IMG4و USB fuzzing.ﻓ ﻲ اﻟﻤﺠﻤﻮع ،وﺻﻠﻨﺎ إﱃﺗﻐﻄﻴ ﺔ ﺘﺮﻛ ﺔ ﻋ
ﺘﻐﻄﻴ ﺔ اﻟﻤﺸ
ﺘﺎﺋﺞ اﻟ
أﺧﻴ ًﺮا ،ﻧﻘﺪم ﻧ
ﺘﻨﻔﻴﺬ ،ﻷﻧﻬﺎﺗﺤﺪ ث ﻓ ﻲ أﺟﺰاء ﻏﻴﺮ ذا ت ﺻﻠ ﺔ 7أوﺘ ﻲ ﻟﻴ ﺲ ﻟﻬﺎ ﻓﺮﺻ ﺔ ﻟﻠ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻀﻤﻦ ﻫﺬا اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟﻤﻮﺟﻮدة داﺧﻞ SecureROM.ﻳ اﻟ
ﺘ ﻲ ﻧ ﺴﻤﻴﻬﺎ
ﺘ ﻲﻳﻤﻜﻦ اﻟﻮﺻﻮل إﻟﻴﻬﺎ ﻧﻈﺮﻳًﺎ ﻣﻦ اﻟﻄﺮق اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻀﻤﻴﻦ اﻟ
ﺑﺘ ﻲﺗﻢﺗﺼﺤﻴﺤﻬﺎ 8.إذا ﻗﻤﻨﺎ ﻓﻘﻂ
ﺒﺮﻣﺠﻴ ﺔ اﻟ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﻓ ﻲ اﻟ
ﺘﻲ
ﺘﻞ اﻷﺳﺎﺳﻴ ﺔ ﻓﻘﻂ اﻟ
ﺘﻐﻄﻴ ﺔ ،ﻣﻦ ﺧﻼلﺗﻀﻤﻴﻦ اﻟﻜ
ﺘﻐﻄﻴ ﺔﺗﻘﻔﺰ إﱃ 46.37٪.ﻳﻤﻜﻨﻨﺎ اﻟﺤﺼﻮل ﻋﲆ ﻓﻜﺮة أﻓﻀﻞ ﻋﻦ اﻟ
SecureROM ،ﻓﺈن اﻟ
ﺘﻤﻜﻦ ﻏﻤﻮﺿﻨﺎ إﻻ ﺒﺎ 9 ،وﻟﻢﻳ
ﺘ ﻲﺗﺪﻋﻮ إﱃ اﻟﺬﻋﺮﺗﻘﺮﻳ ًﺘﻞ اﻟ
ﺘﻢﺗﺼﺤﻴﺤﻬﺎ .ﻻﻳﻤﻜﻦ اﻟﻮﺻﻮل إﱃ ﺟﻤﻴﻊ اﻟﻜ ﺘ ﻲ ﻟﻢﻳﺘﺪﻋﺎء اﻟﺬﻋﺮ أو اﻟ
ﺑﺎﺳ ﺘﻌﻠﻖ ﻻﺗ
ً ً
ﺘﻀﻤﻦ ﻫﺬا رﻣ ﺰا ﻻﻳﻤﻜﻦ اﻟﻮﺻﻮل إﻟﻴﻪ ﻣﻄﻠﻘﺎ ، ﺑﻬﺬا ﻧﺤﺼﻞ ﻋﲆﺗﻐﻄﻴ ﺔ 75.95٪.وﻣﻊ ذﻟﻚ ،ﻳ ﺒﻞ.ﺛﺎرة ﺣﺎﻟ ﺔ واﺣﺪة ﻣﺤﺪدة ﻛﻤﺎ ذﻛﺮﻧﺎ ﻣﻦ ﻗ
ﻣﻦ إ
ﺘﻌﻠﻴﻤﺎ ت.
ﺑﺸﻜﻞ ﺟﻴﺪ وﻏﻄﻰ ﻣﻌﻈﻢ اﻟﺘﺸﻮﻳ ﺶ ﻧﺠﺢ
ﺒﺎر ،ﻳﺸﻴﺮ ﻫﺬا إﱃ أن اﻟ
ﺘﺒ ﺐ ﺣﺎﻟ ﺔ ﻋﺎﻟﻤﻴ ﺔ ﻣﻌﻴﻨ ﺔ .ﻣﻊ أﺧﺬ ذﻟﻚ ﻓ ﻲ اﻻﻋ
ﺑﺴﺜﺎل
ﺒﻴﻞ اﻟﻤ
ﻋﲆﺳ
ﺒﺎ -و 75.95٪
ﺋﻤﺎ رﻣﺰ ﻻﻳﻤﻜﻦ اﻟﻮﺻﻮل إﻟﻴﻪﺗﻘﺮﻳ ًﺒﻴﺮة ،ﻫﻨﺎك دا ً
ﺒﺮﻣﺠﻴ ﺔ اﻟﻜ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﻣﻦ ﻏﻴﺮ اﻟﻮاﻗﻌ ﻲ أنﺗﺼﻞ إﱃ 100٪ -ﺧﺎﺻ ﺔ ﻓ ﻲ ﻗﻮاﻋﺪ اﻟ
ﺘﻤﻞﺒﻞ ،وﻟﻜﻦ ﻣﻦ اﻟﻤﺤ ﺘﻘﺜﻞ SecureROM.وﻣﻊ ذﻟﻚ ،ﻻﻳﺰال ﻣﻦ اﻟﻤﻤﻜﻦﺗﺤ ﺴﻴﻨﻪ ﻓ ﻲ اﻟﻤ ﺴ ﺒﻴﺮ ﻣﺜﻨﺎﺋ ﻲ اﻟﻜ
ﺜﻞ ﻫﺬا اﻟﻨﻈﺎم اﻟ
ﺗﻤﺎﻣﺎ ﻟﻤ
ً ﻣﻨﺎﺳ ﺐ
ﺑﺸﻜﻞ أﻓﻀﻞ ﻣﻊ ASN.1.ﺑﺪون ﺟﻌﻞ اﻟﻤﺼﻬﺮﻳﻌﻤﻞأﻻﻳﻜﻮن ذﻟﻚ
ﺘﻪ.
ﺒﻖ رؤﻳ
ﺘﻤﺎم ،إﱃ ﺟﺎﻧ ﺐ ﻣﺎﺳ
ﺜﻴﺮة ﻟﻼ ﻫ
ﺑﻌﺾ اﻟﻮﻇﺎﺋﻒ اﻹﺿﺎﻓﻴ ﺔ اﻟﻤ
ﺑﺎﻹﺿﺎﻓ ﺔ إﱃ ذﻟﻚ ،ﻳﻮﺿﺢ اﻟﺠﺪول 6.4
ﺘﻐﻄﻴ ﺔ اﻟﻤﺪﻣﺠ ﺔ ﻫﻨﺎ .ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓ ﻲ اﻟﺠﺪول ،ﺗﻤ ﺖﺗﻐﻄﻴ ﺔ وﻇﺎﺋﻒ DER
ﺘﻢ اﻟﻨﻈﺮ إﱃ اﻟ
ﺘﺎﻟ ﻲﻳ
ﺑﺎﻟ
ﺘﻢﺗﻐﻄﻴ ﺔ ﻛﻞ ذﻟﻚ ﻓ ﻲ ﻛﻞ ﻣﻦ USBو IMG4 ،و
ﻳ
ﺗﺤﻠﻴﻞ اﻟﺸﻬﺎدة ﺟﻴﺪًا.
و
ﺒﺎ ،
ﺘﻞ اﻷﺳﺎﺳﻴ ﺔﺗﻘﺮﻳ ً
ﺑﻴﻨﻤﺎﺗﻢ ﺿﺮ ب ﺟﻤﻴﻊ اﻟﻜﺘﻢﺗﻨﻔﻴﺬ ﻫﺎ 241ﻣﺮة ﻓﻘﻂ.
ﺘﺤﻠﻴﻞﺗﻌﻘﻴﺪًا -ﻳ
ﺜﺮ وﻇﺎﺋﻒ اﻟ
وﻣﻊ ذﻟﻚ ،ﺗﺤﻘﻖ ﻣﻦ ﺧﺼﺎﺋﺺ اﻟﺤﻤﻮﻟ ﺔ -و ﻫ ﻲ واﺣﺪة ﻣﻦ أﻛ
ﺒﺮ ﻣﻦ ﻋﻤﻠﻴﺎ ت اﻹﻋﺪام ﻟﻦﻳﻀﺮ.
ﻓﺈن ﻋﺪدًا أﻛ
ﺘﺤﻠﻴﻞ
ﺳﻠ ﺴﻠ ﺔ اﻟ 30'785241 24/25 132/133532ب 20 22/23 96/97
ﺘﺤﻠﻴﻞﺗﺤﻘﻖ ﻣﻦ
ﺘﺤﻘﻖ ﻣﻦﺳﻠ ﺴﻠ ﺔ اﻟ
اﻟ 15'571 388ب 18
ﺧﺼﺎﺋﺺ اﻟﺤﻤﻮﻟ ﺔ 23/34115/135564ب 23
ﺗﻐﻄﻴ ﺔ
6.6. 45
100.00٪
100.00٪
100.00٪
100.00٪
100.00٪
66.95٪
66.95٪
66.95٪
Img4DecodeInit ﺘﺪﻋﺎء
اﺳ 66.95٪
33.34٪
33.34٪
33.47٪
33.34٪
33.20٪
0.20٪
0.20٪
0.20٪
0.20٪
33.01٪
0.20٪
0.20٪
0.20٪
0.20٪
0.20٪
IMG4 ﻓﻚ ﺿﻐﻂ ﺣﻤﻮﻟ ﺔ
0.20٪
0.20٪
0.20٪
0.20٪
0.20٪
0.20٪
0.20٪
0.20٪
0.20٪
33.01٪ 0.13٪
66.76٪
0.20٪ 99.80٪
0.20٪
100.00٪
100.00٪
اﻟﻔﺼﻞ 7
ﻣﻨﺎﻗﺸ ﺔ
ﺒﻠﻴ ﺔ.
ﺘﻘﺘﻤﺎﻻ ت اﻟﻤ ﺴ
ﺑﻌﺾ اﻷﻓﻜﺎر ﻋﻦ اﻻﺣﺘﺎﺋﺞ اﻟﺮاﺋﻌ ﺔ ﻣﻊ emmutaler ،ﻻﺗﺰال ﻫﻨﺎك ﻗﻴﻮد ﻋﲆ ذﻟﻚ .ﻓ ﻲ ﻫﺬا اﻟﻔﺼﻞ ،ﻧﻨﺎﻗ ﺶ ﺣﺪود ﻫﺎ وﻧﻘﺪم
ﺑﻌﺾ اﻟﻨﺑﻴﻨﻤﺎ ﺣﻘﻘﻨﺎ
ﺒﻞ.
ﺘﻘﺘﺸﻮﻳ ﺶ ﻓ ﻲ اﻟﻤ ﺴ
ﻋﲆ وﺟﻪ اﻟﺨﺼﻮص ،ﻧﻨﺎﻗ ﺶ إﻣﻜﺎﻧﻴﺎ تﺗﺤ ﺴﻴﻨﺎ تﺳﺮﻋ ﺔ اﻟ
7.1اﻟﻘﻴﻮد
ﺜﻴﺮ
ﺘﺮﻛﺎن ﻓ ﻲ اﻟﻜ
ﺑـ SEP ،ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أﻧﻬﻤﺎﻳﺸﺘﻢ دﻋﻢ iBootوﻻ ROMاﻟﺨﺎص
ﻗﻴﺪ آﺧﺮ ﻋﲆ emmutalerﻫﻮ أﻧﻪﻳﻌﻤﻞ ﺣﺎﻟ ًﻴﺎ ﻣﻊ SecureROMﻓﻘﻂ .ﻻﻳ
ﺒﺮﻣﺠﻴ ﺔ ﻣﻊ SecureROM.
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﻣﻦ اﻟ
ﺒ ًﻘﺎ .ﻻﻳﻤﻜﻦ ﺣﺎﻟ ًﻴﺎ إر
ﺑﺎك أي ﺷ ﻲء ﺑﻌﻤﻖ ﻣ ﺴﺘﺎج إﱃ ﻫﻨﺪﺳ ﺔ ﻋﻜ ﺴﻴ ﺔ وﻓﻬﻤﻬﺎ
ﺘ ﻲﺗﺤ
ﺘﺸﻮﻳ ﺶ أﺟﺰاء ﻣﺤﺪدة ﺟﺪًا ﻣﻦ SecureROMاﻟ
ﺑﻋﻼوة ﻋﲆ ذﻟﻚ ،ﻧﺤﻦ ﻣﻘﻴﺪون
ﺜﺎل [28].
ﺒﻴﻞ اﻟﻤ
ﺑﻌﺾ اﻷﺧﻄﺎء ﻓ ﻲ وﺣﺪةﺗﺤﻜﻢ اﻟﺬاﻛﺮة ﻋﲆﺳﺜﻮر ﻋﲆ
ﺜﻞﺗﻜﻮﻳﻦ MMU.ﻫﺬا أﻣﺮ ﻣﺆﺳﻒ ،ﺣﻴ ﺚﺗﻢ اﻟﻌ
ﺑﺎﻷﺟﻬﺰة ،ﻣﺘﻌﻠﻖ
ﻣ
ً
ﺿﺌﻴﻼ. ﺘﻤﻞ أﻻﻳﻜﻮن
ﺘﺸﻮﻳ ﺶ أو ﻋﻮاﻣﻞ أﺧﺮى ،ﻟﻜﻦ ﻣﻦ اﻟﻤﺤ
ﺛﻴﺮه ﻋﲆﺳﺮﻋ ﺔ اﻟ
ﺘﺸﻮﻳ ﺶ .ﻟﻢ ﻧﺤﺪد ﻣﺪىﺗﺄ
ﺛﻨﺎء ﻋﻤﻠﻴ ﺔ اﻟ ﺑ ًﻘﺎ ،ﻳﻤﻜﻦ أنﺗ
ﺘﻌﻄﻞ QEMUأ ﻛﻤﺎ ذﻛﺮﻧﺎﺳﺎ
ﺘﻘﺮﻳﺮ.
ﺑ ﺔ ﻫﺬا اﻟ
ﺘﺎ
ﺒﺎ ًرا ﻣﻦ ﻛ
ﺘﺘ ﻲ ﻻﻳﻤﻜﻦﺗﻔ ﺴﻴﺮ ﻫﺎ -اﻋ
ﻋﲆ ﻫﺬا اﻟﻨﺤﻮ ،ﻫﻨﺎك ﻗﻴﺪ آﺧﺮ ﺣﺎﻟ ًﻴﺎ و ﻫﻮ QEMUﻧﻔ ﺴﻪ وأﻋﻄﺎﻟﻪ اﻟ
ﺒﻠﻴ ﺔ
ﺘﻘﺘﻤﺎﻻ ت اﻟﻤ ﺴ
7.2اﻻﺣ
46
Machine Translated by Google
ﺘﺠﻤﻴﺪ
ﺗﺤ ﺴﻴﻨﺎ تﺳﺮﻋ ﺔ اﻟ
7.3. 47
ﺘﻤﺎم أ ً
ﻳﻀﺎ ،ﻟﻜﻦ ﺜﻴﺮ ﻟﻼ ﻫ
ﺜﺮﺗﻌﻘﻴﺪًاSEPROM .ﻣ
ﺗﻮﻛﻮل USBاﻷﻛ
ﺑﺮوﺜﻞ ﺘﻮي أ ً
ﻳﻀﺎ ﻋﲆ اﻟﻌﺪﻳﺪ ﻣﻦ ﻧﻮاﻗﻞ اﻟﻬﺠﻮم ،ﻣ ﺜﻘ ﺔ -ﻓﻬ ﻲﺗﺤ
ﻗﻴﻤ ﺔ -ﻓﻬ ﻲ ﻟﻴ ﺴ ﺖ ﺟﺬرﺳﻠ ﺴﻠ ﺔ اﻟ
ﺘﻐﻼل ﻓ ﻲ SecureROMأوﻻً.
ﺑﺤﺎﺟ ﺔ إﱃ اﺳﺒ ًﻘﺎ
ﺘ ﻲﺗﻢ اﻟﻜﺸﻒ ﻋﻨﻬﺎ ﻣ ﺴ
ﺜﻐﺮا ت اﻟ
ﺘﻤﺎم .ﻛﺎﻧ ﺖ اﻟ
ﺛﺎرة ﻟﻼ ﻫ ً
ﻫﺪﻓﺎ أﻗﻞ إ ﺑﻪﻳﺠﻌﻠﻪﺘﻬﺪﻳﺪ اﻟﺨﺎص
ﻧﻤﻮذج اﻟ
ﺒﻠ ﻲ ﻋﲆ
ﺘﻘﺘﺼﺮ اﻟﻌﻤﻞ اﻟﻤ ﺴ ﺑ ﻼ ً ﻟﻼﺳ
ﺘﻐﻼل ﻋﲆ A12و A13.ﻳﺠ ﺐ أﻻﻳﻘ ﺑﺄنﻳﻜﻮن ﺧﻄﺄ checkm8ﻗﺎ ﺑ ًﻘﺎ ،ﻣﻦ اﻟﻤﺤ
ﺘﻤﻞ أنﻳ ﺴﻤﺢﺗ ﺴﺮ ب اﻟﺬاﻛﺮة ﻛﻤﺎ ذﻛﺮﻧﺎﺳﺎ
ﺗﺤﺪﻳﺪ اﻟﻬﻮﻳ ﺔ
ﺛﺎرة و
ﺒﺸﺮ ﻹ
ﺒ ﺔ ﻟﻠ
ﺑﺎﻟﻨ ﺴﺘﻰ
ﺒﺎ ﻟﻠﻐﺎﻳ ﺔ ﺣ
ﺑﺸﻜﻞ ﻋﺎم -أﻣ ﺮًا ﺻﻌ ًﺘﺨﺪام (TOCTOU) -أو ﻇﺮوف اﻟﻌﺮق
ﺘﺤﻘﻖ ﻣﻦ أﺧﻄﺎء وﻗ ﺖ اﻻﺳ
اﻟﻤﺨﺼﺼﻴﻦ ﻓﻘﻂ.ﻳﻌﺪ وﻗ ﺖ اﻟ
ﺘﺠﺎ ﻫﻠﻬﺎ.ﻳﻤﻜﻦ ﻟﻠﻤﺮء أنﻳﻔﻜﺮ ﻓ ﻲﺗﺼﻤﻴﻢ
ﺘﺎﻟ ﻲﻳ
ﺑﺎﻟ
ﺘﻐﻴﺮة و
ﺘﻘﻠﻴﺪي وﻗﺪﻳﺼﻨﻒ اﻟﻤﺪﺧﻼ ت اﻟﻨﻀﺮة ﻋﲆ أﻧﻬﺎﺗﻐﻄﻴ ﺔ ﻣ
ﺑﺸﻜﻞ ﺻﺤﻴﺢ .ﻗﺪﻳﻜﻮن اﻷﻣﺮ أﺳﻮأ ﻓ ﻲ اﻟﻤﺼﺎ ﻫﺮ اﻟ
ﺑﻌﻴﺪ اﻟﻤﻨﺎل ،إﻻ أن أﺧﻄﺎءﺒﺪو
ﺑﻼغ ﻋﻨﻬﺎ .ﻋﲆ اﻟﺮﻏﻢ ﻣﻦ أن ﻫﺬا ﻗﺪﻳ
ﺜﻞ ﻫﺬه اﻷﺧﻄﺎء واﻹ
ﺜﻮر ﻋﲆ ﻣ
ﺘﺼﻔﺤﻴﻦ اﻟﻌ
ﺑﺪﻳﻠ ﺔ ،ﻣﻤﺎﻳﺠﻌﻞ ﻣﻦ اﻟ ﺴﻬﻞ ﻋﲆ اﻟﻤﺒ ﺔ ﺧﻴﻮط
ﺘﻣﻜ
ﺘﻢﺗﺸﻐﻴﻠﻪ. ﺘﺎج أ ً
ﻳﻀﺎ إﱃ ﻧﻤﻂ وﺻﻮل ﻛﻮﻣ ﺔ ﻣﻌﻴﻦ ﻟﻴ ﺑﻪ ﻟـ checkm8 ،واﻟﺬيﻳﺤ
ﺘﻄﻠ ﺐﺗﺸﻐﻴﻞ ﻧﻤﻂ وﺻﻮل ﻣﺤﺪد ،و ﻫﻮ ﻣﺸﺎ
ﺗTOCTOU
ﺜﺮ
ﺘﺤﻠﻴﻞ اﻷﻛ
ﺜﻤ ﺮًا ،إﻻ أن اﻟ ﺘﻤﺎم أ ً
ﻳﻀﺎ .ﻓ ﻲ ﺣﻴﻦ أنﺗﺤﻘﻴﻘﻨﺎ اﻟ ﺴﺮﻳﻊ ﻟﻢﻳﻜﻦ ﻣ ﺜﻴ ﺮًا ﻟﻼ ﻫ
ﺒ ﺐﺗﻌﻄﻞ QEMUﻓ ﻲ ﻇﺮوف ﻏﺎﻣﻀ ﺔ أﻣ ﺮًا ﻣ
ﺘﺤﻘﻴﻖ ﻓ ﻲﺳ
أﺧﻴ ﺮًا ،ﻗﺪﻳﻜﻮن اﻟ
ﺘﻬﺎ ، ﺘﺸﻬﺪ اﻟﻤﺪﺧﻼ ت أ ً
ﻳﻀﺎﺗﻨﻮﻋً ﺎ أﻗﻞ ﻓ ﻲﺗﻐﻄﻴ ﺑﻞﺳﺛﻮﻗﻴ ﺔ ﻓﺤ ﺴ ﺐ ،
ﺜﺮ ﻣﻮ ﺗﺮﻛﻴ ًﺰاﻳﻤﻜﻦ أنﻳﻮﻓﺮ ﻣﺰﻳﺪًا ﻣﻦ اﻟ
ﺒﺼﻴﺮة .ﻟﻦﻳﺆدي ذﻟﻚ إﱃ ﺟﻌﻞ ﻏﻤﻮض USBأﻛ ﻣﺸﺎرﻛ ﺔ و
ﺒﺪو.
ﺑﺸﻜﻞ ﻋﺸﻮاﺋ ﻲ ﻋﲆ ﻣﺎﻳ
ﺣﻴ ﺚ ﻟﻦﺗﻤﻮ ت QEMU
ﺘﺸﻮﻳ ﺶ
ﺗﺤ ﺴﻴﻨﺎ تﺳﺮﻋ ﺔ اﻟ
7.3
ﺑﻌﺾﺑﺎﻟﻔﻌﻞ ،ﻻﺗﺰال ﻫﻨﺎكﺘﺸﻮﻳ ﺶ .ﻓ ﻲ ﺣﻴﻦ أن ﻏﻤﻮض IMG4ﺳﺮﻳﻊ ﺟﺪًا
ﺒﻠ ﻲ ﻫﻮﺗﺤ ﺴﻴﻦﺳﺮﻋ ﺔ اﻟ
ﺘﻘﺑﺸﻜﻞ ﺧﺎص ﻟﻠﻌﻤﻞ اﻟﻤ ﺴﺘﻤﺎم
ﺜﻴﺮة ﻟﻼ ﻫ
أﺣﺪ اﻟﻤﺠﺎﻻ ت اﻟﻤ
ﺑﻂ ﻋﲆ اﻹﻃﻼق .ﻣﻦ اﻟﻤﺄﻣﻮل أنﻳ ﺴﺎﻋﺪ اﻟﺤﺼﻮل ﻋﲆ دﻋﻢ
ﺘﺮا
ﺑﺸﻜﻞ ﻛﺎﻣﻞ وﻻﺗﺪﻋﻢ اﻟﺜﺎل ،ﻻﺗﺰال وﺣﺪة kernelﻻﺗﻌﻤﻞ
ﺒﻴﻞ اﻟﻤ
ﺘﻬﺎ .ﻋﲆﺳ
ﺘ ﻲﺗﻤ ﺖ ﻣﻮاﺟﻬ
اﻟﻘﻴﻮد اﻟ
ﺜﻴ ًﺮا.
ﺑﻂ ﻓ ﻲﺗ ﺴﺮﻳﻊ ﻋﻤﻠﻴ ﺔﺗﺸﻮﻳ ﺶ USBﻛ
ﺘﺮا
اﻟ
ﺑ ًﻘﺎ.
ﺒﻴﺮ ﻣﻦ libcﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢﺳﺎ
ﺘﻘﺎط ﺟﺰء ﻛ
ﺘﻌﻴﻦ ﻋﻠﻴﻨﺎ ﺣﺎﻟ ًﻴﺎ اﻟ
ﺘﺠﻨ ﺐ أﻋﻄﺎل QEMUاﻟﻐﺎﻣﻀ ﺔ ،ﻳ
1ﻟ
Machine Translated by Google
اﻟﻔﺼﻞ 8
اﻷﻋﻤﺎل ذا ت اﻟﺼﻠ ﺔ
ﺑﺎﺳﻢ BootROM.ُﻌﺮف
1ﻓ ﻲ ذﻟﻚ اﻟﻮﻗ ﺖ ﻛﺎنﻳ
48
Machine Translated by Google
ﺜﻨﺎﺋﻴ ﺔ ﻋﲆ ARM
ﺑ ﺔ اﻟ
ﺘﺎ
8.3اﻟﻜ 49
ﺜﻨﺎﺋﻴ ﺔ ﻋﲆ ARM
ﺑ ﺔ اﻟ
ﺘﺎ
8.3إﻋﺎدة اﻟﻜ
ﺘﺸﻮﻳ ﺶ.
ﺗﻤﻜﻴﻨﻬﺎ ﻣﻦ اﻟ
ﺜﻨﺎﺋﻴﺎ ت و ﺘﻠ ًﻔﺎ ﻛ
ﺜﻴ ﺮًا ﻓ ﻲﺗﺮﻗﻴﻊ اﻟ ﺘﺨﺬ ﻧﻬﺠًﺎ ﻣﺨ
ﺘﺠﺰأ ﻣﻦ ]emmutaler. [5ﻳ
ﺘﺨﺮاج اﻟﺮﻣﻮز ﺟﺰءًا ﻻﻳ
ﺜﻨﺎﺋﻴ ﺔ واﺳ
ﺘﺮﻗﻴﻊ اﻟ
ﺗﻌﺪ أدوا ت اﻟ
ﺘﻤﻜﻴﻦ
ﺒﺪﻳﻞ ﻟـ QEMUﻟ
ﺘﺨﺪاﻣﻪ ﻛ
ﺑﻴﻨﻤﺎﻳﻤﻜﻦ اﺳﺒﺎ.
ﺑﺸﻜﻞﺗﻌ ﺴﻔ ﻲﺗﻘﺮﻳ ًﺘﻬﺎ
ﺑﺘﺎ
ﺑﺈﻋﺎدة ﻛﺘﺎﻟ ﻲﻳ ﺴﻤﺢ
ﺑﺎﻟ
ﺛﻨﺎﺋﻴﺎ ت ARMوﺑ ﺖ إﱃ
ﺛﺎﺑﺸﻜﻞﻓ ﻲ ﺟﻮ ﻫﺮ ﻫﺎ ،ﻳﺮﻣﺰ
ﺘﻐﻠ ﺐ ﻋﲆ
ﺑﺎﻟﻜﺎﻣﻞ ،ﻓﻠﻦ ﻧﻀﻄﺮ إﱃ اﻟﺜﻨﺎﺋ ﻲ
ﺜﻨﺎﺋ ﻲ .إذاﺗﻢﺗﺮﻣﻴﺰ اﻟﻤﻠﻒ اﻟ
ﺑﺪﻳﻞ ﻟﻤﺮﻗﻌﻨﺎ اﻟﺑﺔ
ﺜﺎ
ﺑﻤ ﺘﺸﻮﻳ ﺶ ﻋﲆ SecureROM ،ﻓﺈﻧﻪﻳﻤﻜﻦ أ ً
ﻳﻀﺎ أنﻳﻜﻮن اﻟ
ﺑﻴﻦ إﺻﺪارا ت SecureROM ، ﺘﺮﻣﻴﺰ أ ً
ﻳﻀﺎ ﻓ ﻲﺗﺤﺪﻳﺪ اﻟﻮﻇﺎﺋﻒ ﺘﺼﺤﻴﺢ داﺧﻞﺗﻌﻠﻴﻤ ﺔ واﺣﺪة ﻓﻘﻂ.ﻳﻤﻜﻦ أنﻳ ﺴﺎﻋﺪ اﻟ
ﻗﻴﻮد ﻣﺆﺷﺮ ARMأو اﻟﺤﺎﺟ ﺔ إﱃ اﻟ
ﺘﻮى ﻛﻤﺎ ﻫﻮ.
ﺘﺨﻄﻴﻂ ﻋﺎﻟ ﻲ اﻟﻤ ﺴ
ﺣﻴ ﺚﻳﻈﻞ اﻟ
Machine Translated by Google
اﻟﻔﺼﻞ 9
ﺗﻤ ﺔ
ﺧﺎ
50
Machine Translated by Google
ﻓﻬﺮس
27 )ﺷﺮﻳﺤ ﺔiPhone X وiPhone 8 إﱃA5) )ﺷﺮﻳﺤ ﺔiPhone 4S ﻣﻦ:ﻣﻌﺮﺿ ﺔ ﻟﻠﺨﻄﺮiPad وiPhone ﻣﻌﻈﻢ اﻷﺟﻴﺎل ﻣﻦ أﺟﻬﺰةiOS. ﻟﻤﺌﺎ ت اﻟﻤﻼﻳﻴﻦ ﻣﻦ أﺟﻬﺰة
2019. url: https://twitter.com/axi0mX/status/1177542201670168576. https://twitter.com/axi0mX. ﺒﺮ
ﺘﻤﺒ
ﺳA11).
- اﻟﻤﺆﺷﺮ- ﺘﺤﺎن
اﻻﻣ2019/02 / / ﻛﻮمiPhone XS. 2019. url: https: // googleprojectzero. blogspot. ﻓﺤﺺ ﻣﺼﺎدﻗ ﺔ اﻟﻤﺆﺷﺮ ﻋﲆ ﺟﻬﺎز. آزاد.[ ب4]
07/27/2021). ﺘﺎرﻳﺦ
ﺑﺗﻤ ﺖ اﻟﺰﻳﺎرة
)html .ﻋﲆ- اﻟﻤﺼﺎدﻗ ﺔ
ETH ، ﺘﻴﺮ
أﻃﺮوﺣ ﺔ اﻟﻤﺎﺟ ﺴARM. ﺘﺼﺎدﻳ ﺔ ﻟـ
ﺛﻨﺎﺋﻴ ﺔ اﻗﺑﺔ
ﺘﺎ
[إﻋﺎدة ﻛ5] LD Bartolomeo. ArmWrestling:
2021. ، زورﻳ ﺶ
ﺑﻌ ﺔ ﻋﺸﺮ
اﻟﺮاUSENIX ﻓ ﻲ ورﺷ ﺔ ﻋﻤﻞ.ﺑﻚ
ﺒﺤ ﺚ اﻟﻤﺮ
ﺘﺪرﻳﺠﻴ ﺔ ﻟﻠ
ﺑﻴﻦ اﻟﺨﻄﻮا ت اﻟاﻟﺠﻤﻊAfl ++: . ﻫﻴﻮز. وم، إﻳ ﺴﻔﻴﻠﺪ ت. ﻫـ، ﻣﺎﻳﺮ. د، ﻓﻴﻮراﻟﺪي.[أ8]
O ensive (WOOT 20). ﺣﻮلﺗﻘﻨﻴﺎ ت
2020. url: https://www.usenix.org/conference/woot20/ offer / fioraldi. أﻏ ﺴﻄ ﺲUSENIX ، ﺟﻤﻌﻴ ﺔ
ﺗﻤ ﺖ
)- afl ++. url: https://github.com/AFLplusplus/AFLplusplus# fuzzing-binary-only-target ﺜﻨﺎﺋﻴ ﺔ ﻓﻘﻂ
ﺗﺸﻮﻳ ﺶ اﻷ ﻫﺪاف اﻟ
[9]
gaasedelen/lighthouse .ﺒﺮﻣﺠﻴ ﺔ ﻟﻠﻤﻬﻨﺪﺳﻴﻦ اﻟﻌﻜ ﺴﻴﻴﻦ
ﺘﻌﻠﻴﻤﺎ ت اﻟ
ﺘﻜﺸﻒﺗﻐﻄﻴ ﺔ اﻟ
ﻣ ﺴ- اﻟﻤﻨﺎرة.ﺟﺎﺳﻴﺪﻳﻠﻴﻦ09/02/2021). [10] ﺗﻪ ﻓ ﻲ
زﻳﺎر
ﺗﻤ ﺖ
)com / en - gb / guide / security / seccd5016d31 / web . ﺗﻔﺎﺣ ﺔ
2021. url: https: / / support. .ﺑﻞ
[ﻣﻘﺪﻣ ﺔﻷﻣﻦ ﻣﻨﺼ ﺔ آ13]
09/02/2021). اﻟﺰﻳﺎرة ﻓ ﻲ
51
Machine Translated by Google
ﻓﻬﺮس 52
ﺗﻤ ﺖ اﻟﺰﻳﺎرة ﻓ ﻲ
)Asahilinux wiki - sw: boot. 2021. url: https://github.com/AsahiLinux/docs/ wiki / SW٪ 3ABoot .ﺗﻦ
ﻣﺎر.[ ﻫـ18]
09/15/2021).
ﺗﻤ ﺖ اﻟﺰﻳﺎرة ﻓ ﻲ
)com / #oid .ﻣﻌﻠﻮﻣﺎ تOrange SA. url: http: / / www. OID - .اﻟﻤﻨﺰلOid - ﺘﻮدع
[ﻣ ﺴ20]
07/13/2020).
Bootstomp: [و22] N. Redini ، A. Machiry ، D. Das ، Y. Fratantonio ، A. Bianchi ، E.Gustafson ، Y. Shoshitaishvili ، C. Kruegel ،
2017. (اﻟﺼﻔﺤﺎ تUSENIX Security 17) ، اﻷﻣﻨﻴ ﺔ اﻟ ﺴﺎدﺳ ﺔ واﻟﻌﺸﺮونUSENIX ﻓ ﻲ ﻧﺪوة.ﺣﻮل أﻣﺎن ﻣﺤﻤﻞ اﻹﻗﻼع ﻓ ﻲ اﻷﺟﻬﺰة اﻟﻤﺤﻤﻮﻟ ﺔG.Vigna.
781-798 ،
2015/03/10/ispy-cia-campaign-steal-apples-secrets/ .ﺑﻞ
ﺑﺮا ت اﻟﻤﺮﻛﺰﻳ ﺔ ﻟ ﺴﺮﻗ ﺔ أﺳﺮار ﺷﺮﻛ ﺔ آ
ﺣﻤﻠ ﺔ وﻛﺎﻟ ﺔ اﻟﻤﺨﺎJ. Begley. [و23] J. Scahill
09/09/2021). ﺗﻤ ﺖ اﻟﺰﻳﺎرة ﻓ ﻲ
)url: https: / / theintercept.com/
2020. . اﻟﺼﻴﻦ، ﺷﻨﻐﻬﺎيMOSEC 2020 ، ورﻗ ﺔ ﻣﻘﺪﻣ ﺔ ﻓ ﻲSEP. ﺘﻤﻬﻴﺪ اﻵﻣﻦ ﻟﻠﻬﺠﻮم ﻣﻦ
[اﻟ28] H. Xu.
¨
أﻏ ﺴﻄ ﺲUSENIX Security ، ﻓ ﻲ.ﺑﺎﻟﻤﻄﻬﺮﻣﻮﺟﻪGreybox
2020. url:
ﺐhttps://
زﻏC. Giucomsec.ethz.ch/
rida. ParmeSan:
wp-وcontent
H. Bos و/K.files
Razavi
/ parmesan_sec20.pdf.
[و30] S. Osterlund
Machine Translated by Google
اﻟﻤﻠﺤﻖ أ
ﺘﻠﻒ.
ﺒﻴﺎﻧﺎ ت اﻟﻮﺻﻔﻴ ﺔ اﻟﻤﻮﺟﻮد داﺧﻞ SecureROM ،واﻟﺬيﻳﻮﻓﺮ ﻣﻌﻠﻮﻣﺎ ت ﺣﻮلﺗﺨﻄﻴﻂ اﻟﻘ ﺴﻢ اﻟﻤﺨ
ﻳﻮﺟﺪ أدﻧﺎهﺗﺼﻮر ﻟﻘ ﺴﻢ اﻟ
أﻧﺎ
Machine Translated by Google
hhhh hhh hhhh hhh hhhh hhh hhhh hhh hhhh hhh
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
ﻫﻬﻬﻬﻪ
ﻫﻬﻬﻪ
0x300 ﺘﺔ
اﻟﻤﺆﺷﺮ إﱃ ﻻﻓ ﻣﺆﺷﺮ إﱃ اﻟﻨﻤﻂ
0x340 ﺒﻴﺎﻧﺎ ت
ﻧﻬﺎﻳ ﺔ اﻟ ﺑﺪاﻳ ﺔ BSS
0x370 ﺘﺎك
EL0ﺳ ﺒﺪأ ﺟﺪاول اﻟﺼﻔﺤ ﺔ
ﺗ
0xffffffffffffffff
- ﻏﻴﺮ ﻣﻌﻴﻦ-
0x240000000
0x23fffffff
اﻟﺬاﻛﺮة اﻟﻤﻌﻴﻨ ﺔ
IO ﺗ ﺴﺠﻴﻼ ت
0x230000000
0x22fffffff
- ﻏﻴﺮ ﻣﻌﻴﻦ-
0x19C030000
0x19C02ffff
[]ﻛﻮﻣ ﺔ
0x19C028000
0x19c027fff
- ﻏﻴﺮ ﻣﻌﻴﻦ-
0x19c020000
0x19c01ffff
[]ﻛﻮﻣ ﺔ
0x19c01c000
0x19c01bfff
.bss
0x19c00d100
0x19c00d0ff
ﺑﻴﺎﻧﺎ ت
.
0x19c00c000
0x19c00bfff
ﺟﺪاول اﻟﺼﻔﺤﺎ ت
0x19c000000
0x19bffffff
- ﻏﻴﺮ ﻣﻌﻴﻦ-
0x100030000
0x10002ffff
ﻧﺺ.
0x100000000
Machine Translated by Google
ﻣﻠﺤﻖ ب
ﺑﺪأ
= IMG4Format DEFINITIONS ::ا
}
ﺗﻴﺢ
ﺒ ﺔ اﻟﻤﻔﺎ
ﺗ ﺴﻠ ﺴﻞ ﺣﻘﻴ
= Keybags ::
}ManifestBytes :: = SEQUENCEﻣﻌﺮف
اﻟﻜﺎﺋﻦ ObjectID ،اﻟﻘﻴﻤ ﺔ OCTET STRING
}
}ManifestInt :: = SEQUENCEﻣﻌﺮف
اﻟﻜﺎﺋﻦ ObjectID ،اﻟﻘﻴﻤ ﺔ ﺻﺤﻴﺤ ﺔ
}
ﺗ ﺴﻠ ﺴﻞ {
ﺒﻮل = ::
ﺘﻣﺎﻧﻴﻔﻴ ﺴ
objectID ObjectID ،ﻗﻴﻤ ﺔ
BOOLEAN
ﺑﻌﺎ
را
Machine Translated by Google
}
}
( 1936881262 ) == "srvn" srvn [[ PRIVATE ] 1936881262 ] EXPLICIT ManifestBytes OPTIONAL - long_to_bytes = 109
longyt52 ) == "snon" sepNonce [[PRIVATE] 1936617326] EXPLICIT ManifestBytes OPTIONAL - long_to_bytes
1396985677] EXPLICIT ManifestInt OPTIONAL - long_to_bytes ( 1885565552) == " PCrp " pcrp [ [ PRIVATE ]
PRIVATE EXPLICIT ManifestInt OPTIONAL - long_to_bytes (1396985677) == "SDOM" securityDomain [[PRIVATE]
CertificateSecurityMode [[PRIVATE] 1129530691 ] EXPLICIT ManifestBool OPTIONAL - long_to_bytes ( 1162037572)
[[PRIVATE] 1129337423] EXPLICIT ManifestBool OPTIONAL - long_to_bytes (1129530691) ==" CSEC "
( 1128810832) == " CHIP " chipID [[ PRIVATE ] 1128810832] EXPLICIT ManifestInt longt 1129 " CertificateProduction
(1128616015) == "CEPO" CertificateEpoch [[PRIVATE ] 1128616015] EXPLICIT ManifestInt OPTIONAL - long_to_bytes
ManifestBytes OPTIONAL - long_to_bytes (1112494660) == "BORD" boardID [[PRIVATE] 1112TION46 long_to_bytes
= SEQUENCE { - long_to_bytes ( 1112425288) == "BNCH" bootNonceHash [[PRIVATE] 1112425288 ] EXPLICIT
ﺘﻴﺎرﻳ ﺔ
ﺑﻴﺎن ﺻﺮﻳﺤ ﺔ اﺧأداة1095585357] []ﺧﺎصMANP ::
ﺗﻴﺢ
ﺘﻮي ﻋﲆ أﻛﻴﺎس ﻣﻔﺎ
ﺗﺤ
{ ﺑﻮاﺳﻄ ﺔﺗﻢﺗﺮﻣﻴﺰه
(2) ﺘﻖ
ﻣﺸiso-itu-t asn1 (1) -ﺘﺮكﻣﺸ
(1) ﺗﺸﻔﻴﺮ ﻣﻤﻴﺰber
}
)
}
{ ﺗ ﺴﻠ ﺴﻞ
= :: ﻣﺎﻧ ﺐ
Machine Translated by Google
ﺗ ﺴﻠ ﺴﻞ اﻟﺸﻬﺎدة
}
ﺑﻴﺎن اﻟﺤﻤﻮﻟ ﺔ
IMG4 :: = SEQUENCE { objectID IA5String ،
IM4P [0] EXPLICIT IM4M OPTIONAL
ﻧﻬﺎﻳ ﺔ
Machine Translated by Google
C اﻟﻤﻠﺤﻖ
ﺑﻌﺪ ﻫﺎ
ﺒﻞ اﻟﻤﻘﺎرﻧ ﺔ و
ﺘﺮة أﻃﻮل ﻗ
ﻓ
ﺒﻨﺎﻧﻴ ﺔ ؛
ﻟﻴﺮة ﻟ6 اﻟﻌﻮدة 0 ،! sizeof (found_manifest_item)) ؛
( ! a4 [3] ) إذا = 0LL ؛memset (found_manifest_item،
ﺒﻨﺎﻧﻴ ﺔ ؛
ﻟﻴﺮة ﻟ6 اﻟﻌﻮدة LeafPubKeyLen = 0LL ؛LeafPubKey
( ! a4 [1] ) إذا
ﺒﻨﺎﻧﻴ ﺔ ؛
ﻟﻴﺮة ﻟ6 اﻟﻌﻮدة ! (إرﺟﺎعimg4 ) =إذا6LL ﺘﻴﺠ ﺔ ؛
اﻟﻨ
! (إرﺟﺎعa4 [2] ) إذا ُﺮﺟﻊ
ﺗ
( ! validate_props ) ﺘﻴﺠ ﺔ ؛ إذا
اﻟﻨ
6LL؛ = 6LL ﺘﻴﺠ ﺔ ؛
ﺘﻴﺠ ﺔ ؛ اﻟﻨ
اﻟﻨ
( ! v11 || ! * (_ QWORD *) (a2 + 24) ) إذا11 = a4 [4] اﻹﺻﺪار ؛
ﺒﻨﺎﻧﻴ ﺔ ؛
ﻟﻴﺮة ﻟ6 اﻟﻌﻮدة
ﺑﻌﺎ
ﺳﺎ
Machine Translated by Google
ﺛﺎﻣﻨﺎ
() ﺘﻴﺠ ﺔ ؛
اﻟﻨ7LL ﺗﺮﺟﻊ ؛
( * (_ QWORD *) v11 > 0x30uLL ) إذا ﻛﺎﻧ ﺖ ( ! hasher || إذا
ﺘﻴﺠ ﺔ ؛
ﺘﻴﺠ ﺔ ( إرﺟﺎع ﻧ
_( (ﻧDWORD) *( =إذاa4) ﺘﻴﺠ ﺔ إرﺟﺎع ؛
ﻧ،! ! validate_props-> validate_property )
،!
،!
( ﺘﻴﺠ ﺔ
إذا ) ﻧ
ﺘﻴﺠ ﺔ اﻟﻌﻮدة
ﻧ ﺘﻴﺠ ﺔ اﻟﻌﻮدة
ﻧ
Machine Translated by Google
ﺗﺎﺳﻌﺎ
ﺘﻴﺠ ﺔ ؛
ﺘﻴﺠ ﺔ ( إرﺟﺎع ﻧ
ﻧ manifest_item_digest، hash_size، hasher) ؛
ﺘﻴﺠ ﺔ اﻟﻌﻮدة ؛
ﺘﻴﺠ ﺔ ( ﻧ
إذا ) ﻧimg4->
( * (_ QWORD *) a4 [4] > 0x30uLL ) }إذا
ﺒﻨﺎﻧﻴ ﺔ ؛
ﻟﻴﺮة ﻟ7 اﻟﻌﻮدة
( (_DWORD) =إذاsub_100013144 (a2، & v15) ﺘﻴﺠ ﺔ ؛
اﻟﻨ pubKey.data = leafPubKey ؛toVerify.length =
15 ) { ﺘﻴﺠ ﺔ ؛ إذا ) اﻹﺻﺪار
ﺘﻴﺠ ﺔ ( إرﺟﺎع ﻧ
ﻧ pubKey.length = leafPubKeyLen ؛
( ﺘﻴﺠ ﺔ
_( (ﻧDWORD) _( *إذاQWORD *) a4 [4]، a4) ؛ should_verify_properties = 1 ؛
}
= ﺘﻴﺠ ﺔ
اﻟﻨ
ﺘﻴﺠ ﺔ اﻟﻌﻮدة
ﻧ ،! (img4، & img4-> man_b، & img4-> man_p) ؛
*(_BYTE *)a2 = 1; ،! ( ﺘﻴﺠ ﺔ
إذا ) ﻧDERImg4DecodeParseManifestProperties_0
ﺘﻴﺠ ﺔ
=إذا ﻛﺎﻧ ﺖ اﻟﻨsub_100013C14 (a2 + 56، 0LL، * a3،، ! a5) ﺘﻴﺠ ﺔ ؛
}اﻟﻨ
ﺘﻴﺠ ﺔ
ﻧsub_100013C14 (a2 + 72، 1LL، * a3،، ! a5) _( ! (إرﺟﺎع ؛DWORD) ) ﺘﻴﺠ ﺔ اﻟﻌﻮدة
ﻧ
اﻟﻌﻮدة =)اﻟﻨﻮع اﻟﻔﻌﻠ ﻲDERFindInSequence ( & img4-> man_b، ﺘﻴﺠ ﺔ
اﻟﻨ
| ،! (ASN1_PRIVATE | ASN1_CONSTRUCTED)) ،
،!
} | ASN1_SET ، found_manifest_item) ،
ASN1_CONSTRUCTED
found_manifest_item [1] .contentﺘﻴﺠ ﺔ اﻟﻌﻮدة ؛ ؛
ﺘﻴﺠ ﺔ ( ﻧ
إذا ) ﻧ
{ إذاimg4-> image_manifest = ،!
( should_verify_properties )
= ﺘﻴﺠ ﺔ
اﻟﻨ
،! 0x30uLL )
Img4DecodePayloadExists_0 (img4 ، ﺘﻴﺠ ﺔ
ﺒﻨﺎﻧﻴ ﺔ ؛ اﻟﻨ
ﻟﻴﺮة ﻟ7 اﻟﻌﻮدة
=
( ﺘﻴﺠ ﺔ
إذا ) ﻧpayload_exists) و ؛،!
Machine Translated by Google
،!
( ﺘﻴﺠ ﺔ
ﺋ ﺔ( ؛ إذا ) ﻧ
ﺘﺠﺰ
اﻟ
( ﺘﻴﺠ ﺔ
إذا ! (ﻧ
ﻳﻌﻮد
( 0_ اﻟﺨﺼﺎﺋﺺ، اﻟﻘﺎﻣﻮس،! Img4DecodeEvaluate ،
،!
،! Validate_props-> validate_property ،
،!
wrapper_ctxt) ؛
ﺘﻴﺠ ﺔ اﻟﻌﻮدة
ﻧ
}
Machine Translated by Google
اﻟﻤﻠﺤﻖ د
ﺘﻐﻄﻴ ﺔ اﻟﻜﺎﻣﻠ ﺔ
ﻣﻌﻠﻮﻣﺎ ت اﻟ
ذراع ﻗﺮاءة cntpct 3/3 1/5 1/27 1/1 4/4 1/2 4/5 2/3 14/18 3/4 20/22 12ب 1
ذراع ﻧﻈﻴﻔ ﺔ dcache
1/1
13/14
8/10
17/17
37/40
109/110
1/14/5
9/93/5
30/31
1/123/28
3/3
5/75/6
1/1
38/40
79/80
1/65/28
1/1
4/61/6
19
35/59
/1/1
75 4ب1
ﺋﻴ ﺔﺗﻮﻗﻊ
image4اﻟﺤﺼﻮل ﻋﲆ ﺟﺰ 155'084 4'765'040 348ب 12
ﺘﻜﺎﻣﻞ
ﺑﻴﺎن ﻣﺋﺔ
ﺗﺼﺎل interposer2'577 30'785اﻟﺤﺼﻮل ﻋﲆﺗﺠﺰ اﻻ 1468ب 43
93'915 93'915 1'205 24ب 1
ﺗﺤﻘﻖ ﻣﻦ رﻗﻢ
ﺗﺤﻤﻴﻞ Copyobject image4
image4 340ب 8
ﺘﺞ usb
ﻣﻨﺼ ﺔ اﻟﺤﺼﻮل ﻋﲆ ﻣﻌﺮف اﻟﻤﻨ 9'889 36ب 1
ﺘﺠﺎ ت USB
ﻣﻨﺼ ﺔ اﻟﺤﺼﻮل ﻋﲆﺳﻠ ﺴﻠ ﺔ ﻣﻨ 41'678 12ب 1
ﺘ ﺴﻠ ﺴﻠ ﻲ usb
ﻣﻨﺼ ﺔ اﻟﺤﺼﻮل ﻋﲆﺳﻠ ﺴﻠ ﺔ اﻟﺮﻗﻢ اﻟ 8'169 328ب 3
ﺋ ﺔ ﺣ ﺴﺎ ب
ﺗﺠﺰ 9'926 240ب 2
ﺜﺮ أﺧﺮى
ﻣﻨﺼ ﺔ اﻟﺤﺼﻮل ﻋﲆﺳﻠ ﺴﻠ ﺔ USBأﻛ 8'169 444ب 7
ﺘﻬﻠﻚﺗﻘﺮﻳﺮ nonceﻻ
اﻟﻨﻈﺎم اﻷﺳﺎﺳ ﻲﺗ ﺴ 9'889 112ب 1
ﺘﻘﺮﻳﺮ
ﻧﻮع ﻣﻦ اﻟ 51'063 32ب 1
100006E10اﻟﻔﺮﻋﻴ ﺔ 37 20ب 1
ﺑﻴﺎ
ﺘﺮو
ﻣﻨﺼ ﺔ اﻟﺤﺼﻮل ﻋﲆ اﻻﻧ 1'361 108ب 1
ﺘﻜﺎﻣﻠ ﺔ
ﺋﺔ ﻣ
اﻟﺤﺼﻮل ﻋﲆﺗﺠﺰ 8'169 24ب 1
اﻟﺤﺎدي ﻋﺸﺮ
Machine Translated by Google
ﺛﺎﻧ ﻲ ﻋﺸﺮ
ﺘﻤﻬﻴﺪ
ﺑﻴﺎن اﻟﺋﺔ
اﻟﺤﺼﻮل ﻋﲆﺗﺠﺰ memzero 30 2/3 5/6 1/1 8/8 3/3 68ب 2
ﺘﻴﻞ cfg
اﻟﺤﺼﻮل ﻋﲆ ﻓ 9 ' 889 1/1 5/5 3/5 18/21 56ب 1
100008284ﻓﺮﻋ ﻲ 212'430 15/20
2/33/4
7/11
12/15
9'808
9'808
2/4 48ب 1
ﺘﺎج اﻟﺤﺎﻟ ﻲ
chipidاﻟﺤﺼﻮل ﻋﲆ وﺿﻊ اﻹﻧ 8'336 37 3/4 11/12 9'931'267 32ب 1
ﺘﺮاﺿ ﻲ
cfg fuseاﻟﺤﺼﻮل ﻋﲆ اﻻﻓ 11/11
4/6 23/26
2/3 12/14
1/1 8/8
1/1 1/1
8/8 56ب 1
ﺘﺎج اﻟﺨﺎم
chipidاﻟﺤﺼﻮل ﻋﲆ وﺿﻊ اﻹﻧ 28/34 2/4 8/18 1/1 7/7 32ب 1
chipidاﻟﺤﺼﻮل ﻋﲆ اﻟﻮﺿﻊ اﻵﻣﻦ 3/5 65/93 4/6 22/33 7/9 32ب 1
chipidاﻟﺤﺼﻮل ﻋﲆ ﻣﺠﺎل اﻷﻣﺎن 1/1 6/6 1/1 5/5 1/1 1 / 1 92ب 1
chipidاﻟﺤﺼﻮل ﻋﲆ ﻣﺠﻠ ﺲ ﻣﻌﺮف ﻣﻨﺼ ﺔ اﻟﺤﺼﻮل 1/1 4/4 1/1 4/4 1/1 2/2 24ب 1
428'374102'047110'383103'804102'047102'047
ﻋﲆ ﻋﺼﺮ اﻷﻣﻦ 1 6/6 1/1 6/6 1/1 21/21 24ب 1
chipidاﻟﺤﺼﻮل ﻋﲆ ﻣﻌﺮف رﻗﺎﻗ ﺔ 102'047 1/1 6/6 1/1 14/14 1 / 8ب1
chipidاﻟﺤﺼﻮل ﻋﲆ ﻣﺮاﺟﻌ ﺔ رﻗﺎﻗ ﺔ 8'132 4/4 4/4 12/12 1/1 11/11 32ب 1
chipidاﻟﺤﺼﻮل ﻋﲆ ﻣﻌﺮف ecid 102'047 3/7 6/15 4/10 8/21 1/1 28ب 1
ﻧﻮﻟ ﺴﻮ ب 7 10'759204 1/1 1/1 4ب1
ﺑﻬﺎﺛﻮق
ﻣﺠﻤﻮﻋ ﺔ اﻷﻣﺎن ﻏﻴﺮ ﻣﻮ ﻣﺠﻤﻮﻋ ﺔ 36ب 1
ﺒﻴﺎن
ﺘﺎج اﻟﻔﻌﺎﻟ ﺔ 204204ﻣﺠﻤﻮﻋ ﺔ اﻷﻣﺎن ﻟ ﺗﺄﻣﻴﻦ اﻹﻧ
ﺘﺎج اﻟﺤﺼﻮل ﻋﲆ ﺣﺎﻟ ﺔ اﻹﻧ ﺗﺠﺎوز 36ب 1
ﺘﻈﺎر واﺣﺪة
ﺘﻈﺎر ﻗﺎﺋﻤ ﺔ اﻧ
اﻧ 80ب 3
ﻗﺎﺋﻤ ﺔ إزاﻟ ﺔ اﻟﺮأس 60ب 2
ﺗﻬﻴﺌ ﺔ اﻟﺤﺪ ث 20ب 1
ﺜﺎﻟ ﺚ ﻋﺸﺮ
اﻟ
اﻟﺤﺼﻮل ﻋﲆﺳﻠ ﺴﻠ ﺔ mib 10'776 28/28107/107 7/9 42/54 3/3 88ب 1
ﺗﺤﻤﻴﻞ اﻟﺼﻮرة
11'732 36/38 5 / 5 23/23 3/3 56/56 336ب 12
ﺘﺨﺪام
اﻟﻘﺮاد ﻟﻜﻞ اﺳ 1/1 13/13 9'931'268 1/1 2/2 1/1 1/1 7'147 '561 112ب 3
ﺳﺠﻞﺗﺤﻜﻢ USB
76ب 2
ﺗﺤﻜﻢ اﻟﺤﺮف اﻷول
USB 108ب 1
ﺒﺪأ وﺣﺪةﺗﺤﻜﻢ USB
ﺗ 56ب 1
10000DC70اﻟﻔﺮﻋ ﻲ 9'808 56ب 1
ﺗﻌﻴﻴﻦ ﻋﻨﻮان وﺣﺪةﺗﺤﻜﻢ USB 3'669 56ب 1
ﺗﺼﺎل
ﺗﺤﺼﻞ ﻋﲆﺳﺮﻋ ﺔ اﻻ
وﺣﺪةﺗﺤﻜﻢ USB
9'915 56ب 1
USBإﻧﺸﺎء واﺻﻒﺳﻠ ﺴﻠ ﺔ
9'808 84ب 3
ﺑﺪاﻳ ﺔ USBاﻷﺳﺎﺳﻴ ﺔ 25'401 780ب 13
getDFUImage
9'922 96ب 3
usb dfu init 9'889 228ب 2
ﺘﻌﺎﻣﻞ ﻣﻊ ﻃﻠ ﺐ واﺟﻬ ﺔ
USB dfuاﻟ
64'643 460ب 12
ﺑﻴﺎﻧﺎ ت USB dfuﺘﻼم
ﺗﻢ اﺳ 1'575'369 220ب 3
ﺘﻌﺎﻣﻞ ﻣﻊ إﻋﺎدةﺗﻌﻴﻴﻦ اﻟﺤﺎﻓﻠ ﺔ
اﻟ 9'808 36ب 1
ﻣﺨﺮج USB dfu 3'166 84ب 3
ﻣﺤﺎذاة siphash
11'518 432ب 12
ﻛﻮﻣ ﺔﺗﺨﺼﻴﺺ
54'687 256ب 4
اﻟﺤﺠﻢ اﻟﻤﻄﻠﻮ ب
46'746 60ب 1
Machine Translated by Google
ﺑﻊ ﻋﺸﺮ
اﻟﺮا
ﺘﻠ ﺔ اﻟﺤﺸﻮ
ﺘﺤﻘﻖ ﻣﻦ ﻛ
ﺑﻤﺎ اﻟ
ر 172'167 18 / 25 6/10 22/34 2/3 7/11 84ب 4
calloc 603'033 9/9 24'397 17/20 54/60 4/6 28ب 2
ﺘﻠ ﺔ
ﺒﺎري ﻟﻠﻜ
ﺘﺗﺤﻘﻖ ﻣﻦ اﻟﻤﺠﻤﻮع اﻻﺧ 73'958 16'278 1'332'108 3/3 6/6 5/5 92ب 1
ﻛﻮﻣ ﺔ ﻣﺠﺎﻧﻴ ﺔ 46'746 24'397 8/8 35/35 6/7 21/26 516ب 13
ﺘﻠ ﺔ
ﺒﺎري ﻟﻠﻜ
ﺘﺣ ﺴﺎ ب اﻟﻤﺠﻤﻮع اﻻﺧ 972'336 42/42 5/5 13/13331 '278 28ب 1
ﻛﻮﻣ ﺔ memalign 2'002 12/21
1/4
59/108
8/30342'034
29'383'810
9/9 664ب 8
ﺘﻠ ﺔ اﻟﺤﺸﻮ
ﺗﺤﻘﻖ ﻣﻦ ﻛ 138'683 2/2
2/25/5
3/34/4
2/316/16
3/10 5'667'507
3/3 15/15 116ب 5
إﺿﺎﻓ ﺔ ﻗﺎﺋﻤ ﺔ ﻣﺠﺎﻧﻴ ﺔ 232'175 3/3 22/22/3 14/18 164ب 3
ﻛﻮﻣ ﺔ إﺿﺎﻓ ﺔ ﻗﻄﻌ ﺔ 0 46'746 4/5
1/1
14/18
2/2 1/1
58/128202/466
1 / 1 1/1 8/8 424ب 11
ﻛﻮﻣ ﺔ إﺿﺎﻓ ﺔ ﻗﻄﻌ ﺔ 91'937 15/19 6/9 26/35 6/7 70/74 20ب 1
ﺒﺎط
ﺗﻣﺠﻤﻮﻋ ﺔ ﻛﻮﻣ ﺔ ﻣﻠﻒﺗﻌﺮﻳﻒ اﻻر 91'937 5/5 2/2 12/12 4/5 14/15 4/5 52ب 1
اﻟﻔﺮﻋﻴ ﺔ 1000108E8 91'937 3/8 26/41 9 / 16 78/101 2/2 60ب 3
ﺣﺠﻢ داﺋﺮي 185'429 6/6 1/18 1/166 8/10 27/29 76ب 3
إزاﻟ ﺔ ﻗﺎﺋﻤ ﺔ ﻣﺠﺎﻧﻴ ﺔ 93'492 21/22 17/22104/127 1/1 140ب 6
اﻧﻘ ﺴﺎم اﻟﺬﻳﻞ 46'746 6/8 17/21 3/3 7/7 2/3 296ب 3
ﻣﺎﻟﻮك 46'746 8ب1
ﺣﺮ 4ب1
memset s 32ب 1
memsetﻏﺮﻳ ﺐ 72ب 3
ﺗﻔﻌﻞ printf 1864ب 72
اﻟﻔﺮﻋﻴ ﺔ 1000114BC 88ب 2
58'456 69'820 69'820439'265439'265439'232
snprintf 72ب 1
100011648اﻟﻔﺮﻋ ﻲ 37 20ب 1
ﻳﻀﻊ 185 64ب 2
ﻋﻔﺮﻳ ﺖ 444 60ب 2
strlcat 24'397 12ب 1
strlcpy 16'278 40ب 1
memcpy 432ب 11
ﺻﻔﺮ 120ب 3
memset 168ب 6
memcmp 52ب 3
ﻓﺮﻋ ﻲ 100011ACC 140ب 5
اﻟﻔﺮﻋﻴ ﺔ 100011B58 104ب 3
ﺘﺮﻟﻴﻦ
ﺳ 24ب 2
ﺑﺤﺮﻳﻨ ﻲ 8100011دﻳﻨﺎر 36ب 3
ﺒﺤ ﺚ mib
ﻋﻘﺪة اﻟ 142'556 240ب 9
ﺜﻮر ﻋﲆ mib
اﻟﻌ 142'556 100ب 2
ﺘﺮد mibاﻟﻘﻴﻤ ﺔ
ﺑﻤﺎﻳ ﺴ
ر 142'556 136ب 4
اﻟﺤﺼﻮل ﻋﲆ ﺣﺠﻢ mib 8'169 1/1 12/12 7/20 42/101 8'169 1/1 9/9 44ب 1
ﺘﺨﺰﻳﻦ اﻟﻤﺆﻗ ﺖ mib
اﻟﺤﺼﻮل ﻋﲆ ذاﻛﺮة اﻟ
5/6 26/30 142'556 5/7 21/34 5/11 25/79 8'169 120ب 4
اﻟﺤﺼﻮل ﻋﲆ ﻗﻴﻤ ﺔ mib 142'556 3'245'842 136ب 1
ﺑﻴﺎ
ﺘﺮو
ﻣﺼﺪر إﻧ 324ب 6
ﻓﺮﻋ ﻲ 1000122CC 48ب 1
ﺑﺎﻳ ﺖ اﻟﺪاﺧﻠﻴ ﺔﻋﺸﻮاﺋﻴ ﺔ اﻟﺤﺼﻮل ﻋﲆ 408ب 9
ﺑﺎﻳ ﺖﻋﺸﻮاﺋﻴ ﺔ اﻟﺤﺼﻮل ﻋﲆ 8'169 36ب 1
أدﺧﻞ ﻗ ﺴﻢ ﺣﺮج
7'362'621 4/7 14/24 96ب 2
Machine Translated by Google
اﻟﺨﺎﻣ ﺲ ﻋﺸﺮ
اﻟﺨﺮوج ﻣﻦ اﻟﻘ ﺴﻢ اﻟﺤﺮج 96/97 1/1 3/3 1/1 14/14 9/10 19/21 2/2 10/10 76ب 1
ﺘﺎج اﻟﺤﺎﻟ ﻲ
ﻣﻨﺼ ﺔ اﻟﺤﺼﻮل ﻋﲆ وﺿﻊ اﻹﻧ 31/35
14/14
68/70
4/5
38/38
8/8
29/31
47/47
249/14
/ 31/35
25132/133
38/46
146/158
23/34
23/25
23/27
115/135
97/99
115/121
22/23
14/15 4ب1
ﺘﺎج اﻟﺨﺎم
ﻣﻨﺼ ﺔ اﻟﺤﺼﻮل ﻋﲆ وﺿﻊ اﻹﻧ 10/14
39/39 12/18
45 / 49
9/10 51/70
8/828/30
14/14 4/4 59/61
11/12
6/10 10/10 7/9
24/28 12/19
10/11 42/59
52/55
28/29 6/9
11/13
6/8 4ب1
ﺒﺔ
ﻣﻨﺼ ﺔ اﻟﺤﺼﻮل ﻋﲆ اﻷﺟﻬﺰة اﻟﺤﻘ 93'915 7'352'768 4ب1
ﻣﻨﺼ ﺔ اﻟﺤﺼﻮل ﻋﲆ ﻣﻨﺼ ﺔﺳﻠ ﺴﻠ ﺔ USBاﻟﻤﺼﻨﻌ ﺔ ﻟﻠﺤﺼﻮل ﻋﲆ إﺻﺪار ﺟﻬﺎز 12ب 1
ﺋﻴ ﺴ ﻲ دﻳﺮ
ﺗﺤﻠﻴﻞ img4اﻟﺮ 216ب 8
ﺘﺮداد دﻳﺮ
ﺗﺤﻠﻴﻞ اﺳ 124ب 7
ﺑﺎﻟﺮﻳﺎلﺘﻮﻗﻴﻊ
ﺘﺤﻘﻖ ﻣﻦ اﻟ
اﻟ 9'368 484ب 19
ﺘﺤﻠﻴﻞ
ﺳﻠ ﺴﻠ ﺔ اﻟ 30'785 532ب 20
ﺘﺤﻠﻴﻞ
ﺗﺤﻘﻖ ﻣﻦﺳﻠ ﺴﻠ ﺔ اﻟ 8'830 388ب 18
ﺘﺤﻠﻴﻞ
ﺳﻠ ﺴﻠ ﺔ ﺷﻬﺎدة اﻟ 15'571 12ب 1
ﺟﺬرﺳﻠ ﺴﻠ ﺔ اﻟﻜﺮاك 12'278 56ب 1
ﻣﻠﺤﻘﺎ تﺗﺤﻠﻴﻞ
95'315 12 ب13/13
1/1 18/18 9/13 54/78 51'535 26'516'946 1/1 316
DERParseInteger
14/15 56/57 16/16 78/78 1/1 2/2 24/26 76/81 22/22
3 ب69/69
124
DERParseInteger64
8 ب128
ﻣﺮة أﺧﺮىDERDecodeSeqInitA
3 ب160
DERDecodeSeqContentInit
1 ب28
DERDecodeSeqNext
3 ب152
DERParse ﺘ ﺴﻠ ﺴﻞ
اﻟ
3 ب176
DERParseSequenceContent
409'970 19 ب532
DEROidCompare
140'240 1 ب40
memcmp 0
50'280 1 ب44
ccn cmp 0
3 ب52
ﻣﻮلccn 5 ب172
ccdigest
1 ب216
cc mux2p ﺗﺤﺪﻳ ﺚ
7 ب312
1 ب52
اﻟﻔﺮﻋﻴ ﺔ10001B9F4 12/12 162/162 51'535 9'368 1/1 8/8 5/6 137 / 138150'484 1 /31ب26/26
664
uint ﺑﺤﺠﻢﺑﺔ
ﺘﺎ
اﻟﻜccn 1 ب32
ﻧ ﺴﺨ ﺔ واﺿﺤ ﺔ 1 ب24
10001BE78 6 ب368
1 ﻟﻠﻴﻤﻴﻦccn ﺗﺤﻮﻳﻞ
9 ب304
ﺑﻊ ﻋﺸﺮ
اﻟ ﺴﺎ
ﺋ ﺔ اﻟﻀﻤﻨﻴ ﺔ
ﺘﺠﺰ
اﻟﺤﺼﻮل ﻋﲆ اﻟ 223'377 1/1 3/3 1/1 8/8 4/4 11/11 12ب 1
ﺳﻢ ﻣﻜﻌ ﺐ muxp 150'484 32ب 1
ccnن 0 104'661 44ب 3