静态库的逆向

本文详细介绍了如何使用VC命令行工具对SDK中的lib进行逆向破解,包括使用lib.exe列出静态库中的.obj文件、dumpbin.exe获取obj内部结构和反汇编,以及分析汇编代码以定位关键函数并修改其16进制内容。通过查找偏移地址并在lib库中相应位置修改数据,实现对SDK的逆向破解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

得到一个工具的SDK开发包,开发出来的程序必须要有正确的许可证才能正常运行,所以想对SDK里面的lib进行逆向破解。

 

使用VC命令行的工具
lib.exe  /list TSMDd.lib > TSMDd.txt  //获得静态库里面的.obj
dumpbin.exe/ALL TsLib.obj > TsLib.txt   //获得obj里面的结构
dumpbin.exe /disasm TsLib.obj > TsLib-asm.txt  //反汇编

分析汇编代码(代码主要结构先编译了一个应用程序,使用OD跟踪过大概流程)

00000092: E8 00 00 00 00     call        ?Decrypt@Decrypter@Dtapi@@QAEIQAE@Z
00000097: 85 C0              test        eax,eax
00000099: 75 51              jne         000000EC             //判断跳转
0000009B: 81 7B 10 1F 03 3B  cmp         dword ptr [ebx+10h],0DE3B031Fh
DE
000000A2: 75 48              jne         000000EC         //判断跳转
000000A4: 8B 45 D0           mov         eax,dword ptr [ebp-30h]
000000A7: 8B 4D D4           mov         ecx,dword ptr [ebp-2Ch]
000000AA: 0F AC C8 0A        shrd        eax,ecx,0Ah
000000AE: C1 E9 0A           shr         ecx,0Ah
000000B1: 81 E1 FF 3F 00 00  and         ecx,3FFFh
000000B7: 3B 43 08           cmp         eax,dword ptr [ebx+8]
000000BA: 75 30              jne         000000EC              //判断跳转
000000BC: 3B 4B 0C           cmp         ecx,dword ptr [ebx+0Ch]
000000BF: 75 2B              jne         000000EC
000000C1: 68 00 3D 05 00     push        53D00h
000000C6: E8 00 00 00 00     call        ??2@YAPAXI@Z
000000CB: 83 C4 04           add         esp,4
000000CE: 89 45 A4           mov         dword ptr [ebp-5Ch],eax

找到对应的汇编指令到,需要16进制修改lib的内容。
根据TsLib.txt 文件查找偏移地址

SECTION HEADER #109
.text name
0 physical address
0 virtual address
11A size of raw data
5350 file pointer to raw data (00005350 to 00005469)
546A file pointer to relocation table
0 file pointer to line numbers
C number of relocations
0 number of line numbers
60501020 flags
Code
COMDAT; sym= "public: class apiTs::TsInfo * __thiscall apiTs::TsLib::CreateTsInfoInstance(void)" (?CreateTsInfoInstance@TsLib@apiTs@@QAEPAVTsInfo@2@XZ)
16 byte align
Execute Read

可知起始地址是00005350.
修改TsLib.obj 里面对应地址的数据。
按照相同的内容查找lib库里面对应的位置,修改16进制内容即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值