JP7842412B2 - 情報処理方法、情報処理システム、および情報処理プログラム - Google Patents
情報処理方法、情報処理システム、および情報処理プログラムInfo
- Publication number
- JP7842412B2 JP7842412B2 JP2023219029A JP2023219029A JP7842412B2 JP 7842412 B2 JP7842412 B2 JP 7842412B2 JP 2023219029 A JP2023219029 A JP 2023219029A JP 2023219029 A JP2023219029 A JP 2023219029A JP 7842412 B2 JP7842412 B2 JP 7842412B2
- Authority
- JP
- Japan
- Prior art keywords
- intermediate representation
- verification
- information processing
- rules
- provisions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Description
ることも多い。このような中間表現を採用することで、ソースコードに含まれるノウハウなどを秘匿化するとともに、データ量を低減できるという利点がある。
ステップとを含む。
まず、本実施の形態に従うソフトウェア開発システム1における処理の概要を説明する。本実施の形態においては、ソースコード10から生成される中間表現20自体を検証し、その検証結果が適切であることを条件に、対応する実行コード30の生成、あるいは、生成された実行コード30の実行を許容する。中間表現20に対する検証において、中間表現20が所定の規定あるいは規約を満たす場合に適切と判断される。
行条件を採用することで、安全性が損なわれた状態で実行コード30が実行される可能性を低減できる。
もよいが、典型的には、工場設備、家庭内の各種装置、社会インフラ設備、車両などの移動体、任意の携帯デバイスなどが想定される。後述するように、コントローラ300は、プロセッサを有しており、ソフトウェア開発装置100からのアプリケーションプログラムを実行可能になっている。
次に、本実施の形態に従うソフトウェア開発システム1を構成する主要装置のハードウェア構成例について説明する。
ソフトウェア開発装置100は、典型的には汎用コンピュータで実現される。
、複数のコアを有するプロセッサ102を採用してもよい。
は、プロセッサ102で実行される各種プログラムや各種データを保持する。なお、ハードディスク110に代えて、SSD(Solid State Drive)やフラッシュメモリなどの不
揮発性記憶装置を採用してもよい。ハードディスク110に格納されたプログラムのうち、指定されたプログラムコードがメインメモリ104上に展開され、プロセッサ102は、メインメモリ104上に展開されたプログラムコードに含まれるコンピュータ可読命令(computer-readable instructions)を順次実行することで、後述するような各種機能を実現する。
ハードワイヤード回路を用いて実現してもよい。さらにあるいは、FPGA(field-programmable gate array)上にコンピュータ可読命令に相当する回路を用いて実現してもよ
い。また、プロセッサ102およびメインメモリ、ASIC、FPGAなどを適宜組み合わせて実現してもよい。
検証サーバ200についても、典型的には汎用コンピュータで実現される。
、ハードディスク210と、通信インターフェイス222とを含む。これらのコンポーネントは、内部バス220を介して接続されている。
次に、本実施の形態に従うソフトウェア開発システム1における検証処理について説明する。
(2)コード中に未定義動作が存在しないこと
(3)エラー処理構文が欠如していないこと(エラー処理構文が適切に含まれていること)
(4)無秩序なエラー処理が含まれていないこと
上記(1)の安全性が確認できないメモリ操作(あるいは、危険なメモリ操作)は、システム領域やセキュア領域に対するメモリアクセスや、メモリ領域に対するブロック消去やブロック書き込みなどのメモリ操作を含む。
上記(4)の無秩序なエラー処理は、例外が発生した場合の過度なエラー処理などを含む。
にしてもよい。
次に、本実施の形態に従うソフトウェア開発システム1における処理手順について説明する。
本実施の形態に従うソフトウェア開発システム1において生成された実行コード30は、配布先のコントローラ300を構成するプロセッサあるいはマイクロコンピュータのセキュア領域に格納されることが好ましい。すなわち、中間表現20に対する認証を条件として生成された実行コード30に対して、何らかの改ざん行為が行われないように、実行環境において何らかの対処を行うことが好ましい。
ソフトウェア開発装置100から検証サーバ200へ中間表現20の検証を依頼する際には、対象の中間表現20を暗号化してもよい。これによって、ソフトウェア開発装置100と検証サーバ200との間で遣り取りされる中間表現20に対する改ざんなどを防止できる。
本実施の形態においては、ソースコード10ではなく中間表現20に対する検証を行うことで、ソースコード10に含まれるノウハウなどを秘匿化した状態で、アプリケーションプログラムに含まれる安全性についてのリスクをより効率的に発見できる。また、中間表現20に対する検証を行うことで、ソースコード10の記述に用いられたプログラミング言語の種類に応じた複数の検証ルールセットなどを用意する必要がなく、効率的な検証を実現できる。
開発装置、102,202 プロセッサ、104,204 メインメモリ、106,206 入力部、108,208 ディスプレイ、110,210 ハードディスク、114
ソフトウェア開発プログラム、120,220 内部バス、122,222 通信インターフェイス、200 検証サーバ、212 評価エンジン、214 証明書発行エンジン、216 評価ルール、300 コントローラ。
Claims (7)
- 情報処理システムであって、
開発環境においてソースコードから生成された、特定のアーキテクチャ向けの中間表現(Intermediate Representation)を取得する手段と、
前記中間表現が所定の規定あるいは規約を満たしているか否かを検証する手段と、
前記検証する手段による検証の結果を出力する手段とを備え、
前記所定の規定あるいは規約を満たしているか否かを検証する手段は、
安全性が確認できないメモリ操作が生じ得るか否かの検証、
未定義動作が生じ得るか否かの検証、
エラー処理構文が欠如しているか否かの検証、および、
例外が発生した場合の過度なエラー処理が含まれるか否かの検証、のうち少なくとも1つを実行する、情報処理システム。 - 前記中間表現が前記所定の規定あるいは規約を満たしている場合に、前記中間表現から実行コードの生成を許可する手段をさらに備える、請求項1に記載の情報処理システム。
- 前記出力する手段は、前記中間表現が前記所定の規定あるいは規約を満たしていない場合に、前記所定の規定あるいは規約を満たしていない内容をユーザに通知する、請求項1または2項に記載の情報処理システム。
- 前記中間表現が前記所定の規定あるいは規約を満たしている場合に、前記中間表現に関連付けられる証明書を発行する手段をさらに備える、請求項1~3のいずれか1に記載の情報処理システム。
- 前記ソースコードから前記中間表現を生成する手段をさらに備え、
前記中間表現を生成する手段は、前記検証する手段を備えるコンピュータとは別のコンピュータが備える、請求項1~4のいずれか1に記載の情報処理システム。 - 1または複数のコンピュータが実行する情報処理方法であって、
開発環境においてソースコードから生成された、特定のアーキテクチャ向けの中間表現(Intermediate Representation)を取得するステップと、
前記中間表現が所定の規定あるいは規約を満たしているか否かを検証するステップと、
前記検証するステップの結果を出力するステップとを備え、
前記所定の規定あるいは規約を満たしているか否かを検証するステップは、
安全性が確認できないメモリ操作が生じ得るか否かを検証するステップと、
未定義動作が生じ得るか否かを検証するステップと、
エラー処理構文が欠如しているか否かを検証するステップと、
例外が発生した場合の過度なエラー処理が含まれるか否かを検証するステップと、のうち少なくとも1つを含む、情報処理方法。 - 情報処理プログラムであって、コンピュータに、
開発環境においてソースコードから生成された、特定のアーキテクチャ向けの中間表現(Intermediate Representation)を取得するステップと、
前記中間表現が所定の規定あるいは規約を満たしているか否かを検証するステップと、
前記検証するステップの結果を出力するステップとを実行させ、
前記所定の規定あるいは規約を満たしているか否かを検証するステップは、
安全性が確認できないメモリ操作が生じ得るか否かを検証するステップと、
未定義動作が生じ得るか否かを検証するステップと、
エラー処理構文が欠如しているか否かを検証するステップと、
例外が発生した場合の過度なエラー処理が含まれるか否かを検証するステップと、のうち少なくとも1つを含む、情報処理プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023219029A JP7842412B2 (ja) | 2019-06-26 | 2023-12-26 | 情報処理方法、情報処理システム、および情報処理プログラム |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2019119106A JP7672041B2 (ja) | 2019-06-26 | 2019-06-26 | 情報処理方法および情報処理システム |
| JP2023219029A JP7842412B2 (ja) | 2019-06-26 | 2023-12-26 | 情報処理方法、情報処理システム、および情報処理プログラム |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2019119106A Division JP7672041B2 (ja) | 2019-06-26 | 2019-06-26 | 情報処理方法および情報処理システム |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2024023911A JP2024023911A (ja) | 2024-02-21 |
| JP2024023911A5 JP2024023911A5 (ja) | 2025-09-22 |
| JP7842412B2 true JP7842412B2 (ja) | 2026-04-08 |
Family
ID=74060407
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2019119106A Active JP7672041B2 (ja) | 2019-06-26 | 2019-06-26 | 情報処理方法および情報処理システム |
| JP2023219029A Active JP7842412B2 (ja) | 2019-06-26 | 2023-12-26 | 情報処理方法、情報処理システム、および情報処理プログラム |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2019119106A Active JP7672041B2 (ja) | 2019-06-26 | 2019-06-26 | 情報処理方法および情報処理システム |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US12332994B2 (ja) |
| EP (1) | EP3992777B1 (ja) |
| JP (2) | JP7672041B2 (ja) |
| TW (2) | TWI899959B (ja) |
| WO (1) | WO2020262456A1 (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7672041B2 (ja) * | 2019-06-26 | 2025-05-07 | 久利寿 帝都 | 情報処理方法および情報処理システム |
| CN116028057A (zh) * | 2021-10-27 | 2023-04-28 | 北京字节跳动网络技术有限公司 | 代码管理的方法和装置 |
| CN116055556B (zh) * | 2021-10-27 | 2025-08-19 | 北京字节跳动网络技术有限公司 | 用于数据交换的方法、系统、装置和设备 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001075814A (ja) | 1999-08-19 | 2001-03-23 | Internatl Business Mach Corp <Ibm> | コンパイル装置およびその方法 |
| JP2002527819A (ja) | 1998-10-13 | 2002-08-27 | モトローラ・インコーポレイテッド | 実行時セキュリティ環境下における命令ストリーム実行時間削減方法 |
| JP2003122730A (ja) | 2001-10-12 | 2003-04-25 | Ntt Comware Corp | 情報処理方法、エージェントシステム、エージェントシステムプログラム及びエージェントシステムプログラムが記録された記録媒体 |
| US20030135844A1 (en) | 1994-12-20 | 2003-07-17 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions and object initialization |
| JP2006522972A (ja) | 2003-04-14 | 2006-10-05 | ジェムプリュス | リプログラマブル・オンボード・システムにダウンロードされた実行可能コードを管理するための方法 |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04312130A (ja) * | 1991-04-10 | 1992-11-04 | Nec Corp | 言語処理プログラム |
| US6128774A (en) * | 1997-10-28 | 2000-10-03 | Necula; George C. | Safe to execute verification of software |
| KR20010072477A (ko) | 1998-08-13 | 2001-07-31 | 썬 마이크로시스템즈, 인코포레이티드 | 가상 머신 환경에서 네이티브 코드를 변환하고 실행하는방법 및 장치 |
| JP2002527829A (ja) | 1998-10-09 | 2002-08-27 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 自動照会方法およびシステム |
| US6560774B1 (en) * | 1999-09-01 | 2003-05-06 | Microsoft Corporation | Verifier to check intermediate language |
| JP4532810B2 (ja) * | 2002-02-22 | 2010-08-25 | キヤノン株式会社 | 画像処理装置、画像処理装置の制御方法、プログラム、及びコンピュータ読み取り可能な記憶媒体 |
| JP3956112B2 (ja) * | 2002-06-12 | 2007-08-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイラ、レジスタ割当装置、プログラム、記録媒体、コンパイル方法、及びレジスタ割当方法 |
| JP2004303114A (ja) | 2003-04-01 | 2004-10-28 | Hitachi Ltd | インタープリタおよびネイティブコード実行方法 |
| US7966610B2 (en) * | 2005-11-17 | 2011-06-21 | The Mathworks, Inc. | Application of optimization techniques to intermediate representations for code generation |
| US7934197B2 (en) * | 2006-12-19 | 2011-04-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Maintaining code integrity in a central software development system |
| US8037466B2 (en) * | 2006-12-29 | 2011-10-11 | Intel Corporation | Method and apparatus for merging critical sections |
| BR112014011612B1 (pt) | 2011-11-15 | 2021-08-31 | Japan Science And Technology Agency | Sistema de provisão de serviço de análise/verificação de dados, método de controlar o mesmo e meio de armazenamento legível por computador |
| JP5867088B2 (ja) * | 2012-01-05 | 2016-02-24 | 富士電機株式会社 | 組込み機器用ソフトウェア作成支援装置およびプログラム |
| JP5941859B2 (ja) | 2013-03-05 | 2016-06-29 | 株式会社エヌ・ティ・ティ・データ | 検証装置、検証方法、及びプログラム |
| US20160004517A1 (en) * | 2014-07-01 | 2016-01-07 | Bank Of America Corporation | SOFTWARE DEVELOPMENT IMPROVEMENT TOOL - iREVIEW |
| EP3387579A1 (en) * | 2015-12-08 | 2018-10-17 | Ensilo Ltd. | Systems and methods for detection of malicious code in runtime generated code |
| US9805200B2 (en) | 2016-02-01 | 2017-10-31 | Quanta Computer, Inc. | System and method for firmware verification |
| US10423518B2 (en) * | 2016-04-27 | 2019-09-24 | The Mathworks, Inc. | Systems and methods for analyzing violations of coding rules |
| US10740470B2 (en) * | 2017-05-31 | 2020-08-11 | Shiftleft Inc. | System and method for application security profiling |
| JP7672041B2 (ja) * | 2019-06-26 | 2025-05-07 | 久利寿 帝都 | 情報処理方法および情報処理システム |
-
2019
- 2019-06-26 JP JP2019119106A patent/JP7672041B2/ja active Active
-
2020
- 2020-06-24 EP EP20833083.7A patent/EP3992777B1/en active Active
- 2020-06-24 US US17/622,573 patent/US12332994B2/en active Active
- 2020-06-24 WO PCT/JP2020/024799 patent/WO2020262456A1/ja not_active Ceased
- 2020-06-24 TW TW113114585A patent/TWI899959B/zh active
- 2020-06-24 TW TW109121560A patent/TWI842920B/zh active
-
2023
- 2023-12-26 JP JP2023219029A patent/JP7842412B2/ja active Active
-
2025
- 2025-05-22 US US19/216,372 patent/US20250284793A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030135844A1 (en) | 1994-12-20 | 2003-07-17 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions and object initialization |
| JP2002527819A (ja) | 1998-10-13 | 2002-08-27 | モトローラ・インコーポレイテッド | 実行時セキュリティ環境下における命令ストリーム実行時間削減方法 |
| JP2001075814A (ja) | 1999-08-19 | 2001-03-23 | Internatl Business Mach Corp <Ibm> | コンパイル装置およびその方法 |
| JP2003122730A (ja) | 2001-10-12 | 2003-04-25 | Ntt Comware Corp | 情報処理方法、エージェントシステム、エージェントシステムプログラム及びエージェントシステムプログラムが記録された記録媒体 |
| JP2006522972A (ja) | 2003-04-14 | 2006-10-05 | ジェムプリュス | リプログラマブル・オンボード・システムにダウンロードされた実行可能コードを管理するための方法 |
Non-Patent Citations (1)
| Title |
|---|
| 品川 高廣 ほか,拡張コンポーネントのためのカーネルによる細粒度軽量保護ドメインの実現,情報処理学会論文誌 第40巻 第6号,日本,社団法人情報処理学会,1999年06月15日,第40巻, 第6号,pp.2596-2606 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7672041B2 (ja) | 2025-05-07 |
| TW202101200A (zh) | 2021-01-01 |
| JP2024023911A (ja) | 2024-02-21 |
| EP3992777B1 (en) | 2026-03-04 |
| TW202443383A (zh) | 2024-11-01 |
| WO2020262456A1 (ja) | 2020-12-30 |
| JP2021005250A (ja) | 2021-01-14 |
| TWI899959B (zh) | 2025-10-01 |
| EP3992777A1 (en) | 2022-05-04 |
| US20250284793A1 (en) | 2025-09-11 |
| EP3992777C0 (en) | 2026-03-04 |
| TWI842920B (zh) | 2024-05-21 |
| EP3992777A4 (en) | 2023-07-19 |
| US20220269773A1 (en) | 2022-08-25 |
| US12332994B2 (en) | 2025-06-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7842412B2 (ja) | 情報処理方法、情報処理システム、および情報処理プログラム | |
| JP5748905B2 (ja) | サンドボックスにリファレンスを保存するシステム及び方法 | |
| JP5030626B2 (ja) | ソフトウェア・アプリケーション配布のための範囲を制限された許可 | |
| US8024564B2 (en) | Automating configuration of software applications | |
| CN105408912B (zh) | 处理认证和资源许可 | |
| EP3047375B1 (en) | Virtual machine manager facilitated selective code integrity enforcement | |
| US8001596B2 (en) | Software protection injection at load time | |
| US10671372B2 (en) | Blockchain-based secure customized catalog system | |
| KR102873469B1 (ko) | 정책 적용을 위한 가상 환경 유형 검증 | |
| CN114175027A (zh) | 基于经验证的主要资产访问的相关资产访问 | |
| CN103718183A (zh) | 软件运行时出处 | |
| JP7805067B2 (ja) | コンピューテーションを標的トラステッド実行環境(tee)において実行されるように生成するための方法、システム、およびコンピュータ・プログラム(クラウド・インフラストラクチャにおけるセキュアな/暗号化された仮想マシンのプロビジョニング) | |
| Fernandez et al. | A cluster of patterns for trusted computing | |
| US20210103651A1 (en) | Registration of dynamically created packaged applications | |
| Shang et al. | ICS software trust measurement method based on dynamic length trust chain | |
| CN115577568B (zh) | 仿真模型的操作权限确定方法、设备和存储介质 | |
| JP7553076B2 (ja) | ソフトウェア検証方法およびソフトウェア開発システム | |
| CN117851990A (zh) | 基于ld_preload的应用程序授权方法、系统、电子设备和介质 | |
| Fournet et al. | Compiling information-flow security to minimal trusted computing bases | |
| KR101440234B1 (ko) | 프로그램 무결성 관리 방법, 시스템 및 그 방법을 컴퓨터 상에서 실행하는 프로그램을 기록한 기록매체 | |
| CN116204886A (zh) | 一种基于cc标准的可信执行环境运行时安全验证方法 | |
| HK40014999B (zh) | 用於生成子应用的安装包的方法和系统 | |
| Alders | Formalizing the semantics of a dual-valued functional language in Coq | |
| Tao et al. | Efficient trust chain model based on turing machine |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231227 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231227 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250901 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250903 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20251014 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20251215 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20260217 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20260311 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20260318 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7842412 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |