正常在企业运作的时候,单纯使用标准的SAP系统整套流程走下来固然是没有问题,但是偏偏每个企业都有自己的一套运作流程,所以SAP标准的流程自然不能满足实际运用的需要,所以就需要对SAP系统进行二次开发。客制一些程序和画面,在原有的基础上新增一些功能,来满足企业实际的运用~
实施了SAP的企业在二次开发之前都会向SAP公司申请Access Key来开发ABAP程序。而个人在开发的工程中是不大可能向SAP公司申请的,毕竟个人用户大多都是盗版的。所以,要学习ABAP,破解SAP是必须的!
以下破解方法是在网上找的,呼呼,我就是用这个方式破解的!
使用拥有SAP_ALL权限的用户登录~
一:去掉权限判断文件LSKEYF00的只读属性:
1,Tcode处输入SE30回车(Tcode处就是指登陆sap后界面上放的可输入框)。
2,按F6(Tips&Tricks)
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.
9,把光标放在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(从断点开始运行完程序,一般就需要按3次的F6即可)。
16,上步按f8后,程序会跳出一个或者几个信息框,不必理会,确认,就会出现一个白底灰字的界面,里面是程序源代码,但因为不能修改,所以是灰色的。
四:通过插入可执行代码的方法修改权限判断文件,一劳永逸。
17,这时还是找到上次添加断点那里,
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
ID 'KEY' FIELD DUMMY_KEY.
把光标放在dummy_key.后面,点击界面上的“插入”按钮(快捷键ctrl+shift+f8),屏幕中就会出现
*{ INSERT rightboy 1
*
*} INSERT
其中第一行的后面那串字符串可能会不一样。这时只有中间的*那一行是可以输入的,将*删掉,加入
sy-subrc = 0.
也就是将刚才的内容更改为如下:
*{ INSERT rightboy
sy-subrc = 0.
*} INSERT
18,点击保存,程序会再次跳到断点,按照12-16的步骤继续更改那个值为0并继续,最后会提示保存成功。(如果提示选择session,可以自己点击"新建"随便建立一个,摸索两下就能搞定,此处不再赘述)
19,然后点击程序-激活(快捷键ctrl+f3),如果还跳到断点,请继续按照上述步骤更改值,最后会提示激活成功。
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
破解的同时记得要检查一下语法,千万不要插错地方了,否则会导致语法错误,所有画面都不能进入了!!一旦出现语法错误的情况,就按一下方法解决:
输入se95,然后用户名就选择自己,接下去就会查询处修改的文件,一般会有LSKEYF00这个文件,扩展开来,点击source的项,选择恢复即可~