strings
实用程序收集了一些可能的选项。 是否存在用于反转命令行参数的一般路线图?有什么可能的方法来扭转它们?有没有可以使用的工具?
#1 楼
如果您确定了argv和argc以及其中的值,那么您就走了一半。从argc的值中,您可以了解应该传递多少个参数,从argv的值中,您可以确定“应”传递的内容。 />70 _main proc near ; CODE XREF: _main_0j
.text:00401070
.text:00401070 var_44 = byte ptr -44h
.text:00401070 var_4 = dword ptr -4
.text:00401070 arg_0 = dword ptr 8
.text:00401070 arg_4 = dword ptr 0Ch
.text:00401070
.text:00401070 push ebp
.text:00401071 mov ebp, esp
.text:00401073 sub esp, 44h
.text:00401076 push ebx
.text:00401077 push esi
.text:00401078 push edi
.text:00401079 lea edi, [ebp+var_44]
.text:0040107C mov ecx, 11h
.text:00401081 mov eax, 0CCCCCCCCh
.text:00401086 rep stosd
.text:00401088 cmp [ebp+arg_0], 2
.text:0040108C jge short loc_4010A0
.text:0040108E push offset aCheckUsage ; "check usage"
.text:00401093 call _printf
.text:00401098 add esp, 4
.text:0040109B or eax, 0FFFFFFFFh
.text:0040109E jmp short loc_4010DB
如您所见,存在
cmp [ebp+arg_0], 2
,这意味着至少我们必须传递一个“参数”,然后才有jqe(如果大于或等于则跳转)。所以我们将使用一个参数调用程序以传递此条件,因此我们将位于loc_4010A0
中,这是代码。这一次使用strcmp,在此之前,我们将推入str和arg_4
,这是我们实际的参数向量。 您可以真正轻松地使用静态和动态分析来分析参数,但是您需要牢记一些注意事项。传递
参数的类型
参数的位置(argv)
这里还有一些附加说明,有时我们“请勿”使用argc / argv获取命令行参数我们也可以使用Windows API,例如
GetCommandLine
等。您还必须检查参数的接收和解析方式。
评论
如果仅基于数字,则尝试每个小数字。