楼主: 〇〇

终于改出了能超过4000字的unwrap

[复制链接]
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
61#
 楼主| 发表于 2009-6-23 17:15 | 只看该作者
原帖由 tigerfish 于 2009-6-23 16:11 发表
厉害

没什么,算法都是从http://www.itpub.net/1154232.html 看来的
很久没好好写c程序了,主要的时间花在查内存错误,最后才发现decode用了动态申请内存,而不是我传入的地址

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
62#
 楼主| 发表于 2009-6-24 07:59 | 只看该作者
#56在lccwin32上编译通过,附makefile

2种编译器的依赖dll文件函数不同
C:\AA\lcc>"C:\Program Files\Microsoft Visual Studio\VC98\Bin\dumpbin" /IMPORTS base.exe
Microsoft (R) COFF Binary File Dumper Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


Dump of file base.exe

File Type: EXECUTABLE IMAGE

  Section contains the following imports:

    KERNEL32.dll
                415140 Import Address Table
                415090 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                 278  RtlUnwind

    CRTDLL.DLL
                41514C Import Address Table
                41509C Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                  68  _errno
                  80  _fdopen
                  C8  _iob
                  E8  _itoa
                  18  __GetMainArgs
                 16C  rewind
                 1A6  _stricmp
                 1AF  _strnicmp
                 1C8  toupper
                 20A  exit
                 20D  fclose
                 20E  feof
                 20F  ferror
                 210  fflush
                 211  fgetc
                 213  fgets
                 217  fopen
                 219  fputc
                 21C  fread
                 21D  free
                 221  fseek
                 223  ftell
                 225  fwrite
                 249  localeconv
                 24E  malloc
                 254  memcpy
                 255  memmove
                 256  memset
                 25A  pow
                 260  raise
                 26A  signal
                 271  strcat
                 272  strchr
                 273  strcmp
                 27B  strncmp
                 283  strtol
                 292  ungetc
                 2A1  wcslen
                 2AF  wctomb

  Summary

        1000 .bss
        3000 .data
        1000 .idata
       10000 .text

VC6编译
C:\AA\lcc>"C:\Program Files\Microsoft Visual Studio\VC98\Bin\dumpbin" /IMPORTS d:\base.exe
Microsoft (R) COFF Binary File Dumper Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


Dump of file d:\base.exe

File Type: EXECUTABLE IMAGE

  Section contains the following imports:

    KERNEL32.dll
                40D000 Import Address Table
                40E658 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                  7D  ExitProcess
                 29E  TerminateProcess
                  F7  GetCurrentProcess
                 199  HeapAlloc
                 19F  HeapFree
                  CA  GetCommandLineA
                 174  GetVersion
                 26D  SetHandleCount
                 152  GetStdHandle
                 115  GetFileType
                 150  GetStartupInfoA
                 126  GetModuleHandleA
                 124  GetModuleFileNameA
                 109  GetEnvironmentVariableA
                 175  GetVersionExA
                 19D  HeapDestroy
                 19B  HeapCreate
                 2BF  VirtualFree
                 2BB  VirtualAlloc
                 1A2  HeapReAlloc
                 11A  GetLastError
                  1B  CloseHandle
                 26A  SetFilePointer
                 218  ReadFile
                 2DF  WriteFile
                  AA  FlushFileBuffers
                 2AD  UnhandledExceptionFilter
                  B2  FreeEnvironmentStringsA
                  B3  FreeEnvironmentStringsW
                 2D2  WideCharToMultiByte
                 106  GetEnvironmentStrings
                 108  GetEnvironmentStringsW
                 22F  RtlUnwind
                 27C  SetStdHandle
                 1E4  MultiByteToWideChar
                  34  CreateFileA
                  BF  GetCPInfo
                  B9  GetACP
                 131  GetOEMCP
                 13E  GetProcAddress
                 1C2  LoadLibraryA
                 153  GetStringTypeA
                 156  GetStringTypeW
                 261  SetEndOfFile
                 1BF  LCMapStringA
                 1C0  LCMapStringW

  Summary

        6000 .data
        2000 .rdata
        C000 .text

C:\AA\lcc>

[ 本帖最后由 〇〇 于 2009-6-24 08:09 编辑 ]

lcc.rar

34.59 KB, 下载次数: 66

使用道具 举报

回复
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:20:52
63#
发表于 2009-6-24 09:22 | 只看该作者
D:\unwrap>base test.plb test.txt
type code:      3
len_src:        9       len_wrap:       1195787588
freadsize:3663  fread err

使用道具 举报

回复
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:20:52
64#
发表于 2009-6-24 09:23 | 只看该作者
原帖由 ebs11i 于 2009-6-24 09:22 发表
D:\unwrap>base test.plb test.txt
type code:      3
len_src:        9       len_wrap:       1195787588
freadsize:3663  fread err

不好使哦

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
65#
 楼主| 发表于 2009-6-24 09:49 | 只看该作者
原帖由 ebs11i 于 2009-6-24 09:23 发表

不好使哦

从错误提示看是base64编码上面1行的数值错误
我的unwrap只能解10g的,你的貌似9i wrap的,用#35楼解
10g:typecode=7,8,9d

SQL> select dbms_ddl.wrap('create procedure a') from dual;

DBMS_DDL.WRAP('CREATEPROCEDUR
--------------------------------------------------------------------------------
create procedure a wrapped
a000000
354
abcd
...
abcd
7
c 38
8BgMHdmA3Qg9IbJmntlZoZQoHwcwg5nnm7+fMr2ywFxakaamb40d1Q==




SQL> select dbms_ddl.wrap('create function a') from dual;

DBMS_DDL.WRAP('CREATEFUNCTION
--------------------------------------------------------------------------------
create function a wrapped
a000000
354
abcd
...
abcd
8
b 34
cDqp9P/ljcCb7r/TbCcfqcRT2DAwg8eZgcfLCNL+XlqRpqa2duF9



SQL> select dbms_ddl.wrap('create package a') from dual;

DBMS_DDL.WRAP('CREATEPACKAGE
--------------------------------------------------------------------------------
create package a wrapped
a000000
354
abcd
...
abcd
9
a 34
g0a2d/TfdrHiIe3evJs3xeAzTzYwg5m49TOf9b9cWpGmpsvE4Ug=


[ 本帖最后由 〇〇 于 2009-6-24 10:05 编辑 ]

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
66#
 楼主| 发表于 2009-6-24 10:20 | 只看该作者
oracle的核心代码还是c接口的,看不到源代码
比如
SQL> select dbms_ddl.wrap('create trigger a') from dual;
select dbms_ddl.wrap('create trigger a') from dual
       *
第 1 行出现错误:
ORA-24230: 向 DBMS_DDL.WRAP 输入的内容不是合法的 PL/SQL 单元
ORA-06512: 在 "SYS.DBMS_DDL", line 595
然后
select text from dba_source where name='DBMS_DDL';
保存到dbms_ddl.txt

D:\>base dbms_ddl.txt dbms_ddl.sql
type code:      b
len_src:        15853   len_wrap:       4566
freadsize:4566  read ok
b64 size:       4504,4504
unzip size:15852

D:\>dbms_ddl.sql
第595行是

  FUNCTION WRAP(DDL VARCHAR2) RETURN VARCHAR2 IS
    WRAPPED VARCHAR2(32767);
  BEGIN
595------->    WRAP_VC2(DDL, FALSE, WRAPPED);
    RETURN WRAPPED;
  END;
再看定义
  PROCEDURE WRAP_VC2(DDL VARCHAR2, EXECUTE BOOLEAN,
                     WRAPPED OUT NOCOPY VARCHAR2);
------->   PRAGMA INTERFACE(C, WRAP_VC2);

使用道具 举报

回复
论坛徽章:
90
数据库板块每日发贴之星
日期:2005-04-25 01:01:202014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142014年世界杯参赛球队: 美国
日期:2014-06-06 14:24:30马上有对象
日期:2014-10-21 13:39:03
67#
发表于 2009-6-24 13:23 | 只看该作者
有意思。

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
68#
 楼主| 发表于 2009-6-24 18:25 | 只看该作者
又修改2处,适应较大的plb文件


uLong comprLen = 250000*2.56*sizeof(int);
                uncompr[2560000-1]='\0';
修改前
D:\>base prvtawr.plb prvtawr.sql
type code:      b
len_src:        1377928 len_wrap:       1070029
freadsize:1070029       read ok
b64 size:       1055372,1055372
unzip size:999999
type code:      b
len_src:        29394   len_wrap:       5531
freadsize:5531  read ok
b64 size:       5456,5456
unzip size:29393
type code:      b
len_src:        60256   len_wrap:       28259
freadsize:28259 read ok
b64 size:       27872,27872
unzip size:60255


修改后

D:\>c:\aa\lcc\base prvtawr.plb prvtawr.sql
type code:      b
len_src:        1377928 len_wrap:       1070029
freadsize:1070029       read ok
b64 size:       1055372,1055372
unzip size:1377927
type code:      b
len_src:        29394   len_wrap:       5531
freadsize:5531  read ok
b64 size:       5456,5456
unzip size:29393
type code:      b
len_src:        60256   len_wrap:       28259
freadsize:28259 read ok
b64 size:       27872,27872
unzip size:60255

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
6
授权会员
日期:2007-08-23 08:30:28ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB元老
日期:2009-03-06 11:56:31ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB社区千里马徽章
日期:2013-08-22 09:58:03
69#
发表于 2009-6-27 12:49 | 只看该作者
原帖由 〇〇 于 2009-6-18 10:01 发表
谁能分析出第二张对照表,解决部分系统包的问题



大哥难道有几个对照表??

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
70#
 楼主| 发表于 2009-6-27 13:24 | 只看该作者

回复 #69 beiphiju 的帖子

#51已经说明了,只有一个对照表

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表