powerbuilder防止反编译: pbkiller无法解析的部分公布
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无法解析的部分公布相关推荐
- Powerbuilder混淆与加密器(powerbuilder防止反编译,pb混淆器,支持5-12) obfuscator for PowerBuilder...
正式版购买请参考:http://www.mis2erp.com http://www.pb-obfuscator.com http://www.pbd-obfuscator.com 下载地址:http ...
- Androd安全——反编译技术完全解析
0.前言 单纯从技术角度上来讲,掌握反编译功能确实是一项非常有用的技能.另外既然别人可以反编译程序,我们当然有理由应该对程序进行一定的保护,因此代码混淆也是我们必须要掌握的一项技术.看完此篇如果对代码 ...
- 代码保护(二) 通过Java反编译工具测试加密效果
上节介绍了当下几款代码保护工具,本节介绍反编译工具对加密的软件进行破解. 反编译工具:jd-gui 打包工具:exe4j 脱壳工具:PEID 调试工具:OllyICE 一.未加密状态 测试过程: 1. ...
- APK反编译及防护技术
(一)背景 Android APK安全已经是当前安全测试关注的重点,尤其是在互联网公司,很多系统涉及政务信息与支付的,安全问题更是需要重点关注.Android端的项目越来越多,面临的安全问题也很多.本 ...
- 浅析android手游lua脚本的加密与解密(番外篇之反编译的对抗)
前言 去年在看雪论坛写了一篇<浅析android手游lua脚本的加密与解密>的精华文章,今年写一篇番外篇,将一些lua反编译对抗的内容整合一起,并以3个实例作为说明(包括2018腾讯游 ...
- PowerBuilder DeCompiler(PB DeCompiler) Demo download(PB反编译,支持5-12)
PowerBuilder反编译器,支持5-12,pkb2.5.用于源码丢失后的工程恢复. 关键字:Powerbuilder反编译,PB反编译,PBD还原,PBD反编译 powerbuilder Rev ...
- (转)PB项目反编译总结(用PBKILLER和PB反编译大师的RecoveryDW工具)
最近在做PB的项目,该项目只有PBD文件,而没有源码,只能通过反编译PBD文件查看源码,逐步恢复该项目,由于之前没人接触过反编译,网上的PB资料也不是很多,所以一路都是自己摸索过来的,下面是我个人的一 ...
- PB反编译(Powerbuilder反编译)工具的优缺点对比总结
PBKIllER的缺点 1)只能处理6,7,8,9四个版本的文件,无法处理5.0和10.0以上的版本反编 2)longlong变量无法处理 3) 大量未知属性用问号表示 4)不支持powershiel ...
- powerbuilder pbd文件保护方式-pb防止反编译研究
pb中编译后的变量名是于明码方式放置并形成一个列表.如: ls_111.ls_222.ls_333.ls_444 如上,"."代表的是0x00,就是分隔符号. 紧跟变量列表后面,有 ...
- stringbuilder class再反编译_JVM篇(02.class字节码解析)
class文件是JVM的输入,是JVM实现平台无关.技术无关的基础.java虚拟机规范中定义了class文件的结构. class文件格式概述 我们先看下classFile的结构(查阅java 虚拟机规 ...
最新文章
- python123注册需要输入真实姓名和学校吗_python-----作业完成--学校选课系统
- linux怎么创建牡蛎_文件amp;目录小技巧 | Linux后门系列
- 适用matlab获取奥比深度流和视频流的方法
- Istio-0.8.0在Minikube环境中快速启动Bookinfo示例
- 51 时间片系统 纯c语言,51单片C语言学习.doc
- 【移动通信】多址技术和调制技术
- python外卷(10)--取整
- python decimal_python学习笔记一
- C++类对象成员、动态对象、new、delete运算符申请动态空间(C++初学面向对象)
- 2n皇后问题(dfs)
- 新年第一天,3000台Apache服务器宕机
- vm.$set()、vm.$delete()实现todolist类似的功能
- ITIL4 服务管理的四个维度
- DEA模型及matlab应用2:超效率SE-DEA模型
- Adobe Photoshop CC2020【PS cc2020】安装方式及安装包下载
- 被syn攻击了怎么办,如何预防服务器被被syn攻击
- oracle11g ora12514,Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务...
- 性别计算机英语怎么说,性别教育用英语怎么说?
- Fragment has not been attached yet Fragment 套 Fragment
- Leetcode刷题笔记之11. 盛最多水的容器
热门文章
- libGDX-5:文本显示 BitmapFont 和 工具 hiero
- 高通模式9008模式linux,学会小米9008高通模式_原来刷机如此简单
- SAP提供给大众用来做练习用的gateway系统
- KB4484127 更新导致ACCESS数据库查询报 Query '' is corrupt 异常解决方案
- cad批量打印_CAD插件之批量打印1
- matlab菲涅尔衍射光强分布,求助!!!用颜色表示的菲涅尔衍射的光强分布图
- 用友集团前端面经整理及答案
- gege.fans上热搜背后是明星私域流量的折射
- jBridge避开云服务器让AI算力落地的桥联框架技术
- 用excel做logistic回归分析_用Excel做回归分析