|
发表于 2022-11-13 13:29:31
|
显示全部楼层
本帖最后由 jackz007 于 2022-11-13 13:53 编辑
运行 "envmnu.exe" 进入集成环境
- input file name : t.exe <--- 在这里输入 exe 文件名
- Assembler file name : t.ASM <--- 这个文件名会自动产生
- Pseudo-C file name : t.R <--- 这个文件名会自动产生
复制代码
输入 "t.exe",按 1 次回车,再按下 F10 生成反编译文件,然后,退出 IDE,目录内新添加的文件 "t.R" 就是你所要的伪 C 源代码文件。
这个文件内容看上去是这个样子:
- *
- ***************************************************************************
- * *
- * This file was prepared by EXEC-2-C code restoration utility Ver 0.1 *
- * Copywrite (c) The Austin Code Works & Polyglot International *
- * Jerusalem, 1991 *
- * *
- ***************************************************************************
- */
- #include "EXEC-2-C.H"
- char var1_0 [ 129 ] = "19751976197719781979198019811982198319841985198619"
- "8719881989199019911992199319941995\x10\0\0\x16\0~\x01\0L\0V\t\0@\0\x80"
- ">\0\xa6\0\x91\xc3\0\xc7\x01\x81$\x02\x8a\x03|G\x05\xeb\t\xcaB\x0c\x18\x128\x1f\x1cX*";
- Byte var1_9c [ 47 ] = {
- 40, 68, 57, 0, 40, 240, 70, 0, 104, 151,
- 90, 0, 3, 0, 7, 0, 9, 0, 13, 0,
- 28, 0, 38, 0, 130, 0, 220, 0, 220, 1,
- 10, 3, 233, 3, 162, 5, 210, 8, 233, 10,
- 197, 15, 3, 22, 34, 32, 22
- };
- char var1_cb [ 1045 ] = "-^8\x99;\x88E";
- char var2_0 [ 5 ] = "year ";
- char var2_5 [ 5 ] = "summ ";
- char var2_a [ 11 ] = "ne ?? year ";
- char var2_15 [ 315 ] = "summ ne ?? year summ ne ?? year summ ne ?? year su"
- "mm ne ?? year summ ne ?? year summ ne ?? year summ"
- " ne ?? year summ ne ?? year summ ne ?? year summ n"
- "e ?? year summ ne ?? year summ ne ?? year summ ne "
- "?? year summ ne ?? year summ ne ?? year summ ne ??"
- " year summ ne ?? year summ ne ?? year summ ne ?? y"
- "ear summ ne ?? ";
- char var4_3 [ 10 ] = "PSQRVW\x1e\x06\x07\x1f";
- char var4_d [ 10 ] = "_^ZY[X\x8b\xe5]\xc3";
- Byte var4_a4 [ 11 ] = {
- 80, 86, 87, 30, 6, 197, 118, 4, 252, 180,
- 2
- };
- /*======== Code section prepared by EXEC-2-C code restoration utility =======*/
- /****************************************************************************/
- near proc_1()
- /****************************************************************************/
- {
- push(ax);
- ax = 0;
- geninterrupt(0x16); /* BIOS Service func ( ah ) = 0 */
- /* Read next kbd char */
- /* Output: AH-scan code AL-char code */
-
- ax = pop();
- }
- /****************************************************************************/
- near proc_2()
- /****************************************************************************/
- {
- push(ax);
- push(bx);
- push(cx);
- push(dx);
- push(ds);
- bx = 0;
- ax = - 0x4800; /*PCH : RM_Table_init*/
- cx = 0x7D0; /*PCH : RM_Table_init*/
-
- label_11:
- do
- *bx = al;
- while(bx = bx + 2, --cx != 0);
- bh = 0;
- dx = 0;
- ah = 2; /*PCH : RM_Table_init*/
- geninterrupt(0x10); /* BIOS Service func ( ah ) = 2 */
- /* Set cursor pos */
- /* Input: BH-page DH-row DL-clmn */
-
- ds = pop();
- dx = pop();
- cx = pop();
- bx = pop();
- ax = pop();
- }
- . . . . . .
- /****************************************************************************/
- far main()
- /****************************************************************************/
- {
-
- ax = DATA_SEG_1;
- ds = ax;
- ax = DATA_SEG_2;
- es = ax;
- proc_5();
- bx = 0;
- push(bx);
- push(0x15);
- proc_2();
- do {
- push(*( Word *)MK_FP(es , bx + 0xA));
- proc_4();
- sp = sp + 2;
- proc_3();
- } while(bx = bx + 0x10, --cx != 0);
- proc_1();
- proc_3();
- cx = pop();
- bx = pop();
- do {
- push(*( Word *)MK_FP(es , bx + 0xD));
- proc_4();
- sp = sp + 2;
- proc_3();
- } while(bx = bx + 0x10, --cx != 0);
- proc_1();
- ax = 0x4C00; /*PCH : RM_Table_init*/
- geninterrupt(0x21); /* DOS func ( ah ) = 4Ch */
- /* Terminate process */
- /* Input: AL-ret code */
-
- }
复制代码
实际内容还是汇编语言样子,这或许和 t.exe 本来就不是一个 C 语言编译出来的代码有关?
会不会让你失望呢? |
|