ShareKing 发表于 2022-2-18 18:38

通达信-股票软件-逆向分析

工具:OD;
软件:通达信缠论版.exe;
来源:网络;
理由:和谐过程中的一点心得;
操作系统:虚拟机winxp;
要达到目的:解决软件的各种防护。
这个软件的防护有点意思。
防护一:正常显示不到30秒,界面消失,程序自毁(自动删除)
软件启动界面



正常显示不到30秒,界面消失,程序自毁(自动删除)。
防护二、检测到OD,重启系统

防护三、屏蔽任务管理器

针对上面的3道防护,来一一化解。
OD加载 通达信缠论版.exe
智能搜素,找到



下F2断点,F9

00424FDD    68 4C425500   push 通达信缠.0055424C                     ; \x.bat
00424FE2    FF75 FC         push dword ptr ss:
00424FE5    B9 02000000   mov ecx,0x2
00424FEA    E8 E2D5FDFF   call 通达信缠.004025D1
00424FEF    83C4 08         add esp,0x8
00424FF2    8945 F8         mov dword ptr ss:,eax
00424FF5    8B5D FC         mov ebx,dword ptr ss:
00424FF8    85DB            test ebx,ebx                           ; 通达信缠.00469560
00424FFA    74 09         je short 通达信缠.00425005
00424FFC    53            push ebx                                 ; 通达信缠.00469560
00424FFD    E8 4D3E0400   call 通达信缠.00468E4F
00425002    83C4 04         add esp,0x4
00425005    68 00000000   push 0x0
0042500A    BB 80954600   mov ebx,通达信缠.00469580                  ; j
0042500F    E8 4D3E0400   call 通达信缠.00468E61
00425014    83C4 04         add esp,0x4
00425017    8945 F4         mov dword ptr ss:,eax
0042501A    68 00000000   push 0x0
0042501F    BB 80954600   mov ebx,通达信缠.00469580                  ; j
00425024    E8 383E0400   call 通达信缠.00468E61
00425029    83C4 04         add esp,0x4
0042502C    8945 F0         mov dword ptr ss:,eax
0042502F    68 53425500   push 通达信缠.00554253                     ; \r\nDel %0\r\nExit
00425034    FF75 F0         push dword ptr ss:
00425037    68 62425500   push 通达信缠.00554262                     ; \r\nDel
0042503C    FF75 F4         push dword ptr ss:
0042503F    68 69425500   push 通达信缠.00554269                     ; @echo off\r\nTaskkill /f /im
00425044    B9 05000000   mov ecx,0x5
00425049    E8 83D5FDFF   call 通达信缠.004025D1

一路F8下来,到

看,
@echo off
Taskkill /f /im 通达信缠论版.exe
Del 通达信缠论版.exe
Del %0
Exit
生成x.bat文件


004693EA    83E8 05         sub eax,0x5
004693ED    F7D8            neg eax
004693EF    1BC0            sbb eax,eax
004693F1    83E0 02         and eax,0x2
004693F4    83C0 04         add eax,0x4
004693F7    66:894424 48    mov word ptr ss:,ax
004693FC    8D4424 08       lea eax,dword ptr ss:
00469400    8B16            mov edx,dword ptr ds:               ; 通达信缠.00554285
00469402    8D4C24 18       lea ecx,dword ptr ss:
00469406    50            push eax
00469407    51            push ecx
00469408    6A 00         push 0x0
0046940A    6A 00         push 0x0
0046940C    6A 00         push 0x0
0046940E    6A 00         push 0x0
00469410    6A 00         push 0x0
00469412    6A 00         push 0x0
00469414    52            push edx                                 ; 通达信缠.00554285
00469415    6A 00         push 0x0
00469417    FF15 68045400   call dword ptr ds:[<&KERNEL32.CreateProc>; kernel32.CreateProcessA

运行x.bat,界面消失,程序自毁(自动删除),取消x.bat的创建就可以破掉防护一。

OD重新加载 通达信缠论版.exe,查找所有模块间的调用,

查找到api 00516118   .FF15 78055400 call dword ptr ds:[<&USER32.ExitWindowsEx>]   ; \ExitWindowsEx
查找到所有调用USER32.ExitWindowsEx创建的线程

把线程KILL掉,防护二、检测到OD,重启系统就破掉了。
利用gpedit.msc先恢复任务管理器功能

OD重新加载 通达信缠论版.exe,智能搜素,找到 “软件维护中”

下F2断点
004075E3   . /0F85 32000000    jnz 通达信缠.0040761B                  ;//jump,跳过屏蔽系统任务管理器      
004075E9   . |B8 4FD15400      mov eax,通达信缠.0054D14F                  ;软件维护中
004075EE   . |50               push eax
004075EF   . |8B5D 20          mov ebx,dword ptr ss:          ;通达信缠.006B2280
004075F2   . |8B1B             mov ebx,dword ptr ds:
004075F4   . |85DB             test ebx,ebx                           ;通达信缠.006B2280
004075F6   . |74 09            je short 通达信缠.00407601
004075F8   . |53               push ebx                                 ;通达信缠.006B2280
004075F9   . |E8 51180600      call 通达信缠.00468E4F
004075FE   . |83C4 04          add esp,0x4
00407601   > |58               pop eax                                  ;01E73DF8
00407602   . |8B5D 20          mov ebx,dword ptr ss:          ;通达信缠.006B2280
00407605   . |8903             mov dword ptr ds:,eax
00407607   . |E8 CF090000      call 通达信缠.00407FDB                ;//屏蔽系统任务管理器
0040760C   . |E8 210F0000      call 通达信缠.00408532
00407611   . |B8 00000000      mov eax,0x0
00407616   . |E9 ED040000      jmp 通达信缠.00407B08
00407607   . |E8 CF090000      call 通达信缠.00407FDB是屏蔽系统任务管理器

下F2断点
004075E3   . /0F85 32000000    jnz 通达信缠.0040761B                  ;//jump,跳过屏蔽系统任务管理器      
004075E9   . |B8 4FD15400      mov eax,通达信缠.0054D14F                  ;软件维护中
004075EE   . |50               push eax
004075EF   . |8B5D 20          mov ebx,dword ptr ss:          ;通达信缠.006B2280
004075F2   . |8B1B             mov ebx,dword ptr ds:
004075F4   . |85DB             test ebx,ebx                           ;通达信缠.006B2280
004075F6   . |74 09            je short 通达信缠.00407601
004075F8   . |53               push ebx                                 ;通达信缠.006B2280
004075F9   . |E8 51180600      call 通达信缠.00468E4F
004075FE   . |83C4 04          add esp,0x4
00407601   > |58               pop eax                                  ;01E73DF8
00407602   . |8B5D 20          mov ebx,dword ptr ss:          ;通达信缠.006B2280
00407605   . |8903             mov dword ptr ds:,eax
00407607   . |E8 CF090000      call 通达信缠.00407FDB                ;//屏蔽系统任务管理器
0040760C   . |E8 210F0000      call 通达信缠.00408532
00407611   . |B8 00000000      mov eax,0x0
00407616   . |E9 ED040000      jmp 通达信缠.00407B08
00407607   . |E8 CF090000      call 通达信缠.00407FDB是屏蔽系统任务管理器


004075E3   . /0F85 32000000    jnz 通达信缠.0040761B改jmp 通达信缠.0040761B
逆向掉防护三、屏蔽任务管理器 。
这个软件看起来防护蛮多,理清了思路也就好办了。看看最终效果:



bQSkjiZKq 发表于 2022-2-18 18:43

谢谢分享

xcCpAtuOdra 发表于 2022-2-18 18:44

论坛的繁荣离不开你们的热心分享

GtOMoVfW708 发表于 2022-2-18 18:44

谢谢分享

JeBvf102 发表于 2022-2-18 19:09

支持一波~~

YME8 发表于 2022-2-18 19:25

刚好需要 谢谢大佬

wPjJ 发表于 2022-2-18 19:26

感谢楼主

WOoJhZzI4596 发表于 2022-2-18 19:29

感谢楼主

MUt309 发表于 2022-2-18 19:29

谢谢分享

uYtUSF 发表于 2022-2-18 19:31

我觉得楼主这帖很强!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 通达信-股票软件-逆向分析