2017-10-06 8 views
0

私はWindowsにおり、私はRetargetable Decompilerによって提供されるcURL APIを使用しようとしています。 cURLはLinuxのユーティリティなので、Windowsのビルドはhereからダウンロードしました。次のような逆コンパイルを実行したいとしましょう: これは動作するブラウザを使用しています。コマンドラインからcURLを使って同じことをしようとすると、エラーが発生します。Retargetable Decompiler cURL APIの使用方法は?

出力:

>curl --form "mode=raw" --form "input=code.bin" --form "architecture=powerpc" --form "endian=big" --form "raw_entry_point=0x0" --form "raw_section_vma=0x0" -u my-secret-api-key: "https://retdec.com/service/api/decompiler/decompilations" { "id": "yVWe4pe5", "links": { "decompilation": "https://retdec.com/service/api/decompiler/decompilations/yVWe4pe5", "status": "https://retdec.com/service/api/decompiler/decompilations/yVWe4pe5/status", "outputs": "https://retdec.com/service/api/decompiler/decompilations/yVWe4pe5/outputs" }} 
{ 
    "code": 400, 
    "description": "The input file is missing.", 
    "message": "Missing Input File" 
} 
curl: (3) [globbing] unmatched brace in column 1 
curl: (6) Could not resolve host: id 
curl: (6) Could not resolve host: yVWe4pe5, 
curl: (6) Could not resolve host: links 
curl: (3) [globbing] unmatched brace in column 1 
curl: (6) Could not resolve host: decompilation 
{ 
    "code": 405, 
    "description": "The method is not allowed for the requested URL.", 
    "message": "Method Not Allowed" 
} 
curl: (6) Could not resolve host: status 
{ 
    "code": 404, 
    "description": "The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.", 
    "message": "Not Found" 
} 
curl: (6) Could not resolve host: outputs 
{ 
    "code": 405, 
    "description": "The method is not allowed for the requested URL.", 
    "message": "Method Not Allowed" 
} 
curl: (3) [globbing] unmatched close brace/bracket in column 1 

またはい、code.binは、コマンドライン(スクリプト)と同じディレクトリにあります。どうすればそれを動作させることができますか? 私は実際にはJavaで解決策を好むとcURLではありませんが、cURLでそれをやっていますが、Javaの例やドキュメントが提供されていないため、理解しやすくなります。

+0

'input = @ code.bin'? –

+0

@JoeC:それは問題にはならなかった。私は 'filename = code.bin'も追加しました。さらに、 '{'で始まる部分は、誤って入力として使用された出力であり、したがってすべてのエラーです。 – BullyWiiPlaza

答えて

0

これはかなり簡単です。

プロセスの開始:

>curl -u my-secret-api-key: https://retdec.com/service/api/decompiler/decompilations/r8OW7AaAOb/outputs/hll 
// 
// This file was generated by the Retargetable Decompiler 
// Website: https://retdec.com 
// Copyright (c) 2017 Retargetable Decompiler <[email protected]> 
// 

#include <stdint.h> 

// ------------------- Function Prototypes -------------------- 

int32_t entry_point(int32_t a1); 
int32_t unknown_20ca300(int32_t a1, int32_t a2); 
int32_t unknown_212363c(int32_t a1); 
int32_t unknown_27a2ad4(int32_t a1, int32_t a2); 

// ------------------------ Functions ------------------------- 

// Address range: 0x0 - 0x1ef 
int32_t entry_point(int32_t a1) { 
    int32_t result = a1; // r26 
    if (unknown_27a2ad4(a1, 0x27a2ad4) != 0) { 
     // 0x94 
     result = -1; 
     unknown_212363c(0); 
     unknown_20ca300(0, 0x830000); 
     // branch -> 0x54 
    } 
    // 0x54 
    return result; 
} 

// --------------------- Meta-Information --------------------- 

// Detected compiler/packer: gcc (gcc-powerpc-elf) (4.5.1 - 4.5.2) 
// Detected functions: 1 
// Decompiler release: v2.2.1 (2016-09-07) 
// Decompilation date: 2017-10-06 22:50:25 

などなど:

{ 
    "id": "mKgBoLa3jo", 
    "links": { 
     "decompilation": "https://retdec.com/service/api/decompiler/decompilations/mKgBoLa3jo", 
     "outputs": "https://retdec.com/service/api/decompiler/decompilations/mKgBoLa3jo/outputs", 
     "status": "https://retdec.com/service/api/decompiler/decompilations/mKgBoLa3jo/status" 
    } 
} 

は、逆コンパイル(例)コードを取得する:

>curl --form "mode=raw" --form "[email protected];filename=code.bin" --form "architecture=powerpc" --form "endian=big" --form "raw_entry_point=0x0" --form "raw_section_vma=0x0" --form "target_language=c" -u my-secret-api-key: "https://retdec.com/service/api/decompiler/decompilations" 

は(例)レスポンスを受信しました。

関連する問題