Liva
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* Livaの自己紹介ページ
-(by [[Liva]], 2013.06.20)
** だぁれだ?
- OSECPUのMac OS Xサポートをした人。
- 今はLLVMからOSECPUバイナリを吐かせようと頑張ってます。-...
** いろいろ
- サイボウズ・ラボユース1期生サブメンバー
- セキュリティ&プログラミングキャンプ2011 セキュアなOSを...
- セキュリティキャンプ2013 セキュアなシステムを作ろうクラ...
** Generic Container
osecpu072dをベースにして、汎用コンテナを作ってみました。
差分は以下のページから見れます。
https://github.com/liva/osecpu/commit/5248115243915b1ee98...
osecpu.cがSJISなもんで、コメントが文字化けしてます。コメ...
さて、汎用コンテナって何ぞや?という話と、使い方を解説し...
(ちなみに、以下で出てくる「整数データ」とは、ポインタと...
今現在、OSECPUのmallocで確保したメモリ領域(配列)には、...
この仕様は、普通にASKAでOSECPU開発をしている人にとっては...
というわけで、ポインタも整数データも突っ込める配列、名づ...
さて、使い方をグダグダと喋ってもアレなので、以下のコード...
#br
>#include "osecpu_ask.h"
#br
> junkApi_malloc(P02, T_VOID, 18);
> LIMM(R00,0x8);
> LIMM(R01,0x1);
> LIMM(R02,0x7);
> SMEM0(R00,T_VOID,P02);
> SMEM0(R00,T_VOID,P02); // 二重書き込みはOK
> LMEM0(R00,T_VOID,P02); // 読み出しもOK
#br
>// PSMEM0(P03,T_VOID,P02); // 同じ所に別の型で書き込ん...
>// PLMEM0(P03,T_VOID,P02); // 同じ所を別の型で読み出し...
#br
> PADD(P03,T_VOID,P02,R01);
> junkApi_malloc(P04, T_UINT32, 1024 * 1024);
> PSMEM0(P04,T_VOID,P03); // まだ書き込みが無い所に別の...
> PLMEM0(P04,T_VOID,P03); // もちろん、読み出しもOK
#br
>// SMEM0(R01,T_VOID,P03);
>// LMEM0(R02,T_VOID,P03);
#br
> PADD(P05,T_VOID,P03,R02);
>// SMEM0(R01,T_VOID,P05); // ポインタを代入した場所か...
#br
> PADD(P05,T_VOID,P05,R01);
> SMEM0(R02,T_VOID,P05); // 32バイトを超えれば書き込...
> LMEM0(R02,T_VOID,P05);
#br
> PADD(P05,T_VOID,P05,R01);
> PCP(P06,P05);
> PCP(P07,P06);
#br
> PADD(P05,T_VOID,P05,R01);
>// PSMEM0(P04,T_VOID,P05); // 最後尾から28バイト領域に...
> SMEM0(R02,T_VOID,P05); // 最後尾28バイト領域はmallo...
#br
> PADD(P06,T_VOID,P06,R02);
> SMEM0(R02,T_VOID,P06); // 整数データはギリギリまで...
#br
> PSMEM0(P04,T_VOID,P07); // 最後尾から32バイトならポ...
>// SMEM0(R02,T_VOID,P06); // ただし、一度ポインタを書...
#br
32ビットのT_VOID型というのを新しく作りました。T_VOID型配...
さて、この汎用コンテナ、「何でも突っ込める=セキュリティ...
- 一度データを格納したら、そこに別の種類のデータを格納す...
- ポインタは整数データの8倍の大きさがあり、このポインタ...
- 最後尾から28バイトにポインタを格納する事はできない。
- 実装の都合上、PLMT0,PLMT1命令はこの汎用コンテナに対して...
詳しい事は上のコードを読んで下さい。(ASKA書けないので、O...
ちなみに、汎用コンテナにポインタを書き込む時、型指定は(...
** こめんと欄
-今まではちょっと別の所でOSECPUに関わってましたが、セキュ...
#comment
終了行:
* Livaの自己紹介ページ
-(by [[Liva]], 2013.06.20)
** だぁれだ?
- OSECPUのMac OS Xサポートをした人。
- 今はLLVMからOSECPUバイナリを吐かせようと頑張ってます。-...
** いろいろ
- サイボウズ・ラボユース1期生サブメンバー
- セキュリティ&プログラミングキャンプ2011 セキュアなOSを...
- セキュリティキャンプ2013 セキュアなシステムを作ろうクラ...
** Generic Container
osecpu072dをベースにして、汎用コンテナを作ってみました。
差分は以下のページから見れます。
https://github.com/liva/osecpu/commit/5248115243915b1ee98...
osecpu.cがSJISなもんで、コメントが文字化けしてます。コメ...
さて、汎用コンテナって何ぞや?という話と、使い方を解説し...
(ちなみに、以下で出てくる「整数データ」とは、ポインタと...
今現在、OSECPUのmallocで確保したメモリ領域(配列)には、...
この仕様は、普通にASKAでOSECPU開発をしている人にとっては...
というわけで、ポインタも整数データも突っ込める配列、名づ...
さて、使い方をグダグダと喋ってもアレなので、以下のコード...
#br
>#include "osecpu_ask.h"
#br
> junkApi_malloc(P02, T_VOID, 18);
> LIMM(R00,0x8);
> LIMM(R01,0x1);
> LIMM(R02,0x7);
> SMEM0(R00,T_VOID,P02);
> SMEM0(R00,T_VOID,P02); // 二重書き込みはOK
> LMEM0(R00,T_VOID,P02); // 読み出しもOK
#br
>// PSMEM0(P03,T_VOID,P02); // 同じ所に別の型で書き込ん...
>// PLMEM0(P03,T_VOID,P02); // 同じ所を別の型で読み出し...
#br
> PADD(P03,T_VOID,P02,R01);
> junkApi_malloc(P04, T_UINT32, 1024 * 1024);
> PSMEM0(P04,T_VOID,P03); // まだ書き込みが無い所に別の...
> PLMEM0(P04,T_VOID,P03); // もちろん、読み出しもOK
#br
>// SMEM0(R01,T_VOID,P03);
>// LMEM0(R02,T_VOID,P03);
#br
> PADD(P05,T_VOID,P03,R02);
>// SMEM0(R01,T_VOID,P05); // ポインタを代入した場所か...
#br
> PADD(P05,T_VOID,P05,R01);
> SMEM0(R02,T_VOID,P05); // 32バイトを超えれば書き込...
> LMEM0(R02,T_VOID,P05);
#br
> PADD(P05,T_VOID,P05,R01);
> PCP(P06,P05);
> PCP(P07,P06);
#br
> PADD(P05,T_VOID,P05,R01);
>// PSMEM0(P04,T_VOID,P05); // 最後尾から28バイト領域に...
> SMEM0(R02,T_VOID,P05); // 最後尾28バイト領域はmallo...
#br
> PADD(P06,T_VOID,P06,R02);
> SMEM0(R02,T_VOID,P06); // 整数データはギリギリまで...
#br
> PSMEM0(P04,T_VOID,P07); // 最後尾から32バイトならポ...
>// SMEM0(R02,T_VOID,P06); // ただし、一度ポインタを書...
#br
32ビットのT_VOID型というのを新しく作りました。T_VOID型配...
さて、この汎用コンテナ、「何でも突っ込める=セキュリティ...
- 一度データを格納したら、そこに別の種類のデータを格納す...
- ポインタは整数データの8倍の大きさがあり、このポインタ...
- 最後尾から28バイトにポインタを格納する事はできない。
- 実装の都合上、PLMT0,PLMT1命令はこの汎用コンテナに対して...
詳しい事は上のコードを読んで下さい。(ASKA書けないので、O...
ちなみに、汎用コンテナにポインタを書き込む時、型指定は(...
** こめんと欄
-今まではちょっと別の所でOSECPUに関わってましたが、セキュ...
#comment
ページ名: