Lab9-1
不走程序直接逆。标注完的主函数如下
int __cdecl main(int argc, const char **argv, const char **envp)
{
char port; // [sp+10h] [bp-181Ch]@31
char ups; // [sp+410h] [bp-141Ch]@31
char url; // [sp+810h] [bp-101Ch]@31
char sleep_time; // [sp+C10h] [bp-C1Ch]@31
CHAR serviceName; // [sp+1024h] [bp-808h]@18
CHAR ServiceName; // [sp+1428h] [bp-404h]@9
char *param; // [sp+1828h] [bp-4h]@5
if ( argc == 1 )
{
if ( !sub_401000() )
del_self();
sub_402360();
}
else
{
param = (char *)argv[argc - 1]; // abcd
if ( !sub_402510(param) )
del_self();
if ( _mbscmp((const unsigned __int8 *)argv[1], aIn) )// -in
{
if ( _mbscmp((const unsigned __int8 *)argv[1], aRe) )// -re
{
if ( _mbscmp((const unsigned __int8 *)argv[1], aC_0) )// -c p7
{
if ( _mbscmp((const unsigned __int8 *)argv[1], aCc) )// -cc
del_self();
if ( argc != 3 )
del_self();
if ( !getKey(&ups, 1024, &url, 1024, &port, 1024, &sleep_time) )// -cc abcd
sub_402E7E((int)aKSHSPSPerS, (int)&ups);// k:%s h:%s p:%s per:%s
}
else
{
if ( argc != 7 ) // -c m n x y abcd
del_self();
SetKey(arg