Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

難読化されたコードをコンパイルできる形へ自動調整する #6

Open
nosfill opened this issue May 26, 2024 · 3 comments

Comments

@nosfill
Copy link
Collaborator

nosfill commented May 26, 2024

概要

  • tigressにおいて,main関数が実装されていないコードを難読化すると自動的に void main() が追加されてしまい,難読化されたコードを別のコードと組み合わせてコンパイルすることができなくなってしまう.

調整事項

コンパイルできる形への調整のために発見した必要事項

  • void 型を返す main 関数を削除
  • extern で宣言している関数を削除
  • struct timeval の定義を削除
  • malloc または rand が含まれる場合は cstdlib ライブラリを使用する
  • 定義前に宣言している独自 enum を削除

実装方法

  • (Best) C言語パーサーで対象のコードをパースした後,必要な形に調整して対象のコードを再構成する
  • (Good) 1行ごとにコードを読み取り,不要な箇所を削除して対象のコードを再構成する

C言語パーサーを実装するのが困難だったため,(Good)の方法で実装を行う予定

@nosfill nosfill changed the title 難読化されたコードをコンパイルできる自動調整する 難読化されたコードをコンパイルできる形へ自動調整する May 26, 2024
@nosfill
Copy link
Collaborator Author

nosfill commented May 26, 2024

  • printfが含まれる場合は cstdioライブラリを使用する

@nosfill
Copy link
Collaborator Author

nosfill commented May 27, 2024

この課題は継続的に続けるものとします

@nosfill
Copy link
Collaborator Author

nosfill commented Jun 13, 2024

AddO系統の難読化されたコードにおいてrand()による値の初期化を行っている箇所も削除していた.関数内のコードは基本的には削除しない

nosfill added a commit that referenced this issue Jun 19, 2024
(#6) 行ごとのCソースパーサーを実装.解析データを基にコードをコンパイルできる形へ調整する機能をリファクタ
nosfill added a commit that referenced this issue Jun 19, 2024
(#6) string.h, stdio.h を必要に応じて追加する処理を追加
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant