有一份正版授权的key文件,到期的也可以
涉及工具:
冷.小.黑破盾OD(过SE反逆向检测)
WinHex(获得文件的十六进制字符)
内存补丁:本文用的是Baymax Patch Tools
教程类型:
逆向机器码是否讲解思路和原理:
是
以下为图文内容:第一次弄这玩意,小小白
要逆向的文件:OD进行逆向因为加壳了,就不用继续分析了ctrl+b 搜索8D4DD4E8选择下面这个call[
,继续向下跟进(跟进最近的call和jmp)可以看到push esi,复制内存地址
编辑脚本,将脚本中的【内存地址】文字替换为你上面找到的内存地址[Python] 纯文本查看 复制代码
//GetSe_Shielden+Licensor.2.4.xx keynotes//
//rsa_memcoy #8D4DD4E8# |push est //
var Crc
var Rsa_Memcoy
var RandKey
var RandKeySize
var PublicKey
var PublicKeySize
var CodeStart
var CodeSize
var CodeEnd
mov RandKeySize,0AA0
mov PublicKeySize,104
mov Rsa_Memcoy,内存地址 //address
bphwcall
bc
GMEMI eip,MEMORYBASE
mov CodeStart,$RESULT
add CodeEnd, CodeStart
GMEMI eip,MEMORYSIZE
mov CodeSize,$RESULT
add CodeEnd,CodeSize
FIND CodeStart,#C1C00733C6413B4C240872F0#
add $RESULT ,0D
mov Crc,$RESULT
bp Crc
RUN
RUN
RUN
RUN
RUN
RUN
RUN
RandKey:
bc
EVAL "edx > {CodeStart} && edx <{CodeEnd} && [esp+4] > 0A9F && [esp+4] < 0AA1"
BPCND Rsa_Memcoy,$RESULT
RUN
ITOA edx
WRTA "RandKey.txt","RandKey:"+$RESULT
DM edx, RandKeySize, "RandKey.bin"
bc
PublicKey:
find CodeStart,#61C3#
cmp $RESULT,0
je loop
add $RESULT,1
bp $RESULT
mov CodeStart,$RESULT
jmp PublicKey
loop:
run
cmp eax,104
jne loop
cmp [esp+48],104
jne exit
mov PublicKey, [esp+44]
ITOA PublicKey
WRTA "PublicKey.txt", "PublicKey:" +$RESULT
DM PublicKey,218,"PublicKey.bin"
bc
MSG "GET Success,Thanks Use! :) By:Sound"
ret
exit:
RET
运行脚本,成功会有提示
程序文件夹下会生成四个文件,下一步要用到
生成rsa公钥运行SafengineDeKey.exe,并输出rsa公钥
SafengineDeKey.exe目录下会生成RSAPublicKey.bin和RSEKeygen.dat内存补丁制作复制PublicKey.bin和RSAPublicKey.bin的十六进制
将PublicKey.bin的十六进制填入原始数据,RSAPublicKey.bin的十六进制填入补丁数据,并生成为注入补丁
将RSEKeygen.dat放入Safengine加壳器目录下,运行SEKeygen.exe,这样就可以随便生成key文件了,用内存补丁启动即可
|