[Main] [Docs] [Installs] [Search] [Team] [Guestbook] [Links]

×ñçóéìïðïéþíôáò ôéò resload_Protect#?

Èåùñßá

ÕðÜñ÷ïõí äéÜöïñåò ðåñéðôþóåéò óôéò ïðïßåò ßóùò åßíáé ðïëý ÷ñÞóéìï íá ðëçñïöïñåßóôå üôáí ôï åãêáôåóôçìÝíï ðñüãñáììá Ý÷åé ðñïóâÜóåéò óå óõãêåêñéìÝíåò ðåñéï÷Ýò ìíÞìçò. Ìå ôéò óõíáñôÞóåéò resload_Protect#? åßíáé äõíáôüí íá ðñïóôáôåõôïýí ìåñéêÝò ðåñéï÷Ýò ìíÞìçò áðü áíÜãíùóç êáé/Þ åããñáöÞ áðü ôïí åðåîåñãáóôÞ. Ðñïóôáóßá óçìáßíåé üôé êÜèå ðñüóâáóç óå ôÝôïéá ðñïóôáôåõüìåíç ðåñéï÷Þ èá äçìéïõñãÞóåé ìéá åîáßñåóç Access Fault ðïõ èá Ý÷åé óáò áðïôÝëåóìá Ýíáí áíôßóôïé÷ï åðéëïãÝá áðü ôï WHDLoad. Áí ïñßóåôå ìéá ðåñéï÷Þ ìíÞìçò ùò ðñïóôáôåõüìåíç ÷ñçóéìïðïéþíôáò ôç óõíÜñôçóç resload_Protect#? ôï WHDLoad èá ôñïðïðïéÞóåé ôéò ðåñéãñáöÝò ôùí åðçñåáæüìåíùí óåëßäùí óôï äÝíôñï ìåôÜöñáóçò ôïõ MMU. Ôþñá êÜèå ðñüóâáóç óôç ðñïóôáôåõüìåíç óåëßäá áðü ôï CPU èá äçìéïõñãÞóåé ìéá åîáßñåóç Access Fault. Ï ÷åéñéóôÞò åîáéñÝóåùí ìÝóá óôï WHDLoad èá åðéâåâáéþóåé ôï ëüãï ãéá ôçí åîáßñåóç. Áí ï ëüãïò Þôáí ìéá ðñüóâáóç óå ðñïóôáôåõìÝíç óåëßäá áëëÜ ç ðñüóâáóç äåí ôáéñéÜæåé ìå ôçí ðñïóôáôåõüìåíç ðåñéï÷Þ ç ðñüóâáóç èá åîïìïéùèåß, êáé èá óõíå÷éóôåß ç êáíïíéêÞ åêôÝëåóç ôïõ ðñïãñÜììáôïò. ÄéáöïñåôéêÜ ôï WHDLoad èá ôåñìáôéóôåß ìå Ýíáí êáôÜëëçëï åðéëïãÝá. Áí ç ðñüóâáóç Þôáí ìéá ðñüóâáóç óôç ñïÞ åíôïëþí (ð.÷. ç CPU ðñïóðáèåß íá öïñôþóåé êþäéêá) èá åîïìïéùèåß ðÜíôá, Þ ìå Üëëá ëüãéá ïé óõíáñôÞóåéò resload_Protect#? åðçñåÜæïõí ìüíï áíÜãíùóç êáé åããñáöÞ äåäïìÝíùí. Ôï ãåãïíüò üôé êÜèå ðñüóâáóç óå ðñïóôáôåõüìåíç óåëßäá (ôï ìÝãåèïò óåëßäáò ðñïò ôï ðáñüí åßíáé 4096 bytes) èá äçìéïõñãÞóåé Ýíá óöÜëìá ðñüóâáóçò, áêüìá êáé áí ç ðñïóôáôåõüìåíç ðåñéï÷Þ Ý÷åé ìÞêïò ìüíï 1 byte, Ý÷åé ùò áðïôÝëåóìá ìéá óçìáíôéêÞ êáèõóôÝñçóç ôçò ôá÷ýôçôáò åêôÝëåóçò ôïõ ðñïãñÜììáôïò. ÅéäéêÜ áí êïììÜôéá ôïõ êþäéêá âñßóêïíôáé óôçí ßäéá óåëßäá. Áí ôï ðñüãñáììá åîáñôÜôáé áðü ôçí ôá÷ýôçôá åêôÝëåóçò, åßíáé ðéèáíÝò ïé äéáöïñÝò óôçí åêôÝëåóç. Ïðüôå åßíáé ðéèáíüí ìåñéêÜ ðñïãñÜììáôá íá ìçí ëåéôïõñãÞóïõí ìå ôï ÷áñáêôçñéóôéêü ðñïóôáóßáò resload_Protect.

ÐáñÜäåéãìá: checksums ðÜíù óå êþäéêá

Áí åãêáôáóôÞóåôå Ýíá ðáé÷íßäé ÷ñçóéìïðïéþíôáò ôï WHDLoad ðñÝðåé íá äéïñèþóåôå ôéò áñ÷éêÝò ñïõôßíåò ôïõ loader óôï ðáé÷íßäé ìå ôÝôïéï ôñüðï þóôå áõôÝò íá ÷ñçóéìïðïéïýí ôï WHDLoad ãéá íá öïñôþóïõí ôá äåäïìÝíá ôïõ ðáé÷íéäéïý. ÌåñéêÜ ðáé÷íßäéá ðñáãìáôïðïéïýí checksums ðÜíù óå óõãêåêñéìÝíåò ðåñéï÷Ýò êþäéêá ãéá íá áíáêáëýøïõí áí ï áõèåíôéêüò êþäéêáò Ý÷åé áëëá÷èåß. ÁõôÝò ïé ñïõôßíåò åëÝã÷ïõ ìðïñåß ìåñéêÝò öïñÝò íá åßíáé äõóåýñåôåò. ÁëëÜ ÷ñçóéìïðïéþíôáò ôéò óõíáñôÞóåéò resload_Protect#? óôï WHDLoad èá åßíáé åýêïëï. Ôï ìüíï ðïõ ðñÝðåé íá êÜíåôå åßíáé íá ðñïóôáôÝøåôå ôá bytes ðïõ áëëÜîáôå óôï êþäéêá ôïõ ðáé÷íéäéïý áðü áíÜãíùóç. Ôþñá êÜèå ñïõôßíá ðïõ ðñïóðáèåß íá êÜíåé Ýíá checksum êáé íá äéáâÜóåé ôï äéïñèùìÝíï êþäéêÜ óáò èá ðñïêáëÝóåé Ýíá óöÜëìá ðñüóâáóçò. Êáé èá îÝñåôå ðïõ âñßóêåôáé ç ñïõôßíá.

Ðåñéïñéóìïß

Äåí ðñÝðåé íá ðñïóôáôÝøåôå ôç óåëßäá ìíÞìçò óôçí ïðïßá äåß÷íåé ôï SSP. Áí ôï êÜíåôå êáé ðáñïõóéáóôåß ìéá åîáßñåóç, èá Ý÷åé ùò áðïôÝëåóìá Ýíá Double Bus Fault äéüôé ç CPU äåí èá ìðïñåß íá ãñÜøåé ôï ðëáßóéï óôïßâáò (stackframe) åîáéñÝóåùí. ÌåôÜ áðü Ýíá Double Bus Fault ìüíï ìéá åðáíåêêßíçóç ìðïñåß íá óõíå÷ßóåé ôçí åêôÝëåóç. Ôï WHDLoad åëÝã÷åé ãéá óýãêñïõóç ôùí ðñïóôáôåõüìåíùí ðåñéï÷þí ìå ôï SSP êáé ôåñìáôßæåôáé áí õðÜñîåé. ÁëëÜ áõôü äåí èá âïçèÞóåé áí ôï SSP áëëÜîåé ìåôÜ.

Ãéá ðåñéóóüôåñïõò ðåñéïñéóìïýò êáé ðëçñïöïñßåò ðáñáêáëþ åëÝãîôå ôéò êáôá÷ùñÞóåéò Autodoc ãéá ôá äéÜöïñá ÷áñáêôçñéóôéêÜ ôïõ resload_Protect:


[Main] [Docs] [Installs] [Search] [Team] [Guestbook] [Links]