前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PBKILLER的搜索

PBKILLER导出的源码批量修复和批量导入技术(转) - buliedian - ITeye技术网站 首页 资讯 精华 论坛 问答 博客 专栏 群组 更多 ▼ 招聘 搜索 您还未登录 ! 登录 注册 buliedian 博客 微博 相册 收藏 留言 关于我 buliedian PBKILLER导出的源码批量修复和批量导入技术(转) 脚本Blog PBKILLER导出的源码批量修复和批量导入技术 原文:http://itmed.blog.sohu.com/96898840.html 原文发表于2008-08-10 作者深蓝无忌 <!-- / icon and title --><!-- message --> 1用PBKILLER可以从pbd导出"*.sr?"这样的文件,但是不能直接导出pbl2由于pb导入"*.sr?"时,由于(1)类之间的依赖关系,若a的父类为b,先导a是不行的(2)PBKILLER导出的源码有部分源码错误。3鉴于以上情况,本人写了serachandreplace脚本,对错误语法进行替换4网上搜索到了一个批量导入"*.sr?"的程序,pb写的,用PBKILLER反编译出来,但存在反编译错误5由4知,用到了PBORC80.DLL,OD跟踪pb的导入对象的过程,得到了pb导入用到的函数参数,修复了反编译错误====================================================如下是serchandreplace的正则替换脚本,修复部分PBKILLER导出的源码错误getclassdefinition\(\)替换classdefinitiongetscriptlist\(\)替换scriptlistgetscript\(1,\[*[]\]\).getname\()\替换scriptlist\[%1\].namegetvariablelist\(\)getvariable\(1,\[*[]\]\).getname\()\替换variablelist\[%1\].namegetargumentlist\(\)getargument\(1,\[*[]\]\).getname\()\替换argumentlist\[%1\].namegetlocalvariablelist\(\)getlocalvariable\(1,\[*[]\]\).getname\()\替换localvariablelist\[%1\].name\?\?\?\?\?=l?_*[]$替换%2=l%1_%2,"+",+.\?\?\?\?\?(,|\))替换,"%1",%2.%1%3\(+\)+\!messagebox\(\?\?\?\?\?\)替换messagebox\("",%1,%2\!\),\[+\](,|\))替换,{%1}%2====================================================如下是pb导入的核心函数,你可以写一个批处理,就不用一个一个手工导入源码了forwardglobaltypen_cst_pborcfromnonvisualobjectendtypeendforwardglobaltypen_cst_pborcfromnonvisualobjectautoinstantiateendtypeglobaln_cst_pborcn_cst_pborctypeprototypespublicfunctionlongsessionopen7()library"PBORC70.DLL"aliasfor"PBORCA_SessionOpen"publicsubroutinesessionclose7(longhorcasession)library"PBORC70.DLL"aliasfor"PBORCA_SessionClose"publicfunctionintegersessionsetlibrarylist7(longhorcasession,refstringplibnames[],integerinumberoflibs)library"PBORC70.DLL"aliasfor"PBORCA_SessionSetLibraryList"publicfunctionintegersessionsetcurrentappl7(longhorcasession,stringlpszappllibname,stringlpszapplname)library"PBORC70.DLL"aliasfor"PBORCA_SessionSetCurrentAppl"publicfunctionintegerlibraryentryexport7(longhorcasession,stringlpszlibraryname,stringlpszentryname,longotentrytype,refstringlpszexportbuffer,longlexportbuffersize)library"PBORC70.DLL"aliasfor"PBORCA_LibraryEntryExport"publicfunctionintegercompileentryimport7(longhorcasession,stringlpszlibraryname,stringlpszentryname,longotentrytype,stringlpszcomments,stringlpszentrysyntax,longlentrysyntaxbuffsize,longpcomperrorproc,longpuserdata)library"PBORC70.DLL"aliasfor"PBORCA_CompileEntryImport"publicfunctionlongsessionopen8()library"PBORC80.DLL"aliasfor"PBORCA_SessionOpen"publicsubroutinesessionclose8(longhorcasession)library"PBORC80.DLL"aliasfor"PBORCA_SessionClose"publicfunctionintegersessionsetlibrarylist8(longhorcasession,refstringplibnames[],integerinumberoflibs)library"PBORC80.DLL"aliasfor"PBORCA_SessionSetLibraryList"publicfunctionintegersessionsetcurrentappl8(longhorcasession,stringlpszappllibname,stringlpszapplname)library"PBORC80.DLL"aliasfor"PBORCA_SessionSetCurrentAppl"publicfunctionintegerlibraryentryexport8(longhorcasession,stringlpszlibraryname,stringlpszentryname,longotentrytype,refstringlpszexportbuffer,longlexportbuffersize)library"PBORC80.DLL"aliasfor"PBORCA_LibraryEntryExport"publicfunctionintegercompileentryimport8(longhorcasession,stringlpszlibraryname,stringlpszentryname,longotentrytype,stringlpszcomments,stringlpszentrysyntax,longlentrysyntaxbuffsize,longpcomperrorproc,longpuserdata)library"PBORC80.DLL"aliasfor"PBORCA_CompileEntryImport"publicfunctionlongsessionopen9()library"PBORC90.DLL"aliasfor"PBORCA_SessionOpen"publicsubroutinesessionclose9(longhorcasession)library"PBORC90.DLL"aliasfor"PBORCA_SessionClose"publicfunctionintegersessionsetlibrarylist9(longhorcasession,refstringplibnames[],integerinumberoflibs)library"PBORC90.DLL"aliasfor"PBORCA_SessionSetLibraryList"publicfunctionintegersessionsetcurrentappl9(longhorcasession,stringlpszappllibname,stringlpszapplname)library"PBORC90.DLL"aliasfor"PBORCA_SessionSetCurrentAppl"publicfunctionintegerlibraryentryexport9(longhorcasession,stringlpszlibraryname,stringlpszentryname,longotentrytype,refstringlpszexportbuffer,longlexportbuffersize)library"PBORC90.DLL"aliasfor"PBORCA_LibraryEntryExport"publicfunctionintegercompileentryimport9(longhorcasession,stringlpszlibraryname,stringlpszentryname,longotentrytype,stringlpszcomments,stringlpszentrysyntax,longlentrysyntaxbuffsize,longpcomperrorproc,longpuserdata)library"PBORC90.DLL"aliasfor"PBORCA_CompileEntryImport"publicfunctionlongsessionopen10()library"PBORC100.DLL"aliasfor"PBORCA_SessionOpen"publicsubroutinesessionclose10(longhorcasession)library"PBORC100.DLL"aliasfor"PBORCA_SessionClose"publicfunctionintegersessionsetlibrarylist10(longhorcasession,refstringplibnames[],integerinumberoflibs)library"PBORC100.DLL"aliasfor"PBORCA_SessionSetLibraryList"publicfunctionintegersessionsetcurrentappl10(longhorcasession,stringlpszappllibname,stringlpszapplname)library"PBORC100.DLL"aliasfor"PBORCA_SessionSetCurrentAppl"publicfunctionintegerlibraryentryexport10(longhorcasession,stringlpszlibraryname,stringlpszentryname,longotentrytype,refstringlpszexportbuffer,longlexportbuffersize)library"PBORC100.DLL"aliasfor"PBORCA_LibraryEntryExport"publicfunctionintegercompileentryimport10(longhorcasession,stringlpszlibraryname,stringlpszentryname,longotentrytype,stringlpszcomments,stringlpszentrysyntax,longlentrysyntaxbuffsize,longpcomperrorproc,longpuserdata)library"PBORC100.DLL"aliasfor"PBORCA_CompileEntryImport"publicfunctionlongsessionopen()library"PBORC90.DLL"aliasfor"PBORCA_SessionOpen"publicsubroutinesessionclose(longhorcasession)library"PBORC90.DLL"aliasfor"PBORCA_SessionClose"publicfunctionintegersessionsetlibrarylist(longhorcasession,refstringplibnames[],integerinumberoflibs)library"PBORC90.DLL"aliasfor"PBORCA_SessionSetLibraryList"publicfunctionintegersessionsetcurrentappl(longhorcasession,stringlpszappllibname,stringlpszapplname)library"PBORC90.DLL"aliasfor"PBORCA_SessionSetCurrentAppl"publicfunctionintegerlibraryentryexport(longhorcasession,stringlpszlibraryname,stringlpszentryname,longotentrytype,refstringlpszexportbuffer,longlexportbuffersize)library"PBORC90.DLL"aliasfor"PBORCA_LibraryEntryExport"publicfunctionintegercompileentryimport(longhorcasession,stringlpszlibraryname,stringlpszentryname,longotentrytype,stringlpszcomments,stringlpszentrysyntax,longlentrysyntaxbuffsize,longpcomperrorproc,longpuserdata)library"PBORC90.DLL"aliasfor"PBORCA_CompileEntryImport"endprototypestypevariablespubliclongpborca_applicationpubliclongpborca_datawindow=1publiclongpborca_function=2publiclongpborca_menu=3publiclongpborca_query=4publiclongpborca_structure=5publiclongpborca_userobject=6publiclongpborca_window=7publiclongpborca_pipeline=8publiclongpborca_project=9publiclongpborca_proxyobject=10publiclongpborca_binary=11publicintegerpborca_okpubliclongpborca_invalidparms=-1publiclongpborca_dupoperation=-2publiclongpborca_objnotfound=-3publiclongpborca_badlibrary=-4publiclongpborca_liblistnotset=-5publiclongpborca_libnotinlist=-6publiclongpborca_libioerror=-7publiclongpborca_objexists=-8publiclongpborca_invalidname=-9publiclongpborca_buffertoosmall=-10publiclongpborca_comperror=-11publiclongpborca_linkerror=-12publiclongpborca_currapplnotset=-13publiclongpborca_objhasnoancs=-14publiclongpborca_objhasnorefs=-15publiclongpborca_pbdcounterror=-16publiclongpborca_pbdcreaterror=-17publiclongpborca_checkouterror=-18endvariablesforwardprototypespublicfunctionintegerof_importfile(stringas_syntax,stringas_object,longal_type,stringas_pbl,stringas_library[],stringas_appl)endprototypespublicfunctionintegerof_importfile(stringas_syntax,stringas_object,longal_type,stringas_pbl,stringas_library[],stringas_appl);longli_handlelongll_sidlongll_indexintegerli_resultll_sid=sessionopen()li_result=sessionsetlibrarylist(ll_sid,as_library,upperbound(as_library))ifli_result=0thenli_result=sessionsetcurrentappl(ll_sid,as_library[1],as_appl)ifli_result=0thenli_result=compileentryimport(ll_sid,as_pbl,as_object,al_type,"Messagebox->gf_msgbox",as_syntax,len(as_syntax),0,0)ifli_result<>0thenli_handle=fileopen("status.txt",linemode!,write!,lockwrite!,append!)filewrite(li_handle,string(li_result)+"-"+as_pbl+"-"+as_object)fileclose(li_handle)elseli_handle=fileopen("status.txt",linemode!,write!,lockwrite!,append!)filewrite(li_handle,string(li_result)+"-"+as_pbl+"-"+as_object)fileclose(li_handle)endifelseli_handle=fileopen("status.txt",linemode!,write!,lockwrite!,append!)filewrite(li_handle,string(li_result)+"-"+as_pbl+"-"+as_object)fileclose(li_handle)endifelseli_handle=fileopen("status.txt",linemode!,write!,lockwrite!,append!)filewrite(li_handle,string(li_result)+"-"+as_pbl+"-"+as_object)fileclose(li_handle)endifsessionclose(ll_sid)returnli_resultendfunctiononn_cst_pborc.createcallsuper::createtriggerevent("constructor")endononn_cst_pborc.destroytriggerevent("destructor")callsuper::destroyendon 分享到: CakePHP 21 tips (CakePHP的21条技巧) | 多年前做架构时听到的一句话 2010-10-04 12:30 浏览 663 评论(0) 相关推荐 评论 发表评论 您还没有登录,请您登录后再发表评论 buliedian 浏览: 178297 次 性别: 来自: 北京 最近访客 更多访客>> dylinshi126 kku mytools 伊然922 文章分类 全部博客 (1447) 社区版块 我的资讯 (0) 我的论坛 (0) 我的问答 (0) 存档分类 2012-02 (2) 2012-01 (4) 2011-12 (2) 更多存档... 最新评论 放纵思想: 写的不怎么样。 通用性太差。 VC(实现自己的ADO类) iefreer: 转载应标注原文链接: http://blog.csdn.net ... zend server ce 启动错误: internal error hcmfys: 从新,神马 ,南方基地,好熟悉的名字,加油,好姑娘! 从程序员变为项目经理的背后 thiink: 非常想知道如果是自己高一些小的东西,那么可能技术含量不是很高, ... 2011年项目回顾与总结分析 wskiwwwx: 你怎么盗用我的文章啊,两个转载都没标注????http://b ... 自己写的平面柱状图,有个小bug 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。若作者同意转载,必须以超链接形式标明文章原始出处和作者。 &copy; 2003-2014 ITeye.com. All rights reserved. [ 京ICP证110151号 京公网安备110105010620 ]