IDES
2008年9月26日更新,转载请注明出自网易博客,和原贴地址:http://blog.163.com/right___boy@126/blog/static/231981842007121317905
PS:近日有兄弟说按照我的教程操作时,把语句加错了地方,造成破解失败。今天按照各位说的问题测试了一下,写出了解决方案,并更新了教程,确认教程在某些兄弟的机器上面确实会出现问题,轻则破解失败,重则需要重装IDES,现在已经更改了漏洞部分,更改部分用红色标出。对于改错的兄弟们,对应方法放在最后面了,请各位参考。
------------------------------------------------------------------------------------------------------------------
原来网上只有粗略的介绍,但是对初学者而言都有些困难,很多只是一个大体的逻辑,并没有详细的步骤,费了半天劲终于搞定了,特写下来留念,有可能有些概念不对,以后随着了解的深入会陆续修正。
一:去掉权限判断文件LSKEYF00的只读属性:
1,Tcode处输入SE30回车(Tcode处就是指登陆sap后界面上放的可输入框)。
2,按F6(Tips&Tricks)(这里2,3步是以IDES4.7c为标准的,如果你用的4.6,按f6后会出现一个列表,随便选一个进入,会出现一个分为左右的程序显示框,先把左右的程序全部删除掉,然后参照第三步继续。ecc6.0与本4.7基本相同)
3,在右边写下面一段程序,
Update PROGDIR set edtx = ''
Where
name = 'LSKEYF00'
And
state = 'A'.
4,F8执行,这时文件LSKEYF00的Editor lock就会打开,也就是说将这个文件更改为可以编辑。等于windows下面取消只读权限。
二:在权限判断文件里面加上断点,阻断权限判断。
5,返回到起始页面,Tcode输入SE38回车。
6,程序输入LSKEYF00。
7,点display(显示)。
8,找到 JUMP_THE_WALL 块,
然后在这块中找到下面这段
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
ID 'KEY' FIELD DUMMY_KEY.
CHECK SY-SUBRC EQ 2.
9,把光标放在 ID 'KEY' FIELD DUMMY_KEY. 后面.点击页面上的红色stop(ecc6.0里面没有红色stop,但是有两个“添加断点”,选第二个吧,第一个没有试),在这里添加一个断点,此时上面的最后一行会变为黄色。
10,点击后面一串图标中倒数第四个(创建新的会话),会出现一个新的操作界面窗口,在新窗口的Tcode输入se38回车。(这里如果不这样打开新窗口的话,有可能会造成不能进入断点的状况,我破解6.0时出现过。)
三:逐步修改权限判断文件中的判断参数的值,达到绕过权限判断的目的。
11,程序输入LSKEYF00。点change(修改),程序会进入断点。
12,此时界面下面有连续四行白色的输入框,后面是四行灰色的框。在第一个白色框里面输入sy-subrc回车。(在ecc6.0里面,这里的白色输入框在右边,输入sy-subrc回车后,后面的灰框并不会变成白色,需要双击后面的铅笔才可以。更改后按回车确认。继续14步)
13,此时该行后面的原本灰色的框会变白色,并且出现一个值,将这个值改为0并点击后面的铅笔进行保存。(6.0参照第12步)
14,按f6(单步执行程序),如果输入框中的0变成其它值,将它再改成0丙点击后面的铅笔进行保存。(6.0参照第12步)
15,再次按一下f6,这个值将不再变化(我总共改了两次0),如果程序跳转到endform这个值也没有改变,说明更改成功了。按f8(从断点开始运行完程序)。
16,上步按f8后,程序会跳出一个或者几个信息框,不必理会,确认,就会出现一个白底灰字的界面,里面是程序源代码,但因为不能修改,所以是灰色的。
四:通过插入可执行代码的方法修改权限判断文件,一劳永逸。
17,这时还是找到上次添加断点那里,
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
ID 'KEY' FIELD DUMMY_KEY.
CHECK SY-SUBRC EQ 2.
把光标放在 CHECK SY-SUBRC EQ 2. 前面,点击界面上的“插入”按钮(快捷键ctrl+shift+f8),屏幕中就会出现
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
ID 'KEY' FIELD DUMMY_KEY.
*{ INSERT rightboy 1
*
*} INSERT
CHECK SY-SUBRC EQ 2.
其中第一行的后面那串字符串可能会不一样。这时只有中间的*那一行是可以输入的,将*删掉,加入
sy-subrc = 0.
也就是将刚才的内容更改为如下:
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
ID 'KEY' FIELD DUMMY_KEY.
*{ INSERT rightboy 1
sy-subrc = 0.
*} INSERT
CHECK SY-SUBRC EQ 2.
18,点击保存,程序会再次跳到断点,按照12-16的步骤继续更改那个值为0并继续,最后会提示保存成功。(如果提示选择session,可以自己点击"新建"随便建立一个,摸索两下就能搞定,此处不再赘述)
19,然后点击程序-激活(快捷键ctrl+f3)(这里,我在破解另外一个4.6c的时候“激活”按钮并不可能,其实此处激活是自动的,不必理会,你会看到显示的程序名的后面有一个“活动的”或者“active”的标记,如果没有,“激活”按钮一定可用),如果还跳到断点,请继续按照上述步骤更改值,最后会提示激活成功。
20,关闭所有的ides登陆界面,重新登陆ides,Tcode输入se38回车,程序输入LSKEYF00。点display(显示)。找到刚才修改的地方,应该发现刚才的添加成功了。
21,我通过破解大致了解了这个程序文件的内容,这程序就是ides判断是否有key的判断程序,当sy-subrc = 0的时候,就有权限访问,如果不满足一些条件,sy-subrc 就会改变,所以在这里强制它变为0,就等于破解掉了。于是我就重复步骤将原码变成下列的样子:
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
ID 'KEY' FIELD DUMMY_KEY.
*{ INSERT rightboy 1
sy-subrc = 0.
*} INSERT
CHECK SY-SUBRC EQ 2. "customer system!
*{ INSERT rightboy 2
sy-subrc = 0.
*} INSERT
MOVE SPACE TO DUMMY_KEY.
*{ INSERT rightboy 3
sy-subrc = 0.
*} INSERT
RC = 0.
ENDFORM. " JUMP_THE_WALL
以上一切步骤完毕,我后来又破解了几个不同版本的系统,并将上述步骤完善了一下,4.6,4.7,6.0都可以用此方法破解,其中比较关键的是第一步,去掉LSKEYF00文件的editor lock,其他步骤大同小异,希望对大家有所帮助。
由于工作比较忙,所以blog并不是经常上来,而且貌似网易blog的邮件通知并不是很好用,很多留言我都没有收到邮件通知,所以,如果各位有什么问题,请先在这里留言,然后发个邮件通知我一声,我会过来尽力帮助解决的~~还有,邮件中最好不要描述问题,把问题留在这里就好,也好给其他人作为参考。我的邮箱地址:right___boy@126.com,就是blog的地址啦~~中间是三个下划线哦~~大家共同进步吧。河北 石家庄 rightboy
下面来说说改错的朋友们该怎么办,改错了以后,点击激活时,会有一个提示框:程序有错误,是否激活?1,active anyway,2,修改错误,3,忘了。如果此时选择了active anyway,并且断点已经被你取消掉了,那么很不幸,节哀吧,据我所知,除了重装系统没有别的办法,我的系统刚才按网友描述做了一次,现在就是这样,现在添加断点时会提示由于错误,无法添加断点,也就无法再做任何修改了,呵呵~~如果没有选择active anyway,系统还有救,此时如下处理:
1:此时点击激活,会出现“有错误提示”,选择第二个按钮“处理错误”,进入断点,按f8一次,就进入了编辑模式,下面会显示错误提示"ID ... FIELD ..." expected after "'1234567890'".
2:找到刚才添加的语句,注释掉它(在其前面加上*)
3:往下几行,找到此句:CHECK SY-SUBRC EQ 2. "customer system!
4:将光标放在此句开头处,点击插入,会变为
*{ INSERT rightboy 6
*
*} INSERT
CHECK SY-SUBRC EQ 2. "customer system!
5:去掉这个*,添加语句sy-subrc = 0. ,变为
*{ INSERT rightboy 6
sy-subrc = 0.
*} INSERT
CHECK SY-SUBRC EQ 2. "customer system!
6:点击保存,修改sy-subrc,点击激活,修改sy-subrc。此时激活应该成功,破解成功。
附上修改后正确的form jump the wall
FORM JUMP_THE_WALL USING RC type sysubrc.
RC = 1.
CALL 'CHECK_TADIR_ACCESS_FREE'.
CHECK SY-SUBRC NE 0.
CHECK SY-BATCH EQ SPACE.
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
*{ INSERT rightboy 5
*sy-subrc = 0."这里前面加了*,此句无效,不会影响程序运行
*} INSERT
ID 'KEY' FIELD DUMMY_KEY.
*{ INSERT rightboy 1
sy-subrc = 0."这里添加此句!!
*} INSERT
CHECK SY-SUBRC EQ 2. "customer system!
*{ INSERT rightboy 3
sy-subrc = 0."这里添加此句!!
*} INSERT
MOVE SPACE TO DUMMY_KEY.
*{ INSERT rightboy 4
sy-subrc = 0."这里添加此句!!
*} INSERT
RC = 0.
ENDFORM. " JUMP_THE_WALL
保佑各位看官TX顺利完成~~
修改前:
----------------------------------------------------------------------------
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
ID 'KEY' FIELD DUMMY_KEY.
*{ INSERT I01K900015 2
if sy-uname = 'ABAPER' or sy-uname = 'SAPER'.
sy-subrc = 0.
endif.
*} INSERT
修改后:
-----------------------------------------------------------------------
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
*{ INSERT I01K900015 3
*} INSERT
*{ INSERT &$&$&$&$ 4
*} INSERT
ID 'KEY' FIELD DUMMY_KEY.
*{ INSERT I01K900015 2
if sy-uname = 'ABAPER' or sy-uname = 'SAPER' or sy-uname = 'BAIBOYD'.
*{ INSERT REQUEST ID &$&$&$&$ sy-subrc = 0
*} INSERT
endif.
*} INSERT
方法:把" *{ INSERT REQUEST ID &$&$&$&$ sy-subrc = 0 "
恢复成原来" sy-subrc = 0. "
*{ INSERT I01K900015 3
*} INSERT
*{ INSERT &$&$&$&$ 4
*} INSERT
应该相当于运行一个空,对程序没有影响。
PS. 网上介绍的方法过于简化,如果操作的时候不注意细节就很难破解成功。
这个方法我是在IDES 4.6C里操作的,还有一个ECC5.0的SAP测试系统可能就无能为力了,可能得用算号器了(有Installation号,但hareware Key不知道指的是哪的号,我可是在远程客户端),但可惜偶没有。
Crack SAP/IDES ABAP ACCESS KEY
本文关键词:SAP/IDES ABAP ACCESS KEY,破解,算号器,KEY生成器,ZAPGUI,License
---------------------------------------------------------------------
经过大半天的琢磨,偶总结出了合适的方法FOR IDES 4.6C:
如果你用的是IDES,你必须有一个除DDIC及SAP*以外的用户帐号,首先DDIC用户用户进入,SU01, 输入用户名比如"SAPER",回车,建立一个用户帐号,然后把设置密码, profile选项中输入"SAP_ALL",保存,然后退出.
然后用新建立的"SAPER"登陆,系统会提示你更改密码.更改,然后提示你是第一次登陆?然后开始破解了.
先检查程序:用T-CODE:SE38,查看程序LSKEYF00的属性是否是Editor lock(锁上的话会打勾,灰色的不可直接取消),如果是,执行SE30->F6(Tips&Tricks),在右边窗口粘贴下面一段程序:
Update PROGDIR set edtx = ''
Where name = 'LSKEYF00'
And state = 'A'.
然后按F8执行,LSKEYF00的Editor lock就会打开.
然后请严格按以下步骤修改:
1. SE38, 输入"LSKEYF00",然后点"DISPLAY",找到form: JUMP_THE_WALL(大概在第80行上下),然后设置断点在
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
ID 'KEY' FIELD DUMMY_KEY.
所谓设置断点,就是把光标放在这里,点击红色的"stop"按钮.
2. 新建一个会话窗口,T-CODE:SE38,输入LSKEYF00,然后点"CHANGE", 这时回停在断点上.
注意:现在的画面是ABAP_DEBUGGER模式, 中间显示的是灰色的.
在下面有FILED NAME和FILED VALUE两排输入框输入"SY-SUBRC",然后回车.后面有个值,把它修改成0, 然后点后面的小笔(修改);然后"F6",代码跳到下一个地方,然后再次修改成0,然后点后面的小笔(修改); 然后"F6",然后"F8"(即:改0 -->F6 --> 改0 --> F6 --> F8).
然后出来什么请求框,一路对勾过去,然后会跳到"LSKEYF00"的编辑画面,把光标停在你设端点的那行下面一行,即
ID 'KEY' FIELD DUMMY_KEY.
的下一行.
然后点"INSERT"按钮,在光标处会多出以下的字符
*{ INSERT REQUEST ID &$&$&$&$ 1 注意:&$&$&$&$ 1 可能是另外一串数字,不管它
*
*}INSERT
把中间的" * "退格删除,然后在此处加上这段话
IF sy-uname = 'ABAPER'. 注意:sy-uname 为自己的user id
sy-subrc = 0.
ENDIF.
如果是多个帐户则代码为:
IF sy-uname = 'ABAPER' or sy-uname = 'baiboyd'. 注意:依此类推
sy-subrc = 0.
ENDIF.
如果不能输入,就在外面写好下面的话,CTRR+V可以过来,变成以下的样子:
*{ INSERT REQUEST ID &$&$&$&$ 1
IF sy-uname = 'ABAPER'.
SY-SUBRC =0.
*}INSERT
3. 然后点"EDIT-->CHECK-->SYNATX CHECK"(记得好像不是在EDIT菜单里,不管,你能找到CHECK-->SYNATX CHECK就行)检查语法是否出错,正确的话,最下面会有信息提示.你的输入是正确的. 这时你窗口最上面的 LSKEYF00 后面应该是 ACTIVE(REVISED).然后保存.
这时可能还会进入调试模式,再继续修改SY-SUBRC 的值为0(按上面的步骤,即:改0 -->F6 --> 改0 --> F6 --> F8).再保存,系统会弹出创建request的对话框,自己创建一个request,然后确定,整个过程就ok了.这时新开一个会话,紧接着就要把这2个SE38的窗口都关闭,不然再作任何一个其它操作的话可能又得重新来一次.
从新会话用T-CODE:SE38,输入LSKEYF00,显示,看看加入的代码是否已经进入.搞定,以后就可以SE38了,不行呀那你再重来吧.
===================================================================
当然还有其它破解方法,我这里就不讲了,自己在百度里找吧.
听说还有用算号器或Key生成器,可以生成相关的Access Key,不过我没有在网上找到,只找到了一个"Key generator",但我是在客户端,应该不能操作的,因为hardware key应该指的是服务器的.但我觉得我需要的是Developer register key,此key与注册用户相关,但具体怎么知道我还没有找到方法.
网上相关评论转载如下(原载不知道是哪,的确网上贴得到处都是,不知道原是原创,呵呵,对不起原作者了):
---------------------------------------------------------------------------
R3 的License与机器相关联吗?就是说一个License可以用于多台机器吗?
相关的,申请的时候要hardware key, 这个hardware key是根据硬件和当时的操作系统产生的,如果你的操作系
统重装了,hardware key就变掉了。
那我拿到一个License,这个License并不是我的系统申请的,就是说这个License是没有用的?BTW,Licesnse是
一个可执行文件(.exe)文件吗?
應該是沒有用的,hardware key根據不同機器、網卡號碼等,號碼都會不同。當你裝完IDES後,要做
saplicense; -install 時,你要有下列的資訊System name (SID) Hardware key Installation number License
expiration date License key所以你的機器不同,他會通知你hardware key有問題。另外,license不是執行檔
,如同上面所示,用saplicense的指令來控制。 相同的机器,重装了OS, hardware key 也是不相同的,要重新申请才行
那一个exe的文件程式有什么用?用来产生License?不可能吧?
SAPlicense 是一个系统文件:可以查找机器码、安装license、删除license、显示license!就是不能生成Licesne,要不然用SAP岂不是不要钱了!要想得到license 需要到SAP去申请撒。(当然前提条件是你得交钱呀!)除非......
LICENSE的确是要和系统硬件联系起来的。但是系统重新装过后——只要没有改变你以前系统的结构——就是说:
WINDOWS上,C盘没有重新分区——那么新装的R/3的LICENSE还可以用原来的。其他的UNIX机器我没有做个实验不
好说,但我在AIX上作过:我就是换掉UNIX机器的的ROOTVG的硬盘,用个新的来代替,原来的许可也是可以正常使用的。
1、system license: 当安装完SAP以后,系统自动产生一个为期4周的临时license,在此期间内,一切操作正常。
如果超过此期限,你就无法登录了,此时,只能用SAP*登录,完成一些简单的操作。system license 是跟硬件相关的。
2、Developer register key: 当开发员想要开发自己的ABAP程序(此程序必须用YZ开头)时,需要首先注册此key。 此key与注册用户相关。
3、SAP object modify key: 当开发员想要修改SAP的object时(比如说SAP 程序)时,需要注册此Key. 此key与SAP object相关
偶昨晚用算号器破了ECC5.0 SAP的ABAP DEVELOPER ACCESS KEY,不记得详细怎么做了,忘记在SE38的Program field里填什么了,反正是用Installation number和User name加版本号(后面发现版本不需要)点击DEVELOPER算出来的。我记得可以自定义,但刚才试了一下,不行,只能创建以“YZ”开头的程序名。
今天,我在4.6C里用SE38修改,把LSKEYF00里的“or sy-uname = 'BAIBOYD' ”这段去掉了,因为我想试一下用算号器注册会怎么样,保存,再用SE38进入,权限还没变,LOG OFF;重新LOGON,再用SE38进入,创建,不行了,弹出一个窗口要求输入两个KEY,一个是DEVELOPER KEY,另外一个是OBJECT KEY(得到此OBJECT的KEY后,如果OBJECT是标准程序,听说可以对它进行修改)。不行,我发现一个OBJECT KEY是唯一对应一个Program name的,也就是说,如果你每创建一个新的程序名,都必须得注册一个OBJECT KEY,没门,这么麻烦,还不如你掐死我算了,早知道不改动什么了,不过还可以回到从前,因为我总是有应对的方法,呵呵。所以我只想注册一个DEVELOPER KEY就行了,好了,开始动手。
用SE38,LSKEYF00,修改,弹出一个“Register object”的窗口,把Installation number复制过来粘贴到算号器第一个栏位“License number”里;然后再把the object号码粘贴到算号器第二个栏位“User/Object”里,记得把中间两个空格去掉,不要算出来不对;最后一个栏位“SAP Version”应该填写的是SAP的版本号,比如4.6C的版本号为“46C”,ECC5.0的版本号为“640”,4.70/4.71/2.72应该分别对应“470/471/472”,ECC6.0就不知道了;好,万事具备,只欠北风,在算号器里点击一下“Object”按钮,然后你会看到“Result”栏里生成一串代码,就是我们要找的ACCESS KEY了;接下来就是把它复制回SAP “Register object”的窗口的“ACCESS KEY”栏位,点击“continue”,OK,你已经胜利了。
噢,我突然起来我在ECC5.0中是怎么改的了,当时我在SE38里输入了一个以Z开头的程序名,然后点击创建,这时弹出一个窗口要求输入DEVELOPER KEY,回到算号器中,输入Installation number和User name点击DEVELOPER算出ACCESS KEY。再回到KEY注册界面,把ACCESS KEY粘贴进来,“continue”,OK。
总结:
1。以上介绍了两种方法,都适用于各个版本的SAP/IDES
2。注册后,只能创建以字母Y或Z开头的程序,而不是前面误解的YZ
3。通过修改程序LSKEYF00得到的权限更大,可以修改SAP的标准程序,而不需要注册OBJECT KEY