• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:逆コンパイルの見方について(再度))

逆コンパイルの見方について

このQ&Aのポイント
  • 逆コンパイルについての質問文を解説します。
  • 質問文中のsrcformについて詳しく説明します。
  • 質問文の内容を簡潔にまとめます。

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

質問2 srcformというのがクラス名なのか変数名なのかで変わってきますが、たぶん後者でしょう(No.1の方と見解が違います)。 その場合、srcformという変数が指しているオブジェクトをレシーバとしてgetContentType()メソッドを実行することを表します。 getContentType()の結果をStringクラスのequalsIgnoreCase()の引数にしていますから、getContentType()はStringを返すメソッドだと考えられます。 示されている情報だけでは質問1に答えられる人はいないでしょう。何らかの書式(form)を表しているのかなと想像はできますが。 上に書いたとおり、srcformというのがクラス名なのか変数名なのかをまずは確認してください。その上で、対応するクラスの定義を調べることになります。 ところで、逆コンパイルして調べているそのプログラムは誰が作ったものですか? もし他社とかネットから入手したものであった場合、使用条件にリバースエンジニアリング禁止の項目があったりしないかとか気にしていますか? 念のため。

yotarou
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • 1108435
  • ベストアンサー率43% (94/217)
回答No.1

質問1はパスします。何を逆コンパイルしたのかがわからないので、srcformという、クラスがあると考えるのが普通でしょう。ただ、印象ではクラスの名前として頭がsrcですからこれはソース(source)からきていると考えたほうが普通ではないでしょうか、画面だったらスクリーン(screen)ですのでscrの表記のほうが普通かな。 質問2はC++やObjectPascal辺りには馴染み深いメンバ関数ですよね。要するにクラスsrcformの中に定義されている機能としてのメンバ関数を呼び出している表記です。

yotarou
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 逆コンパイルの見方について(再度)

    askaaska`様 コンパイルまでは出来ましたが実行段階で不調です。やみくもにやっているのでご迷惑をお掛けしているのは重々承知しています。恐らくこのプログラムからJSPを実行してWebに表示しているものと考えられます。残念ながら画面が遷移しません。このプログラムだけです、あとは無理やり直しました。邪道とは思いますが方法がありません。 public class TranslationEntryBL { private final String STR_ARRAY[]; private TranslationEntryForm srcform; private TranslationEntryBL() { STR_ARRAY = new String[0]; srcform = null; } public TranslationEntryBL(TranslationEntryForm srcform) { STR_ARRAY = new String[0]; this.srcform = null; this.srcform = srcform; } public GenericApplicationForm init() throws Exception { initCommonInfo(); if(srcform.getParentContentID().equalsIgnoreCase(srcform.getSelectContentID()) && !"scx".equalsIgnoreCase(srcform.getContentType())) { srcform.setFocusElement("entryTitle-1"); } else if(srcform.getEntryContent().length > 0) { srcform.setFocusElement("entryContent"); } else { srcform.setFocusElement(""); } return prepareContentData(); } public GenericApplicationForm refresh() throws Exception { return init(); } public GenericApplicationForm returnList() throws Exception { TranslationListForm nextform = new TranslationListForm(srcform); nextform.setEventName("init"); return nextform; } private GenericApplicationForm prepareContentData() throws Exception { Connection conn; DBResult resultP; DBResult resultT; conn = null; resultP = null; resultT = null; DBResult resultC = null; Object obj; conn = DBUtil.getConnection(srcform.getWebInfoPath()); resultP = daGetParentContent(conn); // kokomade okay if(resultP.getRs().next()) { // kokomade okay obj = returnList(); DBUtil.closeConnection(conn); // kokomade okay return ((GenericApplicationForm) (obj)); // kokodetomaru } setParentContent(resultP); resultC = daGetChildContent(conn); setChildContent(resultC); if(!"refresh".equalsIgnoreCase(srcform.getEventName())) { srcform.setSelectContentID(""); String languages[] = GetConfVal.getConfVal("def_datalanguage", srcform.getBasicInfoDTO()).split(","); srcform.setEntryTitle(new String[languages.length]); srcform.setEntryContent(new String[languages.length]); srcform.setEntryContentOriginalFlag(new String[languages.length]); srcform.setEntryContentLanguage(new String[languages.length]); for(int i = 0; i < languages.length; i++) { srcform.setEntryTitle("", i); srcform.setEntryContent("", i); srcform.setEntryContentOriginalFlag("", i); srcform.setEntryContentLanguage("", i); } } try { srcform.setFocusElement(null); obj = srcform; } catch (Exception exception) { DBUtil.closeConnection(conn); throw exception; } DBUtil.closeConnection(conn); return ((GenericApplicationForm) (obj)); } return ((GenericApplicationForm) (obj));のところで処理が止まります。何かアドバイスを下さい御願いします。尚、止まると判断しているのはBEEP音を入れてどこまで動いたかを確認したものです。 最早、専門家でないと出来ない領域かと思いますが、何卒宜しく御願い致します。

    • ベストアンサー
    • Java
  • 逆コンパイルの見方について(再度)

    もう一度だけ教えて下さい御願いします。逆コンパイルをした結果が読めません。どうのようにに読めばいいでしょうか、同様の修正を行いたいと思います。 private GenericApplicationForm prepareContentData() throws Exception { Connection conn; DBResult resultP; DBResult resultT; conn = null; resultP = null; resultT = null; DBResult resultC = null; Object obj; conn = DBUtil.getConnection(srcform.getWebInfoPath()); resultP = daGetParentContent(conn); if(resultP.getRs().next()) { break MISSING_BLOCK_LABEL_51; } obj = returnList(); DBUtil.closeConnection(conn); return ((GenericApplicationForm) (obj)); setParentContent(resultP); if("sch".equalsIgnoreCase(srcform.getContentType())) { break MISSING_BLOCK_LABEL_107; } resultT = daGetParentToUser(conn); if(resultT.getRs().next()) { break MISSING_BLOCK_LABEL_102; } obj = returnList(); DBUtil.closeConnection(conn); return ((GenericApplicationForm) (obj)); setParentToUser(resultT); DBResult resultC = daGetChildContent(conn); setChildContent(resultC); if(!"refresh".equalsIgnoreCase(srcform.getEventName())) { srcform.setSelectContentID(""); String languages[] = GetConfVal.getConfVal("def_datalanguage", srcform.getBasicInfoDTO()).split(","); srcform.setEntryTitle(new String[languages.length]); srcform.setEntryContent(new String[languages.length]); srcform.setEntryContentOriginalFlag(new String[languages.length]); srcform.setEntryContentLanguage(new String[languages.length]); for(int i = 0; i < languages.length; i++) { srcform.setEntryTitle("", i); srcform.setEntryContent("", i); srcform.setEntryContentOriginalFlag("", i); srcform.setEntryContentLanguage("", i); } } srcform.setFocusElement(null); obj = srcform; DBUtil.closeConnection(conn); return ((GenericApplicationForm) (obj)); Exception exception; exception; DBUtil.closeConnection(conn); throw exception; } 気張ってはいるのですが、もう一度ご指導願います。

    • ベストアンサー
    • Java
  • 逆コンパイルの見方について(再度)

    Jad v1.5.8e.で逆コンパイルしています。下段のParseException e;をどう理解していいか分かりません。恐らくsdfFrom.parse(val)との関係だと思うのですが public class Formatter { public Formatter() { } public static String convDateFormat(String val, String formatFrom, String formatTo) throws IllegalArgumentException { SimpleDateFormat sdfFrom; SimpleDateFormat sdfTo; if(val == null || formatFrom == null || formatTo == null) { throw new IllegalArgumentException(); } sdfFrom = Util.getSDF(formatFrom); sdfTo = Util.getSDF(formatTo); sdfFrom.setLenient(false); sdfTo.setLenient(false); return sdfTo.format(sdfFrom.parse(val)); ParseException e; e; return val; } 何卒、宜しく御願いします。

    • ベストアンサー
    • Java
  • 逆コンパイルの見方について

    ソースがなくて困ってJADの逆コンパイルをしてみました。 (Decompiled by Jad v1.5.8e.)以下のように結果が出ます。 public GenericApplicationForm save() throws Exception { Connection conn = null; TranslationEntryForm translationentryform; initCommonInfo(); if(checkEntryContent()) { break MISSING_BLOCK_LABEL_24; } translationentryform = srcform; DBUtil.closeConnection(conn); return transentryform; conn = DBUtil.getConnection(srcform.getWebInfoPath()); daSaveContent(conn); conn.commit(); ContentData(); break MISSING_BLOCK_LABEL_61; Exception exception; exception; DBUtil.closeConnection(conn); throw exception; DBUtil.closeConnection(conn); return srcform; } Break MISSING_BLOCK_LABEL とexception;並びにCloseが2箇所あるところがおかしいと思うのですが、どう読めば良いでしょうか 変な質問で申し訳ありませんが宜しく御願い致します。

    • ベストアンサー
    • Java
  • 逆コンパイルの見方について(再度)

    逆コンパイル(JAD)で以下のようになります。 if(resultP.getRs().next()) {をどう処置するかが問題だと思いますが、如何せん実力不足です。break MISSING_BLOCK_LABELが複数あるので色々 やってみなしたが駄目です。 アドバイス下さるよう御願い申し上げます。 private GenericApplicationForm prepareContentData() throws Exception { Connection conn; DBResult resultP; DBResult resultT; conn = null; resultP = null; resultT = null; DBResult resultC = null; Object obj; conn = DBUtil.getConnection(srcform.getWebInfoPath()); resultP = daGetParentContent(conn); if(resultP.getRs().next()) { break MISSING_BLOCK_LABEL_51; } obj = returnList(); DBUtil.closeConnection(conn); return ((GenericApplicationForm) (obj)); setParentContent(resultP); if("sch".equalsIgnoreCase(srcform.getContentType())) { break MISSING_BLOCK_LABEL_107; } resultT = daGetParentToUser(conn); if(resultT.getRs().next()) { break MISSING_BLOCK_LABEL_102; } obj = returnList(); DBUtil.closeConnection(conn); return ((GenericApplicationForm) (obj)); setParentToUser(resultT); DBResult resultC = daGetChildContent(conn); setChildContent(resultC); if(!"refresh".equalsIgnoreCase(srcform.getEventName())) { srcform.setSelectContentID(""); String languages[] = GetConfVal.getConfVal("def_datalanguage", srcform.getBasicInfoDTO()).split(","); srcform.setEntryTitle(new String[languages.length]); srcform.setEntryContent(new String[languages.length]); srcform.setEntryContentOriginalFlag(new String[languages.length]); srcform.setEntryContentLanguage(new String[languages.length]); for(int i = 0; i < languages.length; i++) { srcform.setEntryTitle("", i); srcform.setEntryContent("", i); srcform.setEntryContentOriginalFlag("", i); srcform.setEntryContentLanguage("", i); } } srcform.setFocusElement(null); obj = srcform; DBUtil.closeConnection(conn); return ((GenericApplicationForm) (obj)); Exception exception; exception; DBUtil.closeConnection(conn); throw exception; } 何卒宜しく御願い致します。

    • ベストアンサー
    • Java
  • なりすましで再度困っています。

    4箇月ほど前になりすましで困っている旨質問しましたところ、多くの方からサジェッションいただいたのですが、とりあえずPWを変更(これくらいであれば私も理解できるので)して様子をみることにしたのですが、その後何事もなくうまくいけているように思っていました。ところが昨晩、受信boxのメールを確認しようとしたところ、pwをたずねてくる画面が突然でてきたので前回変更したpwを入力したところ、使えませんでした。そして歴上の人物を尋ねられる質問があるのですがこれもはじかれます。また、確認コードの受信方法の選択画面では、私が昨日まで使っていたアドレスとはよく似ていますがちがうものが表示されております。今回は、pwの変更もなにもできなくなってしまいお手あげ状態になってしまったのでやむなく新アドレスを登録してこの質問boxなど利用できるようになりました。昨日まで使っていたメールアドレスをもう一度使用するにはどうしたらよいでしょうか?アドレスの変更は影響が大きすぎるのでそのまましようしたいのですが、、、何卒よろしくお願い致します。またガイドいただくときには、年寄りでも理解できるように平易にご説明いただければ助かります。勝っていって恐縮ですがよろしくお願い致します。

  • コンパイルは出来るけど…

    こんにちわ!! 私は現在、Javaを使ってプログラミングを行っています。 コンパイルをする所までは出来るのですが、実行が何故かできません。 その原因として 1.環境変数の設定に問題がある。 2.プログラムにバグがある。 3.ファイル名に間違いがある。 ことが考えられます。…が!私が何度も確認して、周りの方にも協力して頂いて確かめてもらってもどこが悪いのか分かりません。  環境変数の設定に問題がある…以外には考えられないのですが、私の勉強不足でどうも見付けられず。  もし、この投稿を見た方で環境変数の設定はこれではないか? もしくは上記にある以外の理由が考えられるのではないか? と思いの皆様。どうか、私にアドバイスを下さい。本当に低レベルな質問で申し訳ない!!ですが、どうぞ宜しくお願い致します。

    • ベストアンサー
    • Java
  • コンパイルとOS

    コンパイラのインストールファイルの中のiostream.hの ようなヘッダファイルには、OSのバージョンによって例えば #if (WINVER < 0x0500) のような切り分けがされています。 Win98でコンパイルすればWin98用の実行ファイルが作られ、 WinXPでコンパイルすればWinXP用の実行ファイルが作られるわけで、その切り分けはコンパイル時に使われるもので 実行ファイルにその切り分けルーチンが含まれ、実行ファイルが実行された時に動的にOS別の切り替えがされるわけではないんですよね?

  • 再度、困りました。

    再度、困りました。 お知恵をお貸しください。 DELL製19インチワイド SE198WFPfを 使用しております。 先日、質問させていただいた内容は 解決してのですが、今度は 電源を入れて、パソコン接続後 数分で画面が、消えてしまいます。 電源ボタンは光っておりますが、 画面が真っ暗になってしまいます。 再度、電源を入れると また写るのですが、何秒かすると また消えます。 いろいろネットで調べてみましたが、 バックライトの寿命でしょうか? コンデンサーの不具合でしょうか? 電源系統の断線でしょうか? お忙しいところ、申し訳ございません。 よろしくお願いします。

  • invokeLaterの逆に

    私は、SwingUtilities.invokeLater(Runnnable doRun)では、イベントディスパッチ・スレッド以外からの描画を伴うリクエストを、AWT-EventDispatchThreadの実行と同期して実行させるための機構だと理解しています。これは描画を伴う処理を描画のタイミングに集約して効率化する機能です。 では、逆にイベントディスパッチ・スレッドの過程で実行していながらも、描画の変化と直接関係ない処理を、イベントディスパッチ・スレッドの描画サイクルの終了後に後回しで行う方法はないのでしょうか?