2016-10-19 23 views
0

私は、いくつかのファイルとリンクされたライブラリと共有する大きなプロジェクトを持っています。私の共同作業者は、特定の機能を変更する必要があります。コードの開発に必要のない部分を部分的に難読化する方法はありますか?部分的な難読化Cコード

+6

あなたの共同編集者が変更する必要のない部分をコンパイルおよびリンク可能な形式で提示できるように、コードベースを整理します。変更する部分のみをソース形式で利用できます。これで十分だろうか? –

答えて

0

上記の機能が関数の形式である場合は、ヘッダーに関数ポインタ型定義を提供し、ユーザーが独自の関数を登録できるようにします。また、ヘッダーにRegister_Func()関数を追加する必要があります。 この関数は、これらの関数への静的ポインタを変更します。あなたのヘッダー内の

あなたのコード内で次に
typedef void (*myfunc_p)(int); 

void Register_Func(myfunc_p F); 

static myfunc_p Modified_Function; 

void Register_Func(myfunc_p F) 
{ 
    Modified_Function=F; 
} 

その後、あなただけのヘッダーと一緒に、DLLを共有することができます。また、カスタマイズされたコードを登録することもできます。

0

どのように乱雑になるかによって異なります。私は彼らが必要とする機能を公開し、別のライブラリとして変更したいソースコードを提供するAPIを作成するだけです。こうすることで、プロトタイプだけが表示されます(また、ダミーパラメータでこれらを難読化することができます)。そうすれば、ほとんどの場合、.dllsファイルまたは.soファイルを提供してビルドすることができます。彼らがより多くのコードを要求し続けていると、それを公然と拒絶する時が来るかもしれない。

ところで、これがコラボレーションの場合は何もする必要はありませんが、何らかの作業を委託している場合は、そうでない場合はすべてのコードにアクセスする権利があります。だからあなたの同意を確認してください。

実際、Cのようなコードベース(そして10,000行未満のコードベース)を使用している場合、コードと逆/エンジニアを逆アセンブルすることはあまりありません。良いアセンブリプログラマーはここでは多くの問題がありません。最適化でコンパイルすると少し難しくなります。

0

私たちはすべてVSで作業しているので、私はソースコードを削除し、objファイルを追加しました。それは働いている。