Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
10
Task/Break-OO-privacy/Ada/break-oo-privacy-1.ada
Normal file
10
Task/Break-OO-privacy/Ada/break-oo-privacy-1.ada
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
package OO_Privacy is
|
||||
|
||||
type Confidential_Stuff is tagged private;
|
||||
subtype Password_Type is String(1 .. 8);
|
||||
|
||||
private
|
||||
type Confidential_Stuff is tagged record
|
||||
Password: Password_Type := "default!"; -- the "secret"
|
||||
end record;
|
||||
end OO_Privacy;
|
||||
16
Task/Break-OO-privacy/Ada/break-oo-privacy-2.ada
Normal file
16
Task/Break-OO-privacy/Ada/break-oo-privacy-2.ada
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
with OO_Privacy, Ada.Unchecked_Conversion, Ada.Text_IO;
|
||||
|
||||
procedure OO_Break_Privacy is
|
||||
|
||||
type Hacker_Stuff is tagged record
|
||||
Password: OO_Privacy.Password_Type := "?unknown";
|
||||
end record;
|
||||
|
||||
function Hack is new Ada.Unchecked_Conversion
|
||||
(Source => OO_Privacy.Confidential_Stuff, Target => Hacker_Stuff);
|
||||
|
||||
C: OO_Privacy.Confidential_Stuff; -- which password is hidden inside C?
|
||||
|
||||
begin
|
||||
Ada.Text_IO.Put_Line("The secret password is """ & Hack(C).Password & """");
|
||||
end OO_Break_Privacy;
|
||||
5
Task/Break-OO-privacy/Ada/break-oo-privacy-3.ada
Normal file
5
Task/Break-OO-privacy/Ada/break-oo-privacy-3.ada
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
package OO_Privacy.Friend is -- child package of OO.Privacy
|
||||
|
||||
function Get_Password(Secret: Confidential_Stuff) return String;
|
||||
|
||||
end OO_Privacy.Friend;
|
||||
6
Task/Break-OO-privacy/Ada/break-oo-privacy-4.ada
Normal file
6
Task/Break-OO-privacy/Ada/break-oo-privacy-4.ada
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
package body OO_Privacy.Friend is -- implementation of the child package
|
||||
|
||||
function Get_Password(Secret: Confidential_Stuff) return String is
|
||||
(Secret.Password);
|
||||
|
||||
end OO_Privacy.Friend;
|
||||
11
Task/Break-OO-privacy/Ada/break-oo-privacy-5.ada
Normal file
11
Task/Break-OO-privacy/Ada/break-oo-privacy-5.ada
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
with OO_Privacy.Friend, Ada.Text_IO;
|
||||
|
||||
procedure Bypass_OO_Privacy is
|
||||
|
||||
C: OO_Privacy.Confidential_Stuff; -- which password is hidden inside C?
|
||||
|
||||
begin
|
||||
Ada.Text_IO.Put_Line("Password: """ &
|
||||
OO_Privacy.Friend.Get_Password(C) &
|
||||
"""");
|
||||
end Bypass_OO_Privacy;
|
||||
Loading…
Add table
Add a link
Reference in a new issue