首页
社区
课程
招聘
[题目]改造installshield 6/7脚本反编译工具sid 1.0(己完成)
发表于: 2006-3-18 15:08 22856

[题目]改造installshield 6/7脚本反编译工具sid 1.0(己完成)

2006-3-18 15:08
22856
大家平时一般都是按自己兴趣选择相关技术话题学习,有优点也有缺点。
本帖尝试一下:提供技术题目让大家一起来参与交流,共同提高。

sid 1.0这款工具可以反编译installshield 6/7脚本文件 *.inx,但新版的installshield脚本格式有变化,sid不支持。
新版脚本格式变化内容参考EXETOOLS论坛的这帖:
http://www.exetools.com/forum/showthread.php?t=6444 即:
//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------

#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#define XOR_VAL 0xF1

void main (void)
{
int i, c;
unsigned char b;
// Set "stdin" and "stdout" to have binary mode
setmode (_fileno (stdin), _O_BINARY);
setmode (_fileno (stdout), _O_BINARY);
// Decrypt INX
for (i = 0; (c = getchar ()) != EOF; i++)
{
c ^= XOR_VAL;
b = (unsigned char)((c >> 2) | (c << 6)) - (i % 71);
putchar (b);
}
}

//---------------------------------------------------------------------------


也就是说,新版的.inx文件只要用上面的程序处理一下,sid 1.0就可支持了。

喜欢DIY的朋友可以来改造一下sid 1.0,让它支持新版的 *.inx文件,看看谁的方法好,增加的代码更巧妙。

附件是sid 1.0及供测试的setup.inx文件。

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (22)
雪    币: 615
活跃值: (1132)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
是个好主意!
2006-3-18 15:14
0
雪    币: 2506
活跃值: (1000)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
3
这种方式倒是不错。就是这个题目怕感兴趣的人不多
2006-3-18 15:35
0
雪    币: 44229
活跃值: (19960)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
最初由 CCDebuger 发布
这种方式倒是不错。就是这个题目怕感兴趣的人不多


呵~ 没事,如果没人感兴趣,过几天我来做。;)
2006-3-18 20:19
0
雪    币: 2506
活跃值: (1000)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
5
最初由 kanxue 发布
呵~ 没事,如果没人感兴趣,过几天我来做。;)

原来想偷懒
2006-3-18 20:21
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 CCDebuger 发布
原来想偷懒


-_-b
2006-3-19 20:21
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
7
         
2006-3-20 08:25
0
雪    币: 242
活跃值: (163)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
8
等下好学了..
2006-3-20 08:52
0
雪    币: 329
活跃值: (343)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
9
有意思,有空改一个
2006-3-20 10:20
0
雪    币: 226
活跃值: (115)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
支持. 有机会也要好好看看..
2006-3-20 11:10
0
雪    币: 270
活跃值: (176)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
11
非常简陋的...
上传的附件:
2006-3-20 12:32
0
雪    币: 3515
活跃值: (4042)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
12
最初由 ikki 发布
非常简陋的...

通过

继续增加难度,把meesage里的这类"\xCF\xD6\xD4\xDA\xD4\xCB\xD0\xD0\xB8\xDF\xBF\xBC\xB1\xA6\xB5\xE4XP\xC2\xF0\xA3\xBF", 用汉字显示出来。

@00004A5E:0021      Disable/Enable(5);
@00004A69:0014      local_string3 = (global_string10 ^ "setup.exe");
@00004A7F:0021      AddFolderIcon(global_string7, "\xC9\xBE\xB3\xFD\xB8\xDF\xBF\xBC\xB1\xA6\xB5\xE4", global_string12, "", local_string3, 0, "", 2);
@00004AAD:0014      local_string3 = (global_string9 ^ "Mpeg4");
@00004ABF:0021      ChangeDirectory(local_string3);
@00004AC8:0014      local_string3 = (global_string9 ^ "Mpeg4\\mpeg4.exe");
@00004AE4:0021      LaunchAppAndWait(local_string3, "", -1);
@00004AF5:0006      local_number1 = 0;
@00004B01:0006      local_number2 = 0;
@00004B0D:0021      SdLoadString(17503);
@00004B18:0006      local_string2 = LASTRESULT;
@00004B22:0021      SdFinishEx/SdFinish(local_string1, local_string2, "", "\xCF\xD6\xD4\xDA\xD4\xCB\xD0\xD0\xB8\xDF\xBF\xBC\xB1\xA6\xB5\xE4XP\xC2\xF0\xA3\xBF", "", local_number1, local_number2);
@00004B53:000D      local_number3 = (local_number1 = 1);
@00004B62:0004      if(local_number3) then // ref index: 1
@00004B6E:0021         ChangeDirectory(global_string8);
@00004B77:0014         local_string3 = (global_string8 ^ "exBrowser.exe");
@00004B91:0021         LaunchApp/BatchGetFileName/ConfigGetFileName(local_string3, "");
@00004B9D:0003      endif;
@00004B9D:0003   label_4b9d:
@00004B9F:0027      // return coming
@00004BA3:0023      return 0;
@00004BAC:0026   end; // checksum: 918cc8a5

2006-3-20 14:16
0
雪    币: 44229
活跃值: (19960)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
13
最初由 ikki 发布
非常简陋的...


测试好用,辛苦!
这程序是读一段,反编译一段,因此用你这方法省事些。

最初由 china 发布
"\xCF\xD6\xD4\xDA\xD4\xCB\xD0\xD0\xB8\xDF\xBF\xBC\xB1\xA6\xB5\xE4XP\xC2\xF0\xA3\xBF"

00000000 CFD6 D4DA D4CB D0D0 B8DF BFBC B1A6 B5E4 C2F0 A3BF 现在运行高考宝典吗?

看来有必要增加对中文的支持。;)
2006-3-20 19:40
0
雪    币: 3515
活跃值: (4042)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
14
最初由 kanxue 发布
测试好用,幸苦!
这程序是读一段,反编译一段,因此用你这方法省事些。


00000000 CFD6 D4DA D4CB D0D0 B8DF BFBC B1A6 B5E4 C2F0 A3BF 现在运行高考宝典吗?
........


就是这东西啊,还是增加中文支持的好
2006-3-20 20:07
0
雪    币: 270
活跃值: (176)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
15
定位字符串的地方不好找啊,
是不是自己写一段代码来处理比较好呢?
期待大侠出手.
2006-3-23 10:03
0
雪    币: 236
活跃值: (59)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
最初由 ikki 发布
定位字符串的地方不好找啊,
是不是自己写一段代码来处理比较好呢?
期待大侠出手.


004065F8  |. /7C 1C         |JL SHORT sid.00406616
004065FA  |. |80F9 7E       |CMP CL,7E                               ;  这里判断
004065FD  |. |7F 17         |JG SHORT sid.00406616
004065FF  |. |8BC5          |MOV EAX,EBP
00406601  |. |8D70 01       |LEA ESI,DWORD PTR DS:[EAX+1]
00406604  |> |8A10          |/MOV DL,BYTE PTR DS:[EAX]
00406606  |. |40            ||INC EAX
00406607  |. |84D2          ||TEST DL,DL
00406609  |.^|75 F9         |\JNZ SHORT sid.00406604
0040660B  |. |2BC6          |SUB EAX,ESI
0040660D  |. |8B7424 1C     |MOV ESI,DWORD PTR SS:[ESP+1C]
00406611  |. |880C28        |MOV BYTE PTR DS:[EAX+EBP],CL
00406614  |. |EB 13         |JMP SHORT sid.00406629
00406616  |> \0FB6C1        |MOVZX EAX,CL
00406619  |.  50            |PUSH EAX
0040661A  |.  55            |PUSH EBP
0040661B  |.  68 CC264100   |PUSH sid.004126CC                       ;  %s\x%02x
00406620  |.  55            |PUSH EBP
00406621  |.  E8 E0440000   |CALL sid.0040AB06                       ;  这里转换
00406626  |.  83C4 10       |ADD ESP,10
00406629  |>  8BC6          |MOV EAX,ESI
0040662B  |.  43            |INC EBX
0040662C  |.  8D50 01       |LEA EDX,DWORD PTR DS:[EAX+1]


试着修改了一下
00406616      0FB6C1        MOVZX EAX,CL
00406619      50            PUSH EAX
0040661A      55            PUSH EBP
改为:
00406616   > \E9 26B90000   JMP sid.00411F41


新加代码:
00411F40      90            NOP
00411F41   >  80F9 7E       CMP CL,7E
00411F44    ^ 0F8C B546FFFF JL sid.004065FF
00411F4A   .  0FB6C1        MOVZX EAX,CL
00411F4D   .  50            PUSH EAX
00411F4E   .  55            PUSH EBP
00411F4F   .^ E9 C746FFFF   JMP sid.0040661B

90 80 F9 7E 0F 8C B5 46 FF FF 0F B6 C1 50 55 E9 C7 46 FF FF


这样改了以后,不知道还能不能执行菜单 File 下的 Patch Changes ?
2006-3-23 11:35
0
雪    币: 270
活跃值: (176)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
17
Good job.
2006-3-23 13:45
0
雪    币: 44229
活跃值: (19960)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
18
这个工具己放到主页工具栏目里去了:
http://www.pediy.com/tools/Decompilers.htm

1.感谢ikki 的DIY,使得sid可以支持新版的installshield 6/7脚本文件。
2.感谢ijia 对中文处理的改进,使得sid字符串参考可以显示中文。
2006-3-29 20:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
超赞
原来用这个东西反一个日文的脚本
费死劲了
用这个看看好了没:)
2006-3-29 23:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
真的很好啊,我想试试
2006-7-10 21:40
0
雪    币: 1341
活跃值: (3616)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
21
setup.inx体积大一点,sid就会报错,如附件的inx,这个如何解决?
上传的附件:
2018-1-19 11:38
0
雪    币: 1341
活跃值: (3616)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
22
setup.inx体积大的缘故?sid运行一段时间后会死掉。
2018-12-14 15:57
0
雪    币: 1341
活跃值: (3616)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
23
最后找到isDcc31的源码修改一下,能顺利反编译。
最后于 2018-12-17 23:30 被方向感编辑 ,原因:
上传的附件:
2018-12-17 23:29
0
游客
登录 | 注册 方可回帖
返回
//