我正在使用Python编写一个程序,希望用户能够保存他们正在处理的数据.我看过cPickle; 它似乎是一种快速简便的数据保存方式,似乎不安全.由于可以腌制整个函数,类等,我担心流氓保存文件会将有害代码注入程序.有没有办法可以阻止这种情况,或者我应该考虑其他保存数据的方法,例如直接转换为字符串(这似乎也是不安全的),或者创建XML层次结构,并将数据放入其中.
我是python的新手,所以请耐心等待.
提前致谢!
编辑:至于我存储的数据类型,主要是字典和列表.名称,速度等信息现在相当简单,但未来可能会变得更加复杂.
在ARMv7-A处理器上,我正在寻找一种从任何模式确定处理器的当前模式(用户,主管,IRQ等)的简单方法。这将使我能够动态决定是否执行某些操作,例如打主管电话或直接执行操作。
乍一看,这似乎很简单。在CPSR
含有(M
)模式比特,其确定处理器模式。
《 ARMv7-A体系结构参考手册》的修订版Cb的第1150页的B1.3.3节(程序状态寄存器)指出:
该字段只能写入PL1或更高版本。可以在任何模式下读取其值,但是ARM会不赞成在PL0执行的软件使用其值或尝试对其进行更改。
因此,CPSR.M
在用户模式下不建议使用这些位,但是应该可以使用。
但是,继续实际使用MRS
(我知道的唯一方法)读取CPSR 。ARM 1988年的B9.3.8节(MRS)指出:
在用户模式下执行并访问CPSR的MRS返回CPSR。{E,A,I,F,M}字段的UNKNOWN值。
由于这些字段是未知的,因此似乎没有一种从用户模式读取模式位的方法。是否存在从用户模式读取CPSR的替代方法,或者确定正在执行哪种模式代码的替代方法?
我可能会检测未定义的指令异常,并尝试在用户模式下执行非法指令,但我希望有更好的方法。