前往Shuct.Net首页

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

关于PBKILLER的搜索

PBKILLER导出的源码批量修复和批量导入技术_5ijishu的空间_百度空间 相册 广场游戏 登录注册 关注此空间 5ijishu的空间用技术武装大脑............! 2012-01-12 21:26 PBKILLER导出的源码批量修复和批量导入技术 1用PBKILLER可以从pbd导出"*.sr?"这样的文件,但是不能直接导出pbl2由于pb导入"*.sr?"时,由于(1)类之间的依赖关系,若a的父类为b,先导a是不行的(2)PBKILLER导出的源码有部分源码错误。3鉴于以上情况,本人写了serach and replace脚本,对错误语法进行替换4网上搜索到了一个批量导入"*.sr?"的程序,pb写的,用PBKILLER反编译出来,但存在反编译错误5由4知,用到了PBORC80.DLL,OD跟踪pb的导入对象的过程,得到了pb导入用到的函数参数,修复了反编译错误====================================================如下是serch and replace的正则替换脚本,修复部分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导入的核心函数,你可以写一个批处理,就不用一个一个手工导入源码了forwardglobal type n_cst_pborc from nonvisualobjectend typeend forwardglobal type n_cst_pborc from nonvisualobject autoinstantiateend typeglobal n_cst_pborc n_cst_pborctype prototypespublic function long sessionopen7 () library "PBORC70.DLL" alias for "PBORCA_SessionOpen"public subroutine sessionclose7 (long horcasession) library "PBORC70.DLL" alias for "PBORCA_SessionClose"public function integer sessionsetlibrarylist7 (long horcasession,ref string plibnames[],integer inumberoflibs) library "PBORC70.DLL" alias for "PBORCA_SessionSetLibraryList"public function integer sessionsetcurrentappl7 (long horcasession,string lpszappllibname,string lpszapplname) library "PBORC70.DLL" alias for "PBORCA_SessionSetCurrentAppl"public function integer libraryentryexport7 (long horcasession,string lpszlibraryname,string lpszentryname,long otentrytype,ref string lpszexportbuffer,long lexportbuffersize) library "PBORC70.DLL" alias for "PBORCA_LibraryEntryExport"public function integer compileentryimport7 (long horcasession,string lpszlibraryname,string lpszentryname,long otentrytype,string lpszcomments,string lpszentrysyntax,long lentrysyntaxbuffsize,long pcomperrorproc,long puserdata) library "PBORC70.DLL" alias for "PBORCA_CompileEntryImport"public function long sessionopen8 () library "PBORC80.DLL" alias for "PBORCA_SessionOpen"public subroutine sessionclose8 (long horcasession) library "PBORC80.DLL" alias for "PBORCA_SessionClose"public function integer sessionsetlibrarylist8 (long horcasession,ref string plibnames[],integer inumberoflibs) library "PBORC80.DLL" alias for "PBORCA_SessionSetLibraryList"public function integer sessionsetcurrentappl8 (long horcasession,string lpszappllibname,string lpszapplname) library "PBORC80.DLL" alias for "PBORCA_SessionSetCurrentAppl"public function integer libraryentryexport8 (long horcasession,string lpszlibraryname,string lpszentryname,long otentrytype,ref string lpszexportbuffer,long lexportbuffersize) library "PBORC80.DLL" alias for "PBORCA_LibraryEntryExport"public function integer compileentryimport8 (long horcasession,string lpszlibraryname,string lpszentryname,long otentrytype,string lpszcomments,string lpszentrysyntax,long lentrysyntaxbuffsize,long pcomperrorproc,long puserdata) library "PBORC80.DLL" alias for "PBORCA_CompileEntryImport"public function long sessionopen9 () library "PBORC90.DLL" alias for "PBORCA_SessionOpen"public subroutine sessionclose9 (long horcasession) library "PBORC90.DLL" alias for "PBORCA_SessionClose"public function integer sessionsetlibrarylist9 (long horcasession,ref string plibnames[],integer inumberoflibs) library "PBORC90.DLL" alias for "PBORCA_SessionSetLibraryList"public function integer sessionsetcurrentappl9 (long horcasession,string lpszappllibname,string lpszapplname) library "PBORC90.DLL" alias for "PBORCA_SessionSetCurrentAppl"public function integer libraryentryexport9 (long horcasession,string lpszlibraryname,string lpszentryname,long otentrytype,ref string lpszexportbuffer,long lexportbuffersize) library "PBORC90.DLL" alias for "PBORCA_LibraryEntryExport"public function integer compileentryimport9 (long horcasession,string lpszlibraryname,string lpszentryname,long otentrytype,string lpszcomments,string lpszentrysyntax,long lentrysyntaxbuffsize,long pcomperrorproc,long puserdata) library "PBORC90.DLL" alias for "PBORCA_CompileEntryImport"public function long sessionopen10 () library "PBORC100.DLL" alias for "PBORCA_SessionOpen"public subroutine sessionclose10 (long horcasession) library "PBORC100.DLL" alias for "PBORCA_SessionClose"public function integer sessionsetlibrarylist10 (long horcasession,ref string plibnames[],integer inumberoflibs) library "PBORC100.DLL" alias for "PBORCA_SessionSetLibraryList"public function integer sessionsetcurrentappl10 (long horcasession,string lpszappllibname,string lpszapplname) library "PBORC100.DLL" alias for "PBORCA_SessionSetCurrentAppl"public function integer libraryentryexport10 (long horcasession,string lpszlibraryname,string lpszentryname,long otentrytype,ref string lpszexportbuffer,long lexportbuffersize) library "PBORC100.DLL" alias for "PBORCA_LibraryEntryExport"public function integer compileentryimport10 (long horcasession,string lpszlibraryname,string lpszentryname,long otentrytype,string lpszcomments,string lpszentrysyntax,long lentrysyntaxbuffsize,long pcomperrorproc,long puserdata) library "PBORC100.DLL" alias for "PBORCA_CompileEntryImport"public function long sessionopen () library "PBORC90.DLL" alias for "PBORCA_SessionOpen"public subroutine sessionclose (long horcasession) library "PBORC90.DLL" alias for "PBORCA_SessionClose"public function integer sessionsetlibrarylist (long horcasession,ref string plibnames[],integer inumberoflibs) library "PBORC90.DLL" alias for "PBORCA_SessionSetLibraryList"public function integer sessionsetcurrentappl (long horcasession,string lpszappllibname,string lpszapplname) library "PBORC90.DLL" alias for "PBORCA_SessionSetCurrentAppl"public function integer libraryentryexport (long horcasession,string lpszlibraryname,string lpszentryname,long otentrytype,ref string lpszexportbuffer,long lexportbuffersize) library "PBORC90.DLL" alias for "PBORCA_LibraryEntryExport"public function integer compileentryimport (long horcasession,string lpszlibraryname,string lpszentryname,long otentrytype,string lpszcomments,string lpszentrysyntax,long lentrysyntaxbuffsize,long pcomperrorproc,long puserdata) library "PBORC90.DLL" alias for "PBORCA_CompileEntryImport"end prototypestype variablespublic long pborca_applicationpublic long pborca_datawindow = 1public long pborca_function = 2public long pborca_menu = 3public long pborca_query = 4public long pborca_structure = 5public long pborca_userobject = 6public long pborca_window = 7public long pborca_pipeline = 8public long pborca_project = 9public long pborca_proxyobject = 10public long pborca_binary = 11public integer pborca_okpublic long pborca_invalidparms = -1public long pborca_dupoperation = -2public long pborca_objnotfound = -3public long pborca_badlibrary = -4public long pborca_liblistnotset = -5public long pborca_libnotinlist = -6public long pborca_libioerror = -7public long pborca_objexists = -8public long pborca_invalidname = -9public long pborca_buffertoosmall = -10public long pborca_comperror = -11public long pborca_linkerror = -12public long pborca_currapplnotset = -13public long pborca_objhasnoancs = -14public long pborca_objhasnorefs = -15public long pborca_pbdcounterror = -16public long pborca_pbdcreaterror = -17public long pborca_checkouterror = -18end variablesforward prototypespublic function integer of_importfile (string as_syntax,string as_object,long al_type,string as_pbl,string as_library[],string as_appl)end prototypespublic function integer of_importfile (string as_syntax,string as_object,long al_type,string as_pbl,string as_library[],string as_appl);long li_handlelong ll_sidlong ll_indexinteger li_resultll_sid=sessionopen()li_result = sessionsetlibrarylist(ll_sid,as_library,upperbound(as_library))if li_result = 0 then li_result = sessionsetcurrentappl(ll_sid,as_library[1],as_appl) if li_result = 0 then li_result = compileentryimport(ll_sid,as_pbl,as_object,al_type,"Messagebox->gf_msgbox",as_syntax,len(as_syntax),0,0) if li_result <> 0 then li_handle = fileopen("status.txt",linemode!,write!,lockwrite!,append!) filewrite(li_handle,string(li_result) + " - " + as_pbl + " - " + as_object) fileclose(li_handle) else li_handle = fileopen("status.txt",linemode!,write!,lockwrite!,append!) filewrite(li_handle,string(li_result) + " - " + as_pbl + " - " + as_object) fileclose(li_handle) end if else li_handle = fileopen("status.txt",linemode!,write!,lockwrite!,append!) filewrite(li_handle,string(li_result) + " - " + as_pbl + " - " + as_object) fileclose(li_handle) end ifelse li_handle = fileopen("status.txt",linemode!,write!,lockwrite!,append!) filewrite(li_handle,string(li_result) + " - " + as_pbl + " - " + as_object) fileclose(li_handle)end ifsessionclose(ll_sid)return li_resultend functionon n_cst_pborc.createcall super::createtriggerevent("constructor")end onon n_cst_pborc.destroytriggerevent("destructor")call super::destroyend on #pb罕见技术 分享到: 举报 浏览(173) 评论 转载 你可能也喜欢 不羁的旋律 Shayne Ward - Until You 遗憾 Regret 【空间周刊 - 人物志 - Vol20】特别访谈:水润儿_清歌 十二月,岁末盘点(1) [无损专区(APE等)]德国重金属摇滚乐团 Scorpions-蝎子乐队(33CD) 手机隐密功能 本文最近访客 风萧寒211 评论 帮助中心 | 空间客服 | 投诉中心 | 空间协议&copy;2014 Baidu