powerbuilder防止反编译: pbkiller无法解析longlong类型而且错得一塌糊涂

pbkiller2.5.18无法解析longlong类型,一旦你申明longlong类型无法反编译出类型,值也不对,因为longlong采用类似指针的方式存放值。

只要在代码中如此写:

int aaa =100
long bbb = 1000
longlong ccc = 20000
boolean ddd = false
datawindow dwx

aaa = 2 - 3
bbb = 1 -2
ccc = ((((((aaa + ccc *aaa + ccc))))))

return 1

反编译出来是:
integer aaa = 100
long bbb = 1000
 ccc = 8
boolean ddd = false
datawindow dwx

aaa = 2 - 3
bbb = 1 - 2
ccc.commit using aaa;
aaa.pbm_bmgetstate.commit using pbm_bmgetstate;
return
return
return

补充:

同样的,只要出现longlong类型的字面量,都会出现解析不到的问题

source:

return 1
return 10
return 100
return 1000
return 10000
return 100000
return 1000000
return 10000000
return 100000000
return 1000000000
return 10000000000
return 100000000000
return 1000000000000
return 10000000000000
return 100000000000000
return 1000000000000000
return 10000000000000000
return 100000000000000000
return 1000000000000000000
return 10000000000000000000

反编译后:

do

do

do

do

do
     return 1
     return 10
     return 100
     return 1000
     return 10000
     return 100000
     return 1000000
     return 10000000
     return 100000000
     return 1000000000
     return
     return
     destroy(?????)
     return
     return
     return
     return
     return primary
     return
     return
    loop while 0

loop while "       "

loop while

loop while

loop while

return

/*================*/

20090822:今天在写一个demo时,发现pbkiller在解析参引对象列表时存在问题:

type strc_333 from structure
 blob  aaa
 blob  aaax[255]
 blob  aaay[255,254,253,252]
 blob  aaa1
 blob  aaa2
 boolean  bbb
 char  ccc
 date  eee
 datetime  fff
 decimal  ggg
 decimal  ggg0
 decimal  ggg1
 decimal  ggg2
 decimal  ggg3
 decimal  ggg4
 decimal  ggg5
 decimal  ggg6
 decimal  ggg7
 decimal  ggg8
 decimal  ggg9
 decimal  ggg10
 decimal  ggg11
 decimal  ggg12
 decimal  ggg13
 decimal  ggg14
 decimal  ggg15
 decimal  ggg16
 decimal  ggg17
 decimal  ggg18
 double  jjj
 integer  kkk
 long  lll
 ???????  mmm
 string  nnn
 time  ppp
 uint  qqq
 ulong  rrr
 real  sss
 any  ttt
 accessibility  t1
 accessiblestate  t2
 adoresultset  t3
 application  t4
 arraybounds  t5
 checkbox  t6
 classdefinition  t7
 classdefinitionobject  t8
 commandbutton  t9
 connection  t10
 connectioninfo  t11
 connectobject  t12
 contextinformation  t13
 contextkeyword  t14
 corbabadcontext  t15
 corbabadinvorder  t16
 corbabadoperation  t17
 corbabadparam  t18
 corbabadtypecode  t19
 corbacommfailure  t20
 corbacurrent  t21
 corbadataconversion  t22
 corbafreemem  t23
 corbaimplimit  t24
 corbainitialize  t25
 corbainternal  t26
 corbaintfrepos  t27
 corbainvalidtransaction  t28
 corbainvflag  t29
 corbainvident  t30
 corbainvobjref  t31
 corbamarshal  t32
 corbanoimplement  t33
 corbanomemory  t34
 corbanopermission  t35
 corbanoresources  t36
 corbanoresponse  t37
 corbaobjadapter  t38
 corbaobject  t39
 corbaobjectnotexist  t40
 corbapersiststore  t41
 corbasystemexception  t42
 corbatransactionrequired  t43
 corbatransactionrolledback  t44
 corbatransient  t45
 corbaunion  t46
 corbaunknown  t47
 corbauserexception  t48
 cplusplus  t49
 datastore  t50
 datawindow  t51
 datawindowchild  t52
 dividebyzeroerror  t53
 dragobject  t54
 drawobject  t55
 dropdownlistbox  t56
 dropdownpicturelistbox  t57
 dwobject  t58
 dwruntimeerror  t59
 dynamicdescriptionarea  t60
 dynamicstagingarea  t61
 editmask  t62
 enumerationdefinition  t63
 enumerationitemdefinition  t64
 environment  t65
 error  t66
 errorlogging  t67
 exception  t68
 extobject  t69
 function_object  t70
 graph  t71
 graphicobject  t72
 graxis  t73
 grdispattr  t74
 groupbox  t75
 hprogressbar  t76
 hscrollbar  t77
 htrackbar  t78
 inet  t79
 internetresult  t80
 jaguarorb  t81
 line  t82
 listbox  t83
 listview  t84
 listviewitem  t85
 mailfiledescription  t86
 mailmessage  t87
 mailrecipient  t88
 mailsession  t89
 mdiclient  t90
 menu  t91
 menucascade  t92
 message  t93
 multilineedit  t94
 nonvisualobject  t95
 nullobjecterror  t96
 olecontrol  t97
 olecustomcontrol  t98
 oleobject  t99
 oleruntimeerror  t100
 olestorage  t101
 olestream  t102
 oletxnobject  t103
 omcontrol  t104
 omcustomcontrol  t105
 omembeddedcontrol  t106
 omobject  t107
 omstorage  t108
 omstream  t109
 orb  t110
 oval  t111
 pbtocppobject  t112
 pbxruntimeerror  t113
 picture  t114
 picturebutton  t115
 picturehyperlink  t116
 picturelistbox  t117
 pipeline  t118
 powerobject  t119
 profilecall  t120
 profileclass  t121
 profileline  t122
 profileroutine  t123
 profiling  t124
 radiobutton  t125
 rectangle  t126
 remoteobject  t127
 resultset  t128
 resultsets  t129
 richtextedit  t130
 roundrectangle  t131
 runtimeerror  t132
 scriptdefinition  t133
 service  t134
 simpletypedefinition  t135
 singlelineedit  t136
 sslcallback  t137
 sslserviceprovider  t138
 statichyperlink  t139
 statictext  t140
 structure  t141
 systemfunctions  t142
 tab  t143
 throwable  t144
 timing  t145
 traceactivitynode  t146
 tracebeginend  t147
 traceerror  t148
 traceesql  t149
 tracefile  t150
 tracegarbagecollect  t151
 traceline  t152
 traceobject  t153
 traceroutine  t154
 tracetree  t155
 tracetreeerror  t156
 tracetreeesql  t157
 tracetreegarbagecollect  t158
 tracetreeline  t159
 tracetreenode  t160
 tracetreeobject  t161
 tracetreeroutine  t162
 tracetreeuser  t163
 traceuser  t164
 transaction  t165
 transactionserver  t166
 treeview  t167
 treeviewitem  t168
 typedefinition  t169
 userobject  t170
 variablecardinalitydefinition  t171
 variabledefinition  t172
 vprogressbar  t173
 vscrollbar  t174
 vtrackbar  t175
 window  t176
 windowobject  t177
 m_1  t200
 m_2  t201
 m_3  t202
 m_4  t203
 m_5  t204
 m_6  t205
 m_7  t206
 m_8  t207
 m_9  t208
 m_10  t209
 m_11  t210
 m_12  t211
 m_13  t212
 m_14  t213
 m_15  t214
 m_16  t215
 m_17  t216
 m_18  t217
 m_19  t218
 m_21  t220
 m_22  t221
 m_23  t222
 m_24  t223
 m_25  t224
 m_26  t225
 m_27  t226
 m_28  t227
 m_29  t228
 m_31  t230
 m_32  t231
 m_33  t232
 m_34  t233
 m_35  t234
 m_36  t235
 m_37  t236
 m_38  t237
 m_39  t238
 m_41  t240
 m_42  t241
 m_43  t242
 m_44  t243
 m_45  t244
 m_46  t245
 m_47  t246
 m_48  t247
 m_49  t248
 m_51  t250
 m_52  t251
 m_53  t252
 m_54  t253
 m_55  t254
 m_56  t255
 m_57  t256
 m_58  t257
 m_59  t258
 m_61  t260
 m_62  t261
 m_63  t262
 m_64  t263
 m_65  t264
 m_66  t265
 m_67  t266
 m_68  t267
 m_69  t268
 m_71  t270
 m_72  t271
 m_73  t272
 m_74  t273
 m_75  t274
 m_76  t275
 m_77  t276
 m_78  t277
 m_79  t278
 m_81  t280
 m_82  t281
 m_83  t282
 m_84  t283
 m_85  t284
 ??????  t285
 ??????  t286
 ??????  t287
 ??????  t288
 ??????  t290
 ??????  t291
 ??????  t292
 ?????? t293
end type

红色问号部分为无法解析的部分。一般而言,参引对象列表系统的一共177个内置对象。我又加了100个menu对象。很明显作者认为最多可以引用255个。其实不然。参引对象可以多达32768个。

//20090820:补充

type strc_111 from structure
 string  ccc
 string  ccc1[12]                              //source为ccc1[2 to 12];看来没有搞定所有的声明方式。
 string  ccc2[65535]
 string  ccc3[255,255]
 string  ccc4[255,255,255]
 string  ccc5[255,255,255,255]
end type

//20090821:

在uo或win的instance和shared区分别申明两个int变量:

instance : int ii_111 = 65535      //反编译为-1

shared:    int si_222 = 65535     //反编译为65535,从存储本质来看,是没问题,但是参与其他提升计算就会有问题。

//20090822

发现枚举类型它无法反编译得到初始值。

alignment lal_111= left!
alignment lal_222= right!
alignment lal_333= center!

//20090823

一个变量的申明格式如:{access-right,accessread,accesswrite} datatype{size}{precision} varname

pbkiller对access部分没有解析,也就是public,private,protected等。对constant也没解析,对size部分和precision部分都没有解析,就是其他篇里指出的如:blob{255} var1和dec{4} var2这样的情况没有得到解析。可见,其还是非常欠缺的。

//20090903

uing u1 = 65537    //取模应该是 u1 = 1,但是它没有处理。只是显示65537.

//20090903:

real = 100.01,测试反编译值是错误的。可能是用c++的unsigned int去取值,然后转成double处理的。证明是错误的。real应该转c++的float才是正确的。我在做decompiler时也犯同样错误,后面改为

float f1;

memcpy(&f1,&uint1,4),这样处理即ok。

//20090903

ulong c3 = 4294967294  反编译为-2
ulong c4 = 4294967295  反编译为-1

dec{16} dec{17}dec{18}的变量初值错误。

很明显是用c++的unsigned __int32去取得pb的四位ulong值,但是显示时要IntToStr(),这个函数支持int和__int64两种,很明显作者并未进行强制转换,致使出现-2,-1的错误。

鉴于目前pb6-9使用很普遍。这里给大家提个醒,可以利用pbkiller的bug防止关键数据。如果作者不更新的话(目前看的使用形式看,他不会更新了,因为pb已经不热了。而且他软件是免费的,缺少原动力。)这些问题永远都会存在的。我们善加利用之。

推荐查看我的软件作品:

1. PB反编译大师

2. PB混淆加密大师

3. 互联网数据组件:DataWindowHTTP

4. ESC/POS打印组件:ESC/POS ImagePrint

5. SQLConnectManager:数据库连接断线管理(年后即将测试)

http://powerbuilder.ltd/indexcn.html

powerbuilder防止反编译: pbkiller无法解析的部分公布相关推荐

  1. Powerbuilder混淆与加密器(powerbuilder防止反编译,pb混淆器,支持5-12) obfuscator for PowerBuilder...

    正式版购买请参考:http://www.mis2erp.com http://www.pb-obfuscator.com http://www.pbd-obfuscator.com 下载地址:http ...

  2. Androd安全——反编译技术完全解析

    0.前言 单纯从技术角度上来讲,掌握反编译功能确实是一项非常有用的技能.另外既然别人可以反编译程序,我们当然有理由应该对程序进行一定的保护,因此代码混淆也是我们必须要掌握的一项技术.看完此篇如果对代码 ...

  3. 代码保护(二) 通过Java反编译工具测试加密效果

    上节介绍了当下几款代码保护工具,本节介绍反编译工具对加密的软件进行破解. 反编译工具:jd-gui 打包工具:exe4j 脱壳工具:PEID 调试工具:OllyICE 一.未加密状态 测试过程: 1. ...

  4. APK反编译及防护技术

    (一)背景 Android APK安全已经是当前安全测试关注的重点,尤其是在互联网公司,很多系统涉及政务信息与支付的,安全问题更是需要重点关注.Android端的项目越来越多,面临的安全问题也很多.本 ...

  5. 浅析android手游lua脚本的加密与解密(番外篇之反编译的对抗)

    前言   去年在看雪论坛写了一篇<浅析android手游lua脚本的加密与解密>的精华文章,今年写一篇番外篇,将一些lua反编译对抗的内容整合一起,并以3个实例作为说明(包括2018腾讯游 ...

  6. PowerBuilder DeCompiler(PB DeCompiler) Demo download(PB反编译,支持5-12)

    PowerBuilder反编译器,支持5-12,pkb2.5.用于源码丢失后的工程恢复. 关键字:Powerbuilder反编译,PB反编译,PBD还原,PBD反编译 powerbuilder Rev ...

  7. (转)PB项目反编译总结(用PBKILLER和PB反编译大师的RecoveryDW工具)

    最近在做PB的项目,该项目只有PBD文件,而没有源码,只能通过反编译PBD文件查看源码,逐步恢复该项目,由于之前没人接触过反编译,网上的PB资料也不是很多,所以一路都是自己摸索过来的,下面是我个人的一 ...

  8. PB反编译(Powerbuilder反编译)工具的优缺点对比总结

    PBKIllER的缺点 1)只能处理6,7,8,9四个版本的文件,无法处理5.0和10.0以上的版本反编 2)longlong变量无法处理 3) 大量未知属性用问号表示 4)不支持powershiel ...

  9. powerbuilder pbd文件保护方式-pb防止反编译研究

    pb中编译后的变量名是于明码方式放置并形成一个列表.如: ls_111.ls_222.ls_333.ls_444 如上,"."代表的是0x00,就是分隔符号. 紧跟变量列表后面,有 ...

  10. stringbuilder class再反编译_JVM篇(02.class字节码解析)

    class文件是JVM的输入,是JVM实现平台无关.技术无关的基础.java虚拟机规范中定义了class文件的结构. class文件格式概述 我们先看下classFile的结构(查阅java 虚拟机规 ...

最新文章

  1. python123注册需要输入真实姓名和学校吗_python-----作业完成--学校选课系统
  2. linux怎么创建牡蛎_文件amp;目录小技巧 | Linux后门系列
  3. 适用matlab获取奥比深度流和视频流的方法
  4. Istio-0.8.0在Minikube环境中快速启动Bookinfo示例
  5. 51 时间片系统 纯c语言,51单片C语言学习.doc
  6. 【移动通信】多址技术和调制技术
  7. python外卷(10)--取整
  8. python decimal_python学习笔记一
  9. C++类对象成员、动态对象、new、delete运算符申请动态空间(C++初学面向对象)
  10. 2n皇后问题(dfs)
  11. 新年第一天,3000台Apache服务器宕机
  12. vm.$set()、vm.$delete()实现todolist类似的功能
  13. ITIL4 服务管理的四个维度
  14. DEA模型及matlab应用2:超效率SE-DEA模型
  15. Adobe Photoshop CC2020【PS cc2020】安装方式及安装包下载
  16. 被syn攻击了怎么办,如何预防服务器被被syn攻击
  17. oracle11g ora12514,Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务...
  18. 性别计算机英语怎么说,性别教育用英语怎么说?
  19. Fragment has not been attached yet Fragment 套 Fragment
  20. Leetcode刷题笔记之11. 盛最多水的容器

热门文章

  1. libGDX-5:文本显示 BitmapFont 和 工具 hiero
  2. 高通模式9008模式linux,学会小米9008高通模式_原来刷机如此简单
  3. SAP提供给大众用来做练习用的gateway系统
  4. KB4484127 更新导致ACCESS数据库查询报 Query '' is corrupt 异常解决方案
  5. cad批量打印_CAD插件之批量打印1
  6. matlab菲涅尔衍射光强分布,求助!!!用颜色表示的菲涅尔衍射的光强分布图
  7. 用友集团前端面经整理及答案
  8. gege.fans上热搜背后是明星私域流量的折射
  9. jBridge避开云服务器让AI算力落地的桥联框架技术
  10. 用excel做logistic回归分析_用Excel做回归分析