首页
社区
课程
招聘
[原创]静态库的逆向
发表于: 2015-4-7 19:27 4006

[原创]静态库的逆向

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

使用VC命令行的工具
lib.exe  /list TSMDd.lib > TSMDd.txt  //获得静态库里面的.obj
lib TSMDd.lib /EXTRACT:TSMDd.obj  //导出.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进制内容即可。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//