Wednesday, March 16, 2016

Reverse Engineering- ээс хамгаалах(үргэлжлэл)

RDTSC

RDTSC буюу 32 битийн инструкц Read Time-Stamp.  Өөрөө өөрийгөө өөрчилдөг. Пентиум процессороос хойшхи загварууд дээр процессорлуу тоологч нэмэгдсэн, клок цикл бүр дээр өссөн нэмэгддэг, процессор нь 0 болох үед дахин ачааллана. timig attack-н нэг сайн зүйл нь энгийнээс арай гайгүй гүйцэтгэлтэй юм, бшх хөгжүүлэгч нар timing attack-ийг ашиглаж хамгаалах функцийг шийдэх хэрэгтэй, тэгээд энэ нь кодын блокуудыг энгийнээр бүслэж програм зохиогчийн тавьсан хязгаартай харьцуулна, энэ ихээр ажилласан бол програм хаагдана.

Win32 timing Функц
Windows internals
Windows үйлдлийн системийн онцлог нэг шинж нь хамгаалалтын эрэмблэдэг, дебагаас ирж байгаа урсгалыг нуух, дебаггер байгаа илрүүлэх. ntdll.dll-с экспортлож ашигладаг. 
ProcessorDebugFlags
ProcessDebugFlags (0x1f) нь NtQueryProcessInformation функцруу undocument байдлаар өгнө. NtQueryProcessInformation нь ProcessDebugFlags энэ классыг дуудна, хэрвээ дебаггер хийх юм бол EPROCESS->NoDebugInherit - энэний эсрэг утгыг буцаана. дебаггер хийгдсэн бол false утга буцаана. 
CheckProcessDebugFlags:

BlockInput

Програмын хамрах хүрээнээс шаардсан, гар болон хулганы блокууд байна , Энэ техник нь зөвхөн bloackinput-ийг дуудсан урсгалд хүчин төгөлдөр байна, 

OutputDebugString

OutputDebugString нь OutputDebugString - ийн алдааг хайж олоод ажиллана. тэмдэгт хүлээж авах ямар ч идэвхгүй дебаггер байгаа бол энд алдаа заана, OutputDebugString -ийг дуудаж алдаагүй бол энийг дуусгана.

Open Process

Хэрвээ процесс нь дебаггерийн дор шууд ажиллаж байвал, захиалганд халдлага хайх болно. Хэрвээ процесс нь дебаггер-р зөв биш ресет хийх юм бол процесс нь SeDebugPrivilege ямар нэгэн процессру нээлттэйгээр хандахыг зөвшөөрнө.csrss.exe-г дэмжиж ажиллана.






No comments:

Post a Comment